本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,更具體的說是涉及一種元數(shù)據(jù)的處理方法、裝置和存儲(chǔ)設(shè)備。
背景技術(shù):
元數(shù)據(jù)用于描述文件的數(shù)據(jù)屬性,通過對(duì)元數(shù)據(jù)的存儲(chǔ)能夠提高數(shù)據(jù)處理性能。
在存儲(chǔ)設(shè)備處理文件數(shù)據(jù)的過程中,為了提高數(shù)據(jù)處理性能,經(jīng)常需要將文件數(shù)據(jù)的元數(shù)據(jù)緩存在內(nèi)存中。然而,存儲(chǔ)設(shè)備的內(nèi)存容量有限,如果元數(shù)據(jù)的數(shù)量過大,則可能無法將所需的所有元數(shù)據(jù)都緩存在內(nèi)存中,這樣必然會(huì)影響到數(shù)據(jù)處理性能。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種元數(shù)據(jù)的處理方法、裝置和存儲(chǔ)設(shè)備,以提高數(shù)據(jù)處理性能。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種元數(shù)據(jù)處理方法,所述方法包括:
接收到待存儲(chǔ)文件時(shí),獲取所述待存儲(chǔ)文件的元數(shù)據(jù);
基于預(yù)置的至少一種可壓縮數(shù)據(jù)類型,從所述元數(shù)據(jù)中確定出屬于所述可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù);
將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到經(jīng)過壓縮的元數(shù)據(jù),其中,所述第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于所述第一目標(biāo)數(shù)據(jù)的數(shù)據(jù)量;
存儲(chǔ)所述經(jīng)過壓縮的元數(shù)據(jù)。
優(yōu)選的,所述將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),包括:
依據(jù)所述第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式,將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),其中,不同可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式不同。
優(yōu)選的,在所述將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后,還包括:
在所述第二目標(biāo)數(shù)據(jù)之后添加區(qū)分標(biāo)識(shí),所述區(qū)分標(biāo)識(shí)用于區(qū)分所述經(jīng)過壓縮的元數(shù)據(jù)中轉(zhuǎn)換出的所述第二目標(biāo)數(shù)據(jù)以及未經(jīng)轉(zhuǎn)換的數(shù)據(jù)。
優(yōu)選的,所述存儲(chǔ)所述經(jīng)過壓縮的元數(shù)據(jù)之前,還包括:
根據(jù)所述元數(shù)據(jù)中所述第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型,生成一個(gè)轉(zhuǎn)換指示標(biāo)識(shí),所述轉(zhuǎn)換指示標(biāo)識(shí)用于表征所述元數(shù)據(jù)中具有的可壓縮數(shù)據(jù)類型;
將所述轉(zhuǎn)換指示標(biāo)識(shí)添加到所述經(jīng)過壓縮的元數(shù)據(jù)中。
優(yōu)選的,在所述存儲(chǔ)所述經(jīng)過壓縮的元數(shù)據(jù)之后,還包括:
當(dāng)接收到文件訪問請(qǐng)求時(shí),確定所述文件訪問請(qǐng)求所請(qǐng)求訪問的文件的文件名;
判斷所述文件名中具有屬于所述預(yù)置的至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù);
如果所述文件名中具有所述第一目標(biāo)數(shù)據(jù),則將所述文件名中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為所述第二目標(biāo)數(shù)據(jù),得到壓縮后的文件名;
從存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)中,查找與所述壓縮后的文件名對(duì)應(yīng)的目標(biāo)元數(shù)據(jù)。
優(yōu)選的,在所述存儲(chǔ)所述經(jīng)過壓縮的元數(shù)據(jù)之后,還包括:
當(dāng)檢測(cè)到數(shù)據(jù)讀取請(qǐng)求時(shí),獲取所述數(shù)據(jù)讀取請(qǐng)求所請(qǐng)求讀取的數(shù)據(jù)存儲(chǔ)目錄;
從所述數(shù)據(jù)存儲(chǔ)目錄對(duì)應(yīng)的存儲(chǔ)區(qū)域中讀取出待處理的元數(shù)據(jù);
如果所述待處理的元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù),則檢測(cè)所述待處理元數(shù)據(jù)中,屬于由所述至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù);
將所述待處理的元數(shù)據(jù)中的所述第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換為所述第一目標(biāo)數(shù)據(jù),得到待處理的元數(shù)據(jù)對(duì)應(yīng)的常規(guī)元數(shù)據(jù);
依據(jù)所述常規(guī)元數(shù)據(jù)進(jìn)行文件讀取。
另一方面,本申請(qǐng)實(shí)施例還提供了一種存儲(chǔ)設(shè)備,包括:
存儲(chǔ)器,用于存儲(chǔ)預(yù)置的至少一種可壓縮數(shù)據(jù)類型;
通信接口,用于接收到待存儲(chǔ)文件;
處理器,用于獲取所述待存儲(chǔ)文件的元數(shù)據(jù);基于預(yù)置的至少一種可壓縮數(shù)據(jù)類型,從所述元數(shù)據(jù)中確定出屬于所述可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù);將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到經(jīng)過壓縮的元數(shù)據(jù),其中,所述第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于所述第一目標(biāo)數(shù)據(jù)的數(shù)據(jù)量;
所述存儲(chǔ)器,還用于存儲(chǔ)所述經(jīng)過壓縮的元數(shù)據(jù)。
優(yōu)選的,所述處理器在將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)時(shí),具體用于,依據(jù)所述第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式,將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),其中,不同可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式不同。
優(yōu)選的,所述處理器還用于,在所述將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后,在所述第二目標(biāo)數(shù)據(jù)之后添加區(qū)分標(biāo)識(shí),所述區(qū)分標(biāo)識(shí)用于區(qū)分所述經(jīng)過壓縮的元數(shù)據(jù)中轉(zhuǎn)換出的所述第二目標(biāo)數(shù)據(jù)以及未經(jīng)轉(zhuǎn)換的數(shù)據(jù)。
優(yōu)選的,在所述處理器在將所述經(jīng)過壓縮的元數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)器之前,還用于,根據(jù)所述元數(shù)據(jù)中所述第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型,生成一個(gè)轉(zhuǎn)換指示標(biāo)識(shí),所述轉(zhuǎn)換指示標(biāo)識(shí)用于表征所述元數(shù)據(jù)中具有的可壓縮數(shù)據(jù)類型;將所述轉(zhuǎn)換指示標(biāo)識(shí)添加到所述經(jīng)過壓縮的元數(shù)據(jù)中。
優(yōu)選的,所述通信接口還用于,接收到文件訪問請(qǐng)求;
所述處理器還用于,確定所述文件訪問請(qǐng)求所請(qǐng)求訪問的文件的文件名;判斷所述文件名中具有屬于所述預(yù)置的至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù);如果所述文件名中具有所述第一目標(biāo)數(shù)據(jù),則將所述文件名中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為所述第二目標(biāo)數(shù)據(jù),得到壓縮后的文件名;從所述存儲(chǔ)器存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)中,查找與所述壓縮后的文件名對(duì)應(yīng)的目標(biāo)元數(shù)據(jù)。
優(yōu)選的,所述處理器還用于,當(dāng)檢測(cè)到數(shù)據(jù)讀取請(qǐng)求時(shí),獲取所述數(shù)據(jù)讀取請(qǐng)求所請(qǐng)求讀取的數(shù)據(jù)存儲(chǔ)目錄;從所述數(shù)據(jù)存儲(chǔ)目錄對(duì)應(yīng)的存儲(chǔ)區(qū)域中讀取出待處理的元數(shù)據(jù);如果所述待處理的元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù),則檢測(cè)所述待處理元數(shù)據(jù)中,屬于由所述至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù);將所述待處理的元數(shù)據(jù)中的所述第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換為所述第一目標(biāo)數(shù)據(jù),得到待處理的元數(shù)據(jù)對(duì)應(yīng)的常規(guī)元數(shù)據(jù);依據(jù)所述常規(guī)元數(shù)據(jù)進(jìn)行文件讀取。
另一方面,本申請(qǐng)實(shí)施例還提供了一種元數(shù)據(jù)處理裝置,所述裝置包括:
文件處理單元,用于接收到待存儲(chǔ)文件時(shí),獲取所述待存儲(chǔ)文件的元數(shù)據(jù);
目標(biāo)確定單元,用于基于預(yù)置的至少一種可壓縮數(shù)據(jù)類型,從所述元數(shù)據(jù)中確定出屬于所述可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù);
數(shù)據(jù)壓縮單元,用于將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到經(jīng)過壓縮的元數(shù)據(jù),其中,所述第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于所述第一目標(biāo)數(shù)據(jù)的數(shù)據(jù)量;
數(shù)據(jù)存儲(chǔ)單元,用于存儲(chǔ)所述經(jīng)過壓縮的元數(shù)據(jù)。
經(jīng)由上述的技術(shù)方案可知,在獲取到待存儲(chǔ)文件的元數(shù)據(jù)之后,根據(jù)預(yù)置的可壓縮數(shù)據(jù)類型,從該元數(shù)據(jù)中確定出屬于可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù),通過將該元數(shù)據(jù)中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)量較小的第二目標(biāo)數(shù)據(jù),使得得到的經(jīng)過壓縮的元數(shù)據(jù)的數(shù)據(jù)量變小,這樣,存儲(chǔ)該經(jīng)過壓縮的元數(shù)據(jù)可以占據(jù)較小的存儲(chǔ)空間;同時(shí),在存儲(chǔ)設(shè)備管理文件數(shù)據(jù)的過程中,由于存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)所占據(jù)的存儲(chǔ)空間變少,使得內(nèi)存中可以加載更多的元數(shù)據(jù),從而減少了由于內(nèi)存空間有限而無法完全加載所需處理的元數(shù)據(jù),而導(dǎo)致數(shù)據(jù)處理性能降低的情況,進(jìn)而有利于提高數(shù)據(jù)處理性能。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請(qǐng)一種元數(shù)據(jù)處理方法一個(gè)實(shí)施例的流程示意圖;
圖2為本申請(qǐng)一種元數(shù)據(jù)處理方法又一個(gè)實(shí)施例的流程示意圖;
圖3為本申請(qǐng)一種元數(shù)據(jù)處理方法又一個(gè)實(shí)施例的流程示意圖;
圖4為本申請(qǐng)一種元數(shù)據(jù)處理方法又一個(gè)實(shí)施例的流程示意圖;
圖5為本申請(qǐng)一種數(shù)據(jù)存儲(chǔ)設(shè)備一個(gè)實(shí)施例的組成結(jié)構(gòu)示意圖;
圖6為本申請(qǐng)一種元數(shù)據(jù)處理裝置一個(gè)實(shí)施例的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
本申請(qǐng)實(shí)施例公開了一種元數(shù)據(jù)處理方法,該方法適用于任意存儲(chǔ)設(shè)備中元數(shù)據(jù)的處理,如,該存儲(chǔ)設(shè)備可以為獨(dú)立的計(jì)算機(jī)設(shè)備,也可以為分布式存儲(chǔ)系統(tǒng)中的服務(wù)器節(jié)點(diǎn)等等。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1,其示出了本申請(qǐng)一種元數(shù)據(jù)處理方法一個(gè)實(shí)施例的流程示意圖,本實(shí)施例的方法可以應(yīng)用進(jìn)行元數(shù)據(jù)存儲(chǔ)以及處理的存儲(chǔ)設(shè)備,本實(shí)施例的方法可以包括:
101,接收到待存儲(chǔ)文件時(shí),獲取該待存儲(chǔ)文件的元數(shù)據(jù)。
其中,元數(shù)據(jù)是指關(guān)于數(shù)據(jù)的數(shù)據(jù),是對(duì)數(shù)據(jù)定義和描述,是一種特殊的數(shù)據(jù)。如,元數(shù)據(jù)可以對(duì)待存儲(chǔ)的文件的文件名、存儲(chǔ)時(shí)間、存儲(chǔ)位置等等的描述。相對(duì)于文件中的數(shù)據(jù)(元數(shù)據(jù)之外的數(shù)據(jù)),元數(shù)據(jù)的數(shù)據(jù)量較小。
其中,獲取該待存儲(chǔ)文件的元數(shù)據(jù)的方式可以采用現(xiàn)有任意生成元數(shù)據(jù)的方式,如,可以根據(jù)該待存儲(chǔ)文件自身的文件的名稱以及所需存儲(chǔ)的位置等等信息,生成元數(shù)據(jù)。
102,基于預(yù)置的至少一種可壓縮數(shù)據(jù)類型,從該元數(shù)據(jù)中確定出屬于該可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù)。
為了減少元數(shù)據(jù)所占據(jù)的存儲(chǔ)空間,本申請(qǐng)實(shí)施例的存儲(chǔ)設(shè)備中預(yù)置了可以被壓縮處理的可壓縮數(shù)據(jù)類型。其中,該可壓縮數(shù)據(jù)類型可以認(rèn)為是可壓縮數(shù)據(jù)所具有的數(shù)據(jù)屬性或者所歸屬的字段類型等等,一般可以根據(jù)需要將元數(shù)據(jù)中包含重復(fù)內(nèi)容較多的字段所對(duì)應(yīng)的數(shù)據(jù)屬性或者字符串等等設(shè)置為可壓縮數(shù)據(jù)類型。如,該可壓縮數(shù)據(jù)類型可以包括:指定的文件名、擴(kuò)展屬性以及預(yù)設(shè)的特定字符串等等。
可以理解的是,預(yù)置的可壓縮數(shù)據(jù)類型的種類可以根據(jù)需要設(shè)定,為了減少元數(shù)據(jù)的存儲(chǔ)量,該可壓縮數(shù)據(jù)類型的種類一般會(huì)有多種。
如果元數(shù)據(jù)中包含屬于該可壓縮數(shù)據(jù)類型的數(shù)據(jù),則將該數(shù)據(jù)作為需要被處理的目標(biāo)數(shù)據(jù)。為了便于區(qū)分,在本申請(qǐng)實(shí)施例中,將元數(shù)據(jù)中屬于某種可壓縮數(shù)據(jù)類型的數(shù)據(jù)稱為第一目標(biāo)數(shù)據(jù)。
可以理解的是,由于預(yù)置的可壓縮數(shù)據(jù)類型有可能不止一種,而元數(shù)據(jù)中也可能存在分別屬于不同種可壓縮數(shù)據(jù)類型的目標(biāo)數(shù)據(jù),因此,該第一目標(biāo)數(shù)據(jù)可以有多個(gè)。此處所說的第一目標(biāo)數(shù)據(jù)的個(gè)數(shù)是指將元數(shù)據(jù)中,屬于一類可壓縮數(shù)據(jù)類型的連續(xù)字符串稱為一個(gè)第一目標(biāo)數(shù)據(jù),例如,假設(shè)可壓縮數(shù)據(jù)類型包括第一文件名file,則元數(shù)據(jù)中包含的屬于該第一文件名file的數(shù)據(jù)就為一個(gè)第一目標(biāo)數(shù)據(jù),假如該元數(shù)據(jù)中包含多個(gè)屬于該第一文件名的數(shù)據(jù),則第一目標(biāo)數(shù)據(jù)有多個(gè)。
103,將該元數(shù)據(jù)中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到經(jīng)過壓縮的元數(shù)據(jù)。
其中,該第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于該第一目標(biāo)數(shù)據(jù)的數(shù)據(jù)量。
對(duì)于元數(shù)據(jù)中的每個(gè)第一目標(biāo)數(shù)據(jù),均需要將該第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)量更小的第二目標(biāo)數(shù)據(jù),從而實(shí)現(xiàn)有效減少元數(shù)據(jù)的數(shù)據(jù)量的目的。
其中,對(duì)于不同的第一目標(biāo)數(shù)據(jù)而言,轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù)也會(huì)有所不同,以實(shí)現(xiàn)區(qū)分不同的第一目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的第二目標(biāo)數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,將第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)的具體方式可以有多種,只要是能夠保證該第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于該第一目標(biāo)數(shù)據(jù)的數(shù)據(jù)量,使得轉(zhuǎn)換后的元數(shù)據(jù)的數(shù)據(jù)量減少即可。如,第一目標(biāo)數(shù)據(jù)為包含多個(gè)連續(xù)字符的文件名,則可以將該元數(shù)據(jù)中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為一個(gè)特殊字符,從而減少了元數(shù)據(jù)所占據(jù)的存儲(chǔ)量。
可選的,在本申請(qǐng)實(shí)施例中可以預(yù)置不同可壓縮數(shù)據(jù)類型所對(duì)應(yīng)的轉(zhuǎn)換方式,因此,在從元數(shù)據(jù)中確定出第一目標(biāo)數(shù)據(jù)之后,可以獲取該第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型所對(duì)應(yīng)的轉(zhuǎn)換方式,然后按照該轉(zhuǎn)換方式,將元數(shù)據(jù)中的該第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),從而得到經(jīng)過壓縮的元數(shù)據(jù)。
其中,可壓縮數(shù)據(jù)類型的對(duì)應(yīng)轉(zhuǎn)換方式,可以認(rèn)為該種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù)與所需轉(zhuǎn)換至的第二目標(biāo)數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系。如,舉例說明如下:
對(duì)于可壓縮數(shù)據(jù)類型為包含file的文件名,該種類型的轉(zhuǎn)換方式為將file轉(zhuǎn)換為字符a;對(duì)于可壓縮數(shù)據(jù)類型為擴(kuò)展名包含“name”的擴(kuò)展屬性,轉(zhuǎn)換方式為將種擴(kuò)展屬性中的數(shù)據(jù)name轉(zhuǎn)換為字符b,那么如果第一目標(biāo)數(shù)據(jù)為file或者包含file的文件名,則可以將該第一目標(biāo)數(shù)據(jù)中的file轉(zhuǎn)換為b,得到第二目標(biāo)數(shù)據(jù)。
相應(yīng)的,對(duì)于元數(shù)據(jù)中某條元數(shù)據(jù)字段為:filename:file1,則其中可以確定file屬于第一目標(biāo)數(shù)據(jù),那么經(jīng)過將該元數(shù)據(jù)字段中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),則得到的元數(shù)據(jù)字段為:filename:a1。與此類似,對(duì)于元數(shù)據(jù)中一條元數(shù)據(jù)字段:xattr:name1-xxxxx,則經(jīng)過轉(zhuǎn)換之后得到的元數(shù)據(jù)字段為:xattr:b1-xxxxx。
當(dāng)然,以上僅僅是舉例說明,在實(shí)際應(yīng)用中,屬于可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù)一般都為具有較多字符的連續(xù)字符串,其占據(jù)的數(shù)據(jù)量較多,而通過轉(zhuǎn)換則可以減少數(shù)據(jù)占用量。如,傳統(tǒng)文件管理中會(huì)將文件名全部進(jìn)行存儲(chǔ),若按照文件名最大255計(jì)算,一個(gè)4k的數(shù)據(jù)塊可以存儲(chǔ)的文件的元數(shù)據(jù)信息將不足16個(gè),從而加大文件元數(shù)據(jù)訪問的耗時(shí),而通過本申請(qǐng)的方案將元數(shù)據(jù)中文件名相同的部分轉(zhuǎn)換數(shù)據(jù)量較小的特定數(shù)據(jù)(即第二目標(biāo)數(shù)據(jù)),則可以最大程度降低文件元數(shù)據(jù)的空間使用。
104,存儲(chǔ)該經(jīng)過壓縮的元數(shù)據(jù)。
為了便于區(qū)分,本申請(qǐng)實(shí)施例將元數(shù)據(jù)中第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后所得到的元數(shù)據(jù)稱為經(jīng)過壓縮的元數(shù)據(jù)。當(dāng)然,此處的壓縮并非是指對(duì)元數(shù)據(jù)進(jìn)行整體壓縮,而是指通過將元數(shù)據(jù)中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)量更小的第二目標(biāo)數(shù)據(jù),使得元數(shù)據(jù)的自身的數(shù)據(jù)量變小。
由于該經(jīng)過壓縮的元數(shù)據(jù)相比于處理前的元數(shù)據(jù)的數(shù)據(jù)量更小,所需占據(jù)的存儲(chǔ)空間減少,從而減少了存儲(chǔ)元數(shù)據(jù)所需占用的存儲(chǔ)空間,而且,在需要從內(nèi)存中加載元數(shù)據(jù)時(shí),也有利于可以加載更多的元數(shù)據(jù),從而有利于保證存儲(chǔ)設(shè)備管理文件數(shù)據(jù)的性能。
可見,在本申請(qǐng)實(shí)施例中,在獲取到待存儲(chǔ)文件的元數(shù)據(jù)之后,根據(jù)預(yù)置的可壓縮數(shù)據(jù)類型,從該元數(shù)據(jù)中確定出屬于可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù),通過將該元數(shù)據(jù)中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)量較小的第二目標(biāo)數(shù)據(jù),使得得到的經(jīng)過壓縮的元數(shù)據(jù)的數(shù)據(jù)量變小,這樣,存儲(chǔ)該經(jīng)過壓縮的元數(shù)據(jù)可以占據(jù)較小的存儲(chǔ)空間;同時(shí),在存儲(chǔ)設(shè)備管理文件數(shù)據(jù)的過程中,由于存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)所占據(jù)的存儲(chǔ)空間變少,使得內(nèi)存中可以加載更多的元數(shù)據(jù),從而減少了由于內(nèi)存空間有限而無法完全加載所需處理的元數(shù)據(jù),而導(dǎo)致數(shù)據(jù)處理性能降低的情況,進(jìn)而有利于提高數(shù)據(jù)處理性能。
可以理解的是,可壓縮數(shù)據(jù)類型可以預(yù)置在配置文件中,從而通過配置該配置文件中可壓縮數(shù)據(jù)類型,來管理元數(shù)據(jù)中所需轉(zhuǎn)換的數(shù)據(jù)。
如,配置文件中配置的可壓縮數(shù)據(jù)類型的模板如下:
【meta1】
key=filename
context=“file,message”;
【meta2】
key=xattr-key
context=“name,info
其中,【meta1】以及【meta2】分別表示兩種可壓縮數(shù)據(jù)類型。其中,key表示可壓縮數(shù)據(jù)類型所對(duì)應(yīng)的元數(shù)據(jù)字段的名稱,該context部分則描述了該字段可能出現(xiàn)的冗余內(nèi)容,冗余內(nèi)容可以是多個(gè),例如,【meta1】中表示,名稱為filename的元數(shù)據(jù)字段中,file中存在冗余數(shù)據(jù),其為一種可壓縮數(shù)據(jù)類型。
當(dāng)然,以上僅僅是舉例說明,如果文件系統(tǒng)還有其他的元數(shù)據(jù)字段也符合可以壓縮的要求,也可以在該配置文件中進(jìn)行配置。
可以理解的是,在本申請(qǐng)以上實(shí)施例中,在存儲(chǔ)了經(jīng)過壓縮的元數(shù)據(jù)之后,后續(xù)還可以存儲(chǔ)設(shè)備還可以接收文件訪問請(qǐng)求,而由于元數(shù)據(jù)與現(xiàn)有的存儲(chǔ)元數(shù)據(jù)有所不同,因此,在依據(jù)該文件訪問請(qǐng)求獲取所需訪問的文件的文件名進(jìn)行轉(zhuǎn)換,以與存儲(chǔ)的經(jīng)過加密的元數(shù)據(jù)相匹配,以定位出所需訪問的文件的元數(shù)據(jù)。
如,參見圖2,其示出了本申請(qǐng)一種元數(shù)據(jù)處理方法又一個(gè)實(shí)施例的流程示意圖,本實(shí)施例的方法可以應(yīng)用于存儲(chǔ)設(shè)備,該方法可以包括:
201,接收到待存儲(chǔ)文件時(shí),獲取該待存儲(chǔ)文件的元數(shù)據(jù)。
202,基于預(yù)置的配置文件中包含的至少一種可壓縮數(shù)據(jù)類型,從該元數(shù)據(jù)中確定出屬于該配置文件中包含的可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù)。
203,對(duì)于每一個(gè)第一目標(biāo)數(shù)據(jù),依據(jù)該第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型所對(duì)應(yīng)的轉(zhuǎn)換方式,將元數(shù)據(jù)中的該第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到經(jīng)過壓縮的元數(shù)據(jù)。
其中,該第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于該第一目標(biāo)數(shù)據(jù)的數(shù)據(jù)量。
其中,不同可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式不同。
204,存儲(chǔ)該經(jīng)過壓縮的元數(shù)據(jù)。
以上步驟201至204可以參見前面實(shí)施例的相關(guān)介紹,在此不再贅述。
205,當(dāng)接收到文件訪問請(qǐng)求時(shí),確定該文件訪問請(qǐng)求所請(qǐng)求訪問的文件的文件名。
其中,該文件訪問請(qǐng)求可以請(qǐng)求訪問某個(gè)文件,如打開或者讀取該文件中的文件等等。
該文件訪問請(qǐng)求可以是有其他設(shè)備發(fā)送給該存儲(chǔ)設(shè)備的;也可以是用戶通過特定操作輸入的訪問請(qǐng)求;還可以是存儲(chǔ)設(shè)備在處理數(shù)據(jù)過程中,根據(jù)所需的處理的文件的文件名,生成的文件訪問請(qǐng)求。當(dāng)然,還可以其他獲取到文件訪問請(qǐng)求的可能,在此不加以限制。
206,判斷該文件名中是否具有屬于配置文件中配置的可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù)。
如,判斷該文件名是否屬于配置文件中配置的可壓縮數(shù)據(jù)類型,如果該文件名屬于可壓縮數(shù)據(jù)類型,則說明該文件名本身為第一目標(biāo)數(shù)據(jù)。
又如,判斷該文件名中是否包含屬于該可壓縮數(shù)據(jù)類型的數(shù)據(jù),為了與前面存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)相對(duì)應(yīng),在本申請(qǐng)實(shí)施例,將元數(shù)據(jù)以及元數(shù)據(jù)相關(guān)的文件名等數(shù)據(jù)中,屬于可壓縮數(shù)據(jù)類型的數(shù)據(jù)均稱為第一目標(biāo)數(shù)據(jù)。
207,如果該文件名中具有第一目標(biāo)數(shù)據(jù),則將該文件名中的該第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到壓縮后的文件名。
如果該文件名屬于可壓縮數(shù)據(jù)類型,或者文件名中包含屬于可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù),則說明存儲(chǔ)該文件名關(guān)聯(lián)的元數(shù)據(jù)時(shí),對(duì)元數(shù)據(jù)中的文件名進(jìn)行了轉(zhuǎn)換,如果直接依據(jù)該文件名來查詢?cè)獢?shù)據(jù),則可能無法定位到包含該文件名的元數(shù)據(jù)。因此,為了能夠定位出該文件名對(duì)應(yīng)的元數(shù)據(jù),需要按照存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)中該文件名的轉(zhuǎn)換方式,將該文件名進(jìn)行轉(zhuǎn)換。
相應(yīng)的,將該文件名中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)量較小的第二目標(biāo)數(shù)據(jù),其中,將該文件名中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)的過程可以與前面提到的相關(guān)過程相似,在此不再贅述。
208,從存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)中,查找與該壓縮后的文件名對(duì)應(yīng)的目標(biāo)元數(shù)據(jù)。
如果經(jīng)過元數(shù)據(jù)的元數(shù)據(jù)中存在該經(jīng)過壓縮的文件名,則說明該經(jīng)過壓縮的元數(shù)據(jù)為所需查找的目標(biāo)元數(shù)據(jù)。
可以理解的是,在查找該目標(biāo)元數(shù)據(jù)之前,可以先將經(jīng)過壓縮的元數(shù)據(jù)加載到內(nèi)存中,然后存儲(chǔ)設(shè)備可以從內(nèi)存中查找該目標(biāo)元數(shù)據(jù),以提高數(shù)據(jù)查找效率。
可以理解的是,在查找到該目標(biāo)元數(shù)據(jù)之后,存儲(chǔ)設(shè)備可以依據(jù)該目標(biāo)元數(shù)據(jù)定位該文件名所對(duì)應(yīng)的文件的存儲(chǔ)地址等信息,從而實(shí)現(xiàn)對(duì)該文件名對(duì)應(yīng)的文件的訪問。
可以理解的是,由于并非每個(gè)元數(shù)據(jù)中都存在屬于可壓縮數(shù)據(jù)類型的數(shù)據(jù),因此,有些元數(shù)據(jù)在存儲(chǔ)之前可能并不涉及到數(shù)據(jù)轉(zhuǎn)換的操作。為了能夠更為便捷的區(qū)分出,經(jīng)過轉(zhuǎn)換后的元數(shù)據(jù)以及未經(jīng)轉(zhuǎn)換的元數(shù)據(jù),在將元數(shù)據(jù)中的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后,還可以根據(jù)元數(shù)據(jù)中該第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型,生成一個(gè)轉(zhuǎn)換指示標(biāo)識(shí),該轉(zhuǎn)換指示標(biāo)識(shí)用于表征該元數(shù)據(jù)中具有的可壓縮數(shù)據(jù)類型。
具體的,參見圖3,其示出了本申請(qǐng)一種元數(shù)據(jù)處理方法又一個(gè)實(shí)施例的流程示意圖,本實(shí)施例的方法可以應(yīng)用于存儲(chǔ)設(shè)備,該方法可以包括:
301,接收到待存儲(chǔ)文件時(shí),獲取該待存儲(chǔ)文件的元數(shù)據(jù)。
302,基于預(yù)置的配置文件中包含的至少一種可壓縮數(shù)據(jù)類型,從該元數(shù)據(jù)中確定出屬于該配置文件中包含的可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù)。
303,對(duì)于每一個(gè)第一目標(biāo)數(shù)據(jù),依據(jù)該第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型所對(duì)應(yīng)的轉(zhuǎn)換方式,將元數(shù)據(jù)中的該第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到經(jīng)過壓縮的元數(shù)據(jù)。
其中,該第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于該第一目標(biāo)數(shù)據(jù)的數(shù)據(jù)量。
其中,不同可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式不同。
以上步驟301至303可以參見前面實(shí)施例的相關(guān)介紹,在此不再贅述。
304,在該經(jīng)過壓縮的元數(shù)據(jù)中第二目標(biāo)數(shù)據(jù)之后添加區(qū)分標(biāo)識(shí)。
其中,該區(qū)分標(biāo)識(shí)用于區(qū)分該元數(shù)據(jù)中轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù)以及未經(jīng)轉(zhuǎn)換的數(shù)據(jù)。其中,區(qū)分標(biāo)識(shí)之前的數(shù)據(jù)表示被轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù),而該區(qū)分標(biāo)識(shí)之后的數(shù)據(jù)表示該元數(shù)據(jù)中未經(jīng)轉(zhuǎn)換出的數(shù)據(jù)。
通過添加區(qū)分標(biāo)識(shí),有利于后續(xù)讀取出該經(jīng)過壓縮的元數(shù)據(jù)時(shí),可以準(zhǔn)確確定出該經(jīng)過壓縮的元數(shù)據(jù)中經(jīng)過轉(zhuǎn)換后的第二目標(biāo)數(shù)據(jù),從而可以將第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換回第一目標(biāo)數(shù)據(jù)。
可以理解的是,元數(shù)據(jù)中包括一條或多條元數(shù)據(jù)字段,在從元數(shù)據(jù)中確定出第一目標(biāo)數(shù)據(jù)之后,可以確定該第一目標(biāo)數(shù)據(jù)所屬的目標(biāo)元數(shù)據(jù)字段。相應(yīng)的,在將該第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后,可以在該目標(biāo)元數(shù)據(jù)字段中,該第二目標(biāo)數(shù)據(jù)之后添加該區(qū)分標(biāo)識(shí),其中,該目標(biāo)元數(shù)據(jù)字段中位于該區(qū)分標(biāo)識(shí)之前的數(shù)據(jù)為經(jīng)過轉(zhuǎn)換后得到的第二目標(biāo)數(shù)據(jù),而將區(qū)分標(biāo)識(shí)之后的數(shù)據(jù)為未經(jīng)轉(zhuǎn)換的數(shù)據(jù)。
舉例說明,假如元數(shù)據(jù)中包括元數(shù)據(jù)字段名分別為filename和xattr兩條元數(shù)據(jù)字段,分別為如下:
filename:file1;
xattr:name1-xxxxx;
其中,按照file轉(zhuǎn)換為a,而name轉(zhuǎn)換為b的轉(zhuǎn)換規(guī)則,將如上兩條元數(shù)據(jù)字段可以轉(zhuǎn)換為:
filename:a1;
xattr:b1-xxxxx。
則為了區(qū)分出元數(shù)據(jù)中哪些數(shù)據(jù)是經(jīng)過轉(zhuǎn)換的數(shù)據(jù),則可以在轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù)之后添加一個(gè)區(qū)分標(biāo)識(shí),假設(shè)區(qū)分標(biāo)識(shí)可以表示為@,則,如上兩條元數(shù)據(jù)字段可以表示如下:
filename:a@1;
xattr:b@1-xxxxx。
可見,依據(jù)該區(qū)分標(biāo)識(shí)@可知,在元數(shù)據(jù)字段filename中“a”為轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù);相應(yīng)的,“b”也為轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù)。
當(dāng)然,在元數(shù)據(jù)中添加該區(qū)分標(biāo)識(shí)僅僅是一種可選的方式,在實(shí)際應(yīng)用中,根據(jù)預(yù)置的轉(zhuǎn)換方式,也可以確定出元數(shù)據(jù)中哪些數(shù)據(jù)是經(jīng)過轉(zhuǎn)換后得到的,從而后續(xù)可以直接依據(jù)該轉(zhuǎn)換方式的逆過程,將第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第一目標(biāo)數(shù)據(jù)。
305,根據(jù)該元數(shù)據(jù)中第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型,生成一個(gè)轉(zhuǎn)換指示標(biāo)識(shí)。
306,將該轉(zhuǎn)換指示標(biāo)識(shí)添加到該經(jīng)過壓縮的元數(shù)據(jù)中。
其中,該轉(zhuǎn)換指示標(biāo)識(shí)用于表征原始的元數(shù)據(jù)中具有的可壓縮數(shù)據(jù)類型。且,如果元數(shù)據(jù)中包括該轉(zhuǎn)換指示標(biāo)識(shí),則表明該元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù)??梢姡ㄟ^該轉(zhuǎn)換指示標(biāo)識(shí)可以明確出那些元數(shù)據(jù)為經(jīng)過以上轉(zhuǎn)換處理后的元數(shù)據(jù)。
可選的,為了能夠迅速確定元數(shù)據(jù)中都有哪些元數(shù)據(jù)字段中包含經(jīng)過轉(zhuǎn)換后的數(shù)據(jù),新增一個(gè)字段來表示該轉(zhuǎn)換指示標(biāo)識(shí),該新增字段大小可以根據(jù)最大支持優(yōu)化的字段數(shù)目確定。如,假如最大支持優(yōu)化(即,進(jìn)行如上減少數(shù)據(jù)量的轉(zhuǎn)換)8個(gè)字段,則只需要一個(gè)字節(jié)來標(biāo)識(shí)即可,其中,每個(gè)bit標(biāo)識(shí)一種元數(shù)據(jù)字段。例如,假設(shè)以步驟304中的例子進(jìn)行說明,該轉(zhuǎn)換指示標(biāo)識(shí)中第0個(gè)bit表示文件名字段,,第1個(gè)bit表示xattr字段,如果元數(shù)據(jù)字段中包括屬于預(yù)置的可壓縮數(shù)據(jù)類型的數(shù)據(jù),則將字段對(duì)應(yīng)的比特的取值設(shè)置為1,相應(yīng)的,則新增給轉(zhuǎn)換指示標(biāo)識(shí)的字段的二進(jìn)制表示為00000011,其中,第0個(gè)比特為1表示文件名字段為存在轉(zhuǎn)換的字段。
307,存儲(chǔ)該經(jīng)過壓縮的元數(shù)據(jù)。
在以上任意一個(gè)實(shí)施例的基礎(chǔ)上,本申請(qǐng)的存儲(chǔ)設(shè)備還可以接收數(shù)據(jù)讀取請(qǐng)求,數(shù)據(jù)讀取請(qǐng)求用于請(qǐng)求依據(jù)元數(shù)據(jù)讀取文件數(shù)據(jù)。如,參見圖4,其示出了本申請(qǐng)一種元數(shù)據(jù)處理方法又一個(gè)實(shí)施例的流程示意圖,本實(shí)施例的方法可以包括:
401,當(dāng)檢測(cè)到數(shù)據(jù)讀取請(qǐng)求時(shí),獲取該數(shù)據(jù)讀取請(qǐng)求所請(qǐng)求讀取的數(shù)據(jù)存儲(chǔ)目錄。
其中,該數(shù)據(jù)存儲(chǔ)目錄可以理解為元數(shù)據(jù)對(duì)應(yīng)的目錄地址。
402,從該數(shù)據(jù)存儲(chǔ)目錄對(duì)應(yīng)的存儲(chǔ)區(qū)域中讀取出待處理的元數(shù)據(jù)。
在本申請(qǐng)實(shí)施例中,將數(shù)據(jù)存儲(chǔ)目錄所指向的元數(shù)據(jù)稱為待處理的元數(shù)據(jù)。
403,如果該待處理的元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù),則檢測(cè)該待處理元數(shù)據(jù)中,屬于由該至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù)。
確定該待處理的元數(shù)據(jù)是否為經(jīng)過壓縮的元數(shù)據(jù)的方式可以有多種,如,在將第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后,可以存儲(chǔ)第一目標(biāo)數(shù)據(jù)與第二目標(biāo)數(shù)據(jù)的對(duì)應(yīng)關(guān)系,或者是,存儲(chǔ)該第二目標(biāo)數(shù)據(jù)。這樣,在確定出該待處理的元數(shù)據(jù)之后,可以查詢存儲(chǔ)的經(jīng)過轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù),如果該待處理的元數(shù)據(jù)中包括第二目標(biāo)數(shù)據(jù),則說明該待處理的元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù)。
可選的,在經(jīng)過壓縮的元數(shù)據(jù)中包括轉(zhuǎn)換指示標(biāo)識(shí)的情況下,可以檢測(cè)該待處理的元數(shù)據(jù)中是否包括該轉(zhuǎn)換指示標(biāo)識(shí),如果包括該轉(zhuǎn)換指示標(biāo)識(shí),則確定該待處理的元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù)。
同時(shí),根據(jù)該轉(zhuǎn)換指示標(biāo)識(shí)各個(gè)比特位可以確定出該待處理的元數(shù)據(jù)中哪些元數(shù)據(jù)字段為經(jīng)過轉(zhuǎn)換的元數(shù)據(jù)字段,從而確定該元數(shù)據(jù)中哪些元數(shù)據(jù)字段中存在經(jīng)過轉(zhuǎn)換后的第二目標(biāo)數(shù)據(jù)。
進(jìn)一步的,在確定出該待處理的元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù),還可以檢測(cè)元數(shù)據(jù)中是否存在區(qū)分標(biāo)識(shí),以根據(jù)該區(qū)分標(biāo)識(shí),確定出該待處理的元數(shù)據(jù)中屬于第二目標(biāo)數(shù)據(jù)的部分。
404,將該待處理的元數(shù)據(jù)中的第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換為該第一目標(biāo)數(shù)據(jù),得到待處理的元數(shù)據(jù)對(duì)應(yīng)的常規(guī)元數(shù)據(jù)。
為了便于區(qū)分,本申請(qǐng)實(shí)施例中,將待處理的元數(shù)據(jù)中的第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第一目標(biāo)數(shù)據(jù)所得到的元數(shù)據(jù)稱為常規(guī)元數(shù)據(jù),該常規(guī)元數(shù)據(jù)是指不存在第一目標(biāo)數(shù)據(jù)被轉(zhuǎn)換為較少數(shù)據(jù)量的第二目標(biāo)數(shù)據(jù)的元數(shù)據(jù)。
其中,將待處理的元數(shù)據(jù)中的第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第一目標(biāo)數(shù)據(jù)的過程可以看成是將第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)的逆過程。如,可以根據(jù)預(yù)置的第一目標(biāo)數(shù)據(jù)與第二目標(biāo)數(shù)據(jù)的對(duì)應(yīng)關(guān)系,查詢?cè)摰诙繕?biāo)數(shù)據(jù)所對(duì)應(yīng)的第一目標(biāo)數(shù)據(jù),并對(duì)該待處理的元數(shù)據(jù)進(jìn)行轉(zhuǎn)換處理。
405,依據(jù)該常規(guī)元數(shù)據(jù)進(jìn)行文件讀取。
轉(zhuǎn)換得到該常規(guī)元數(shù)據(jù)之后,就可以按照現(xiàn)有的文件讀取方式,實(shí)現(xiàn)文件的讀取。
為了實(shí)現(xiàn)本申請(qǐng)實(shí)施例的以上元數(shù)據(jù)處理方法,本申請(qǐng)實(shí)施例還提供了一種存儲(chǔ)設(shè)備,該存儲(chǔ)設(shè)備可以為獨(dú)立的存儲(chǔ)服務(wù)器,或者存儲(chǔ)終端,也可以為分布式集群系統(tǒng)或者集中存儲(chǔ)系統(tǒng)中的服務(wù)器節(jié)點(diǎn)。
如,參見圖5,其示出了本申請(qǐng)一種存儲(chǔ)設(shè)備一個(gè)實(shí)施例的組成結(jié)構(gòu)示意圖,本實(shí)施例的存儲(chǔ)設(shè)備500可以包括:
存儲(chǔ)器501,用于存儲(chǔ)預(yù)置的至少一種可壓縮數(shù)據(jù)類型;
通信接口502,用于接收到待存儲(chǔ)文件;
處理器503,用于獲取所述待存儲(chǔ)文件的元數(shù)據(jù);基于預(yù)置的至少一種可壓縮數(shù)據(jù)類型,從所述元數(shù)據(jù)中確定出屬于所述可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù);將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到經(jīng)過壓縮的元數(shù)據(jù),其中,所述第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于所述第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量;
所述存儲(chǔ)器501,還用于存儲(chǔ)所述經(jīng)過壓縮的元數(shù)據(jù)。
可以理解的是,該存儲(chǔ)設(shè)備還可以包括連接該存儲(chǔ)器501、通信接口502以及處理器503的通信總線504,當(dāng)然,該存儲(chǔ)設(shè)備還可以包括其他部件,在此不加以限制。
可選的,所述處理器在將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)時(shí),具體用于,依據(jù)所述第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式,將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),其中,不同可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式不同。
可選的,所述處理器還用于,在所述將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后,在所述第二目標(biāo)數(shù)據(jù)之后添加區(qū)分標(biāo)識(shí),所述區(qū)分標(biāo)識(shí)用于區(qū)分所述元數(shù)據(jù)中轉(zhuǎn)換出的所述第二目標(biāo)數(shù)據(jù)以及未經(jīng)轉(zhuǎn)換的數(shù)據(jù)。
可選的,在所述處理器在將所述經(jīng)過壓縮的元數(shù)據(jù)存儲(chǔ)到所述存儲(chǔ)器之前,還用于,根據(jù)所述元數(shù)據(jù)中所述第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型,生成一個(gè)轉(zhuǎn)換指示標(biāo)識(shí),所述轉(zhuǎn)換指示標(biāo)識(shí)用于表征所述元數(shù)據(jù)中具有的可壓縮數(shù)據(jù)類型;將所述轉(zhuǎn)換指示標(biāo)識(shí)添加到所述元數(shù)據(jù)中。
可選的,所述通信接口還用于,接收到文件訪問請(qǐng)求;
所述處理器還用于,確定所述文件訪問請(qǐng)求所請(qǐng)求讀取的文件的文件名;判斷所述文件名中具有屬于所述預(yù)置的至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù);如果所述文件名中具有所述第一目標(biāo)數(shù)據(jù),則將所述文件名中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為所述第二目標(biāo)數(shù)據(jù),得到壓縮后的文件名;從所述存儲(chǔ)器存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)中,查找與所述壓縮后的文件名對(duì)應(yīng)的目標(biāo)元數(shù)據(jù)。
可選的,所述處理器還用于,當(dāng)檢測(cè)到數(shù)據(jù)讀取請(qǐng)求時(shí),獲取所述數(shù)據(jù)讀取請(qǐng)求所請(qǐng)求讀取的數(shù)據(jù)存儲(chǔ)目錄;從所述數(shù)據(jù)存儲(chǔ)目錄對(duì)應(yīng)的存儲(chǔ)區(qū)域中讀取出待處理的元數(shù)據(jù);如果所述待處理的元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù),則檢測(cè)所述待處理元數(shù)據(jù)中,屬于由所述至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù);將所述待處理的元數(shù)據(jù)中的所述第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換為所述第一目標(biāo)數(shù)據(jù),得到待處理的元數(shù)據(jù)對(duì)應(yīng)的常規(guī)元數(shù)據(jù);依據(jù)所述常規(guī)元數(shù)據(jù)進(jìn)行文件讀取。
另一方面,對(duì)應(yīng)本申請(qǐng)的一種元數(shù)據(jù)處理方法,本申請(qǐng)實(shí)施例還提供了一種元數(shù)據(jù)處理裝置。
如,參見圖6,其示出了本申請(qǐng)一種元數(shù)據(jù)處理裝置一個(gè)實(shí)施例的組成結(jié)構(gòu)示意圖,本實(shí)施例的裝置可以包括:
文件處理單元601,用于接收到待存儲(chǔ)文件時(shí),獲取所述待存儲(chǔ)文件的元數(shù)據(jù);
目標(biāo)確定單元602,用于基于預(yù)置的至少一種可壓縮數(shù)據(jù)類型,從所述元數(shù)據(jù)中確定出屬于所述可壓縮數(shù)據(jù)類型的至少一個(gè)第一目標(biāo)數(shù)據(jù);
數(shù)據(jù)壓縮單元603,用于將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),得到經(jīng)過壓縮的元數(shù)據(jù),其中,所述第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于所述第二目標(biāo)數(shù)據(jù)的數(shù)據(jù)量;
數(shù)據(jù)存儲(chǔ)單元604,用于存儲(chǔ)所述經(jīng)過壓縮的元數(shù)據(jù)。
可選的,所述數(shù)據(jù)壓縮單元在將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)時(shí),具體用于,依據(jù)所述第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式,將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù),其中,不同可壓縮數(shù)據(jù)類型對(duì)應(yīng)的轉(zhuǎn)換方式不同。
所述裝置還包括:
第一標(biāo)識(shí)添加單元,用于在所述數(shù)據(jù)壓縮單元將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后,在所述第二目標(biāo)數(shù)據(jù)之后添加區(qū)分標(biāo)識(shí),所述區(qū)分標(biāo)識(shí)用于區(qū)分所述元數(shù)據(jù)中轉(zhuǎn)換出的所述第二目標(biāo)數(shù)據(jù)以及未經(jīng)轉(zhuǎn)換的數(shù)據(jù)。
第二標(biāo)識(shí)添加單元,用于在所述數(shù)據(jù)壓縮單元將所述元數(shù)據(jù)中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為第二目標(biāo)數(shù)據(jù)之后,根據(jù)所述元數(shù)據(jù)中所述第一目標(biāo)數(shù)據(jù)的可壓縮數(shù)據(jù)類型,生成一個(gè)轉(zhuǎn)換指示標(biāo)識(shí),所述轉(zhuǎn)換指示標(biāo)識(shí)用于表征所述元數(shù)據(jù)中具有的可壓縮數(shù)據(jù)類型;
將所述轉(zhuǎn)換指示標(biāo)識(shí)添加到所述元數(shù)據(jù)中。
可選的,所述裝置還包括:
訪問接收單元,用于當(dāng)接收到文件訪問請(qǐng)求時(shí),確定所述文件訪問請(qǐng)求所請(qǐng)求讀取的文件的文件名;
文件名識(shí)別單元,用于判斷所述文件名中具有屬于所述預(yù)置的至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù);
逆轉(zhuǎn)換單元,用于如果所述文件名中具有所述第一目標(biāo)數(shù)據(jù),則將所述文件名中的所述第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換為所述第二目標(biāo)數(shù)據(jù),得到壓縮后的文件名;
元數(shù)據(jù)查找單元,用于從存儲(chǔ)的經(jīng)過壓縮的元數(shù)據(jù)中,查找與所述壓縮后的文件名對(duì)應(yīng)的目標(biāo)元數(shù)據(jù)。
可選的,所述裝置還包括:
讀取請(qǐng)求接收單元,用于當(dāng)檢測(cè)到數(shù)據(jù)讀取請(qǐng)求時(shí),獲取所述數(shù)據(jù)讀取請(qǐng)求所請(qǐng)求讀取的數(shù)據(jù)存儲(chǔ)目錄;
元數(shù)據(jù)讀取單元,用于從所述數(shù)據(jù)存儲(chǔ)目錄對(duì)應(yīng)的存儲(chǔ)區(qū)域中讀取出待處理的元數(shù)據(jù);
元數(shù)據(jù)轉(zhuǎn)換單元,用于如果所述待處理的元數(shù)據(jù)為經(jīng)過壓縮的元數(shù)據(jù),則檢測(cè)所述待處理元數(shù)據(jù)中,屬于由所述至少一種可壓縮數(shù)據(jù)類型的第一目標(biāo)數(shù)據(jù)轉(zhuǎn)換出的第二目標(biāo)數(shù)據(jù);
數(shù)據(jù)逆轉(zhuǎn)換單元,用于將所述待處理的元數(shù)據(jù)中的所述第二目標(biāo)數(shù)據(jù)轉(zhuǎn)換為所述第一目標(biāo)數(shù)據(jù),得到待處理的元數(shù)據(jù)對(duì)應(yīng)的常規(guī)元數(shù)據(jù);
文件讀取單元,用于依據(jù)所述常規(guī)元數(shù)據(jù)進(jìn)行文件讀取。
本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。