本公開涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種文件處理方法、裝置和設(shè)備。
背景技術(shù):
在分布式多副本文件系統(tǒng)中,為了保證數(shù)據(jù)的可用性,數(shù)據(jù)會在多個節(jié)點上保留多個副本.這樣做會導(dǎo)致系統(tǒng)存儲空間的占用率呈幾何倍數(shù)增長。
現(xiàn)有技術(shù)中,為了降低存儲空間的消耗,一般會對文件做Raid處理,.所謂Raid,就是對同一個文件的不同數(shù)據(jù)塊進行編碼形成一些冗余塊,等到文件的數(shù)據(jù)塊丟失時,可以通過這些冗余塊重新解碼出原始數(shù)據(jù)塊,通過Raid處理可以達到與多副本同樣的數(shù)據(jù)可靠性,但是只需要很少的存儲空間。以6+3的編碼為例,raid可以對文件的6個數(shù)據(jù)塊編碼,形成3個冗余數(shù)據(jù)塊,后續(xù)這9個數(shù)據(jù)塊中的任何3個塊損壞,都可以通過這些數(shù)據(jù)塊重新解碼出來,而如果單純通過數(shù)據(jù)多副本,要達到能容忍任意3個數(shù)據(jù)塊損壞的目標,需要為每個數(shù)據(jù)塊保存4個副本,則總共需要消耗24個數(shù)據(jù)塊.而通過raid方式則只需要消耗9個數(shù)據(jù)塊。
但是在現(xiàn)有Raid方案中,都是對系統(tǒng)的所有文件或某些固定目錄的文件做Raid處理,被編碼的文件如果真的損壞,則在讀取時就需要較長的時間等待解碼,用戶訪問延遲較大。
技術(shù)實現(xiàn)要素:
本公開提供一種文件處理方法、裝置和設(shè)備,用以提高分布式多副本文件系統(tǒng)的存儲空間利用率,減少訪問損壞文件時的時間延遲。
根據(jù)本公開實施例的第一方面,提供一種文件處理方法,包括:
獲取文件的篩選條件;
根據(jù)所述篩選條件對數(shù)據(jù)庫中的文件進行篩選,獲得目標文件;
對所述目標文件進行Raid處理。
該技術(shù)方案可以包括以下有益效果:通過從數(shù)據(jù)庫中篩選出符合特定篩選條件的文件作為目標文件,并對目標文件進行Raid處理,能夠降低進行Raid處理的文件的數(shù)量,從而縮短了Raid處理的耗時,減少了對系統(tǒng)資源的占用。并且,由于進行Raid處理的文件僅是符合特定篩選條件的文件,而不是系統(tǒng)的所有文件,因此,經(jīng)過Raid處理后,生成的冗余數(shù)據(jù)塊的數(shù)量就減少了,節(jié)約了系統(tǒng)的存儲空間。而且用戶在訪問損壞文件時,也會因為冗余數(shù)據(jù)塊的減少,減少等待的時間。
在第一方面的第一種可能的實現(xiàn)方式中,所述獲取文件的篩選條件,包括:
從數(shù)據(jù)庫中獲取預(yù)先存儲的篩選條件,或者;
從用戶交互界面上獲取用戶輸入的篩選條件。
該技術(shù)方案可以包括以下有益效果:通過從數(shù)據(jù)庫中獲取預(yù)先設(shè)置的篩選條件或者直接從用戶交互界面上獲取用戶實時輸入的篩選條件,能夠?qū)崿F(xiàn)文件篩選的個性化。同時又能避免由于對所有文件進行Raid處理所導(dǎo)致的存儲空間浪費的問題,提高了存儲空間的利用率。
根據(jù)第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述篩選條件包括如下條件中的至少一種:文件類型、文件屬性、文件名稱、文件內(nèi)容;
所述根據(jù)所述篩選條件對數(shù)據(jù)庫中的文件進行篩選,獲得目標文件,包括:
從數(shù)據(jù)庫中篩選出同時符合所述至少一種條件的文件作為目標文件。
根據(jù)第一方面的第二中可能的實現(xiàn)方式,在第一方面的第三中可能的實現(xiàn)方式中,所述從數(shù)據(jù)庫中篩選出同時符合所述至少一種條件的文件作為目標文件,包括:
采用標準深度優(yōu)選遍歷方法或廣度優(yōu)先遍歷方法,周期性的從所述數(shù)據(jù)庫中篩選出同時符合所述至少一種條件的文件作為目標文件。
該技術(shù)方案可以包括以下有益效果:通過設(shè)置多個篩選的條件,能夠?qū)崿F(xiàn)對目標文件的準確定位,并且能夠進一步的縮小目標文件的范圍和數(shù)量,達到節(jié)約存儲空間,提高存儲空間利用率的目的。且由于Raid處理的文件的減少,能夠有效減少用戶訪問損壞文件的等待時間,提高了用戶體驗。并且通過周期性篩選的方式,能夠避免符合篩選條件的文件被漏掉,提高了系統(tǒng)的可靠性。
根據(jù)本公開實施例的第二方面,提供一種文件處理裝置,包括:
獲取模塊,被配置為獲取文件的篩選條件;
篩選模塊,被配置為根據(jù)所述篩選條件對數(shù)據(jù)庫中的文件進行篩選,獲得目標文件;
處理模塊,被配置為對所述目標文件進行Raid處理。
該技術(shù)方案可以包括以下有益效果:通過從數(shù)據(jù)庫中篩選出符合特定篩選條件的文件作為目標文件,并對目標文件進行Raid處理,能夠降低進行Raid處理的文件的數(shù)量,從而縮短了Raid處理的耗時,減少了對系統(tǒng)資源的占用。并且,由于進行Raid處理的文件僅是符合特定篩選條件的文件,而不是系統(tǒng)的所有文件,因此,經(jīng)過Raid處理后,生成的冗余數(shù)據(jù)塊的數(shù)量就減少了,節(jié)約了系統(tǒng)的存儲空間。而且用戶在訪問損壞文件時,也會因為冗余數(shù)據(jù)塊的減少,減少等待的時間。
在第二方面的第一種可能的實現(xiàn)方式中,所述獲取模塊包括:
第一獲取子模塊,被配置為從數(shù)據(jù)庫中獲取預(yù)先存儲的篩選條件?;蛘撸?/p>
第二獲取子模塊,被配置為從用戶交互界面上獲取用戶輸入的篩選條件。
該技術(shù)方案可以包括以下有益效果:通過從數(shù)據(jù)庫中獲取預(yù)先設(shè)置的篩選條件或者直接從用戶交互界面上獲取用戶實時輸入的篩選條件,能夠?qū)崿F(xiàn)文件篩選的個性化。同時又能避免由于對所有文件進行Raid處理所導(dǎo)致的存儲空間浪費的問題,提高了存儲空間的利用率。
根據(jù)第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述篩選條件包括如下條件中的至少一種:文件類型、文件屬性、文件名稱、文件內(nèi)容;
所述篩選模塊包括:
第一篩選子模塊,被配置為從數(shù)據(jù)庫中篩選出同時符合所述至少一種條件的文件作為目標文件。
根據(jù)第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述第一篩選子模塊,還被配置為采用標準深度優(yōu)選遍歷方法或廣度優(yōu)先遍歷方法,周期性的從所述數(shù)據(jù)庫中篩選出同時符合所述至少一種條件的文件作為目標文件。
該技術(shù)方案可以包括以下有益效果:通過設(shè)置多個篩選的條件,能夠?qū)崿F(xiàn)對目標文件的準確定位,并且能夠進一步的縮小目標文件的范圍和數(shù)量,達到節(jié)約存儲空間,提高存儲空間利用率的目的。且由于Raid處理的文件的減少,能夠有效減少用戶訪問損壞文件的等待時間,提高了用戶體驗。并且通過周期性篩選的方式,能夠避免符合篩選條件的文件被漏掉,提高了系統(tǒng)的可靠性。
根據(jù)本公開實施例的第三方面,提供一種文件處理設(shè)備,包括:
處理器;
被配置為存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為:
獲取文件的篩選條件;
根據(jù)所述篩選條件對數(shù)據(jù)庫中的文件進行篩選,獲得目標文件;
對所述目標文件進行Raid處理。
應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
圖1是根據(jù)一示例性實施例示出的一種文件處理方法實施例一的流程圖;
圖2是根據(jù)一示例性實施例示出的一種文件處理方法實施例二的流程圖;
圖3是根據(jù)一示例性實施例示出的一種文件處理裝置實施例一的框圖;
圖4是根據(jù)一示例性實施例示出的一種文件處理裝置實施例二的框圖;
圖5是根據(jù)一示例性實施例示出的一種文件處理設(shè)備的框圖。
通過上述附圖,已示出本公開明確的實施例,后文中將有更詳細的描述。這些附圖和文字描述并不是為了通過任何方式限制本公開構(gòu)思的范圍,而是通過參考特定實施例為本領(lǐng)域技術(shù)人員說明本公開的概念。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實施例示出的一種文件處理方法實施例一的流程圖,該方法可以由文件處理裝置來執(zhí)行,該文件處理裝置可以集成在服務(wù)器等文件處理設(shè)備中,如圖1所示,該方法包括以下步驟:
在步驟101中,獲取文件的篩選條件。
本公開實施例中所涉及的文件可以被具體為分布式多副本文件系統(tǒng)(以下簡稱系統(tǒng))中的文件。
篩選條件是用戶根據(jù)實際需要或?qū)ξ募睦斫馑O(shè)定的,用于篩選出某些符合特定特征的文件的條件。實際應(yīng)用中,篩選條件可以是預(yù)先設(shè)定并存儲在數(shù)據(jù)庫中的。當對系統(tǒng)文件進行篩選時,直接從數(shù)據(jù)庫中調(diào)用。篩選條件也可以是用戶通過文件處理設(shè)備上的人機交互界面實時輸入的。當用戶觸發(fā)輸入時,文件處理裝置從人機交互界面上獲取用戶輸入的篩選條件。
本實施例中,篩選條件包括如下條件中的至少一種:文件類型,比如,壓縮文件、歸檔備份文件等;文件屬性,比如文件的最后一次修改時間,文件的大小等;文件名稱;文件內(nèi)容,比如在文件頭部是某特定內(nèi)容的文件,或者在文件結(jié)尾是某特定內(nèi)容的文件等。當然此處僅為示例說明而不是對本公開的唯一限定。
在步驟101中通過從數(shù)據(jù)庫中獲取預(yù)先設(shè)置的篩選條件或者直接從用戶交互界面上獲取用戶實時輸入的篩選條件,能夠?qū)崿F(xiàn)文件篩選的個性化。同時又能避免由于對所有文件進行Raid處理所導(dǎo)致的存儲空間浪費的問題,提高了存儲空間的利用率。
在步驟102中,根據(jù)所述篩選條件對數(shù)據(jù)庫中的文件進行篩選,獲得目標文件。
本實施例中,目標文件是指待進行Raid處理的文件。
舉例來說,假設(shè)用戶設(shè)定的篩選條件為文件類型、文件屬性和文件內(nèi)容,其中文件類型包括壓縮文件、文件屬性包括文件大小的指定范圍(25kb,100kb)。在獲得該篩選條件后,文件處理裝置從系統(tǒng)的數(shù)據(jù)庫中選擇同時符合上述文件屬性條件和文件類型條件的文件作為目標文件,比如,一壓縮文件,其大小為80kb,則將該文件作為目標文件,以此類推,直至從系統(tǒng)數(shù)據(jù)庫中篩選出所有符合條件的文件為止。
在步驟103中,對所述目標文件進行Raid處理。
Raid處理的目的是對目標文件的數(shù)據(jù)塊進行編碼,生成預(yù)設(shè)個數(shù)的冗余數(shù)據(jù)塊。當目標文件中的某個或某些數(shù)據(jù)塊損壞時,可以根據(jù)該些數(shù)據(jù)塊和冗余數(shù)據(jù)塊重新編碼獲得完好的數(shù)據(jù)塊。本公開實施例中,對目標文件進行Raid處理的方法與現(xiàn)有技術(shù)類似,在這里不再贅述。
本實施例中,通過從數(shù)據(jù)庫中篩選出符合特定篩選條件的文件作為目標文件,并對目標文件進行Raid處理,能夠降低進行Raid處理的文件的數(shù)量,從而縮短了Raid處理的耗時,減少了對系統(tǒng)資源的占用。并且,由于進行Raid處理的文件僅是符合特定篩選條件的文件,而不是系統(tǒng)的所有文件,因此,經(jīng)過Raid處理后,生成的冗余數(shù)據(jù)塊的數(shù)量就減少了,節(jié)約了系統(tǒng)的存儲空間。而且用戶在訪問損壞文件時,也會因為冗余數(shù)據(jù)塊的減少,減少等待的時間。
圖2是根據(jù)一示例性實施例示出的一種文件處理方法實施例二的流程圖,如圖2所示,該方法可以包括如下的步驟:
在步驟201中,獲取文件的篩選條件,其中,所述篩選條件包括如下條件中的至少一種:文件類型、文件屬性、文件名稱、文件內(nèi)容。
本公開實施例中所涉及的文件可以被具體為分布式多副本文件系統(tǒng)(以下簡稱系統(tǒng))中的文件。
篩選條件是用戶根據(jù)實際需要或?qū)ξ募睦斫馑O(shè)定的,用于篩選出某些符合特定特征的文件的條件。實際應(yīng)用中,篩選條件可以是預(yù)先設(shè)定并存儲在數(shù)據(jù)庫中的。當對系統(tǒng)文件進行篩選時,直接從數(shù)據(jù)庫中調(diào)用。篩選條件也可以是用戶通過文件處理設(shè)備上的人機交互界面實時輸入的。當用戶觸發(fā)輸入時,文件處理裝置從人機交互界面上獲取用戶輸入的篩選條件。
本實施例中,篩選條件包括如下條件中的至少一種:文件類型,比如,壓縮文件、歸檔備份文件等;文件屬性,比如文件的最后一次修改時間,文件的大小等;文件名稱;文件內(nèi)容,比如在文件頭部是某特定內(nèi)容的文件,或者在文件結(jié)尾是某特定內(nèi)容的文件等。當然此處僅為示例說明而不是對本公開的唯一限定。
在步驟201中通過從數(shù)據(jù)庫中獲取預(yù)先設(shè)置的篩選條件或者直接從用戶交互界面上獲取用戶實時輸入的篩選條件,能夠?qū)崿F(xiàn)文件篩選的個性化。同時又能避免由于對所有文件進行Raid處理所導(dǎo)致的存儲空間浪費的問題,提高了存儲空間的利用率。
在步驟202中,從數(shù)據(jù)庫中篩選出同時符合所述至少一種條件的文件作為目標文件。
本實施例中,目標文件是指待進行Raid處理的文件。
實際應(yīng)用中,可以采用標準深度優(yōu)先遍歷的方法或廣度優(yōu)先遍歷的方法,對數(shù)據(jù)庫中的文件進行遍歷,并將符合所有篩選條件的文件作為目標文件。其中,上述遍歷可以是周期性的,也可以是按照人為設(shè)定的策略執(zhí)行的,本實施例中不做限定。舉例來說,假設(shè)用戶設(shè)定的篩選條件為文件類型、文件屬性和文件內(nèi)容,其中文件類型包括壓縮文件、文件屬性包括文件大小的指定范圍(25kb,100kb)。在獲得該篩選條件后,文件處理裝置從系統(tǒng)的數(shù)據(jù)庫中選擇同時符合上述文件屬性條件和文件類型條件的文件作為目標文件,比如,一壓縮文件,其大小為80kb,則將該文件作為目標文件,以此類推,直至從系統(tǒng)數(shù)據(jù)庫中篩選出所有符合條件的文件為止。
在步驟203中,對所述目標文件進行Raid處理。
Raid處理的目的是對目標文件的數(shù)據(jù)塊進行編碼,生成預(yù)設(shè)個數(shù)的冗余數(shù)據(jù)塊。當目標文件中的某個或某些數(shù)據(jù)塊損壞時,可以根據(jù)該些數(shù)據(jù)塊和冗余數(shù)據(jù)塊重新編碼獲得完好的數(shù)據(jù)塊。本公開實施例中,對目標文件進行Raid處理的方法與現(xiàn)有技術(shù)類似,在這里不再贅述。
本實施例中,通過設(shè)置多個篩選的條件,能夠?qū)崿F(xiàn)對目標文件的準確定位,并且能夠進一步的縮小目標文件的范圍和數(shù)量,達到節(jié)約存儲空間,提高存儲空間利用率的目的。且由于Raid處理的文件的減少,能夠有效減少用戶訪問損壞文件的等待時間,提高了用戶體驗。并且通過周期性篩選的方式,能夠避免符合篩選條件的文件被漏掉,提高了系統(tǒng)的可靠性。
圖3是根據(jù)一示例性實施例示出的一種文件處理裝置實施例一的框圖,如圖3所示,該裝置包括:
獲取模塊11,被配置為獲取文件的篩選條件;
篩選模塊12,被配置為根據(jù)所述篩選條件對數(shù)據(jù)庫中的文件進行篩選,獲得目標文件;
處理模塊13,被配置為對所述目標文件進行Raid處理。
其中,所述獲取模塊11包括:
第一獲取子模塊111,被配置為從數(shù)據(jù)庫中獲取預(yù)先存儲的篩選條件。
第二獲取子模塊112,被配置為從用戶交互界面上獲取用戶輸入的篩選條件。
本實施例提供的文件處理裝置可以用于執(zhí)行圖1所示方法實施例的技術(shù)方案,其執(zhí)行方式和有益效果類似,在這里不再贅述。
圖4是根據(jù)一示例性實施例示出的一種文件處理裝置實施例二的框圖,如圖4所示,在圖3所示實施例的基礎(chǔ)上,所述所述篩選條件包括如下條件中的至少一種:文件類型、文件屬性、文件名稱、文件內(nèi)容。
所述篩選模塊12包括:
第一篩選子模塊121,被配置為從數(shù)據(jù)庫中篩選出同時符合所述至少一種條件的文件作為目標文件。
其中,所述第一篩選子模塊121,還被配置為采用標準深度優(yōu)先遍歷方法或廣度優(yōu)先遍歷方法,周期性的從所述數(shù)據(jù)庫中篩選出同時符合所述至少一種條件的文件作為目標文件。
本實施例提供的文件處理裝置可以用于執(zhí)行圖2所示方法實施例的技術(shù)方案,其執(zhí)行方式和有益效果類似,在這里不再贅述。
關(guān)于上述實施例中的文件處理裝置,其中各個模塊、子模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
以上描述了文件處理裝置的內(nèi)部功能和結(jié)構(gòu),如圖5所示,實際中,該文件處理裝置可實現(xiàn)為服務(wù)器等文件處理設(shè)備,包括:
處理器;
被配置為存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為:
獲取文件的篩選條件;
根據(jù)所述篩選條件對數(shù)據(jù)庫中的文件進行篩選,獲得目標文件;
對所述目標文件進行Raid處理。
本實施例中,通過從數(shù)據(jù)庫中篩選出符合特定篩選條件的文件作為目標文件,并對目標文件進行Raid處理,能夠降低進行Raid處理的文件的數(shù)量,從而縮短了Raid處理的耗時,減少了對系統(tǒng)資源的占用。并且,由于進行Raid處理的文件僅是符合特定篩選條件的文件,而不是系統(tǒng)的所有文件,因此,經(jīng)過Raid處理后,生成的冗余數(shù)據(jù)塊的數(shù)量就減少了,節(jié)約了系統(tǒng)的存儲空間。而且用戶在訪問損壞文件時,也會因為冗余數(shù)據(jù)塊的減少,減少等待的時間。
在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括存儲指令的存儲器,上述指令可由文件處理設(shè)備的處理器執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質(zhì)可以是ROM、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。
一種非臨時性計算機可讀存儲介質(zhì),當所述存儲介質(zhì)中的指令由文件處理設(shè)備的處理器執(zhí)行時,使得文件處理設(shè)備能夠執(zhí)行一種文件處理方法,所述方法包括:
獲取文件的篩選條件;
根據(jù)所述篩選條件對數(shù)據(jù)庫中的文件進行篩選,獲得目標文件;
對所述目標文件進行Raid處理。
本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。