專利名稱:重復(fù)數(shù)據(jù)的處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種重復(fù)數(shù)據(jù)的處理方法,特別涉及一種快速的重復(fù)數(shù)據(jù)的處理方法。
背景技術(shù):
重復(fù)數(shù)據(jù)刪除是一種數(shù)據(jù)縮減技術(shù),通常用于基于磁盤的備份系統(tǒng),主要目的在于減少存儲(chǔ)系統(tǒng)中使用的存儲(chǔ)容量。它的工作方式是在某個(gè)時(shí)間周期內(nèi)查找不同文件中不同位置的重復(fù)可變大小數(shù)據(jù)塊。重復(fù)的數(shù)據(jù)塊用指示符取代。由于存儲(chǔ)系統(tǒng)中總是充斥著大量的冗余數(shù)據(jù)。為了解決這個(gè)問(wèn)題,節(jié)省更多空間,重復(fù)刪除的技術(shù)便順理成章地成了人們關(guān)注的焦點(diǎn)。采用重復(fù)刪除的技術(shù)可以將存儲(chǔ)的數(shù)據(jù)縮減為原來(lái)的1/20,從而讓出更多的備份空間,不僅可以使存儲(chǔ)系統(tǒng)上的備份數(shù)據(jù)保存更長(zhǎng)的時(shí)間,而且還可以節(jié)約離線存儲(chǔ)時(shí)所需的大量的頻寬。 由于欲存儲(chǔ)的數(shù)據(jù)都會(huì)被儲(chǔ)存在服務(wù)器中,因此客戶端需要時(shí)時(shí)的將數(shù)據(jù)傳送至服務(wù)器。接著,服務(wù)器再對(duì)數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除的處理。然而為了判斷客戶端欲備份的數(shù)據(jù)是否已儲(chǔ)存在服務(wù)器的磁盤中,需要將相關(guān)的整個(gè)數(shù)據(jù)塊加載記憶體,再讀取整個(gè)數(shù)據(jù)塊中的元數(shù)據(jù)(meta data)的部分。但不論此數(shù)據(jù)塊是不是重復(fù)數(shù)據(jù),都不會(huì)用到被加載記憶體的數(shù)據(jù)塊中的原始數(shù)據(jù)(raw data)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種重復(fù)數(shù)據(jù)的處理方法。重復(fù)數(shù)據(jù)的處理方法先將一儲(chǔ)存文件分割成多個(gè)原始數(shù)據(jù)塊Craw tank)以及多個(gè)元數(shù)據(jù)塊(meta tank),其中原始數(shù)據(jù)塊以及元數(shù)據(jù)塊為一對(duì)一對(duì)應(yīng),且每一個(gè)元數(shù)據(jù)塊中存有對(duì)應(yīng)的原始數(shù)據(jù)塊的一儲(chǔ)存指紋值(fingerprint)。接著接收一判斷重復(fù)數(shù)據(jù)請(qǐng)求,其中判斷重復(fù)數(shù)據(jù)請(qǐng)求包括一請(qǐng)求指紋值。重復(fù)數(shù)據(jù)的處理方法讀取至少一個(gè)元數(shù)據(jù)塊,并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值。當(dāng)請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值相同時(shí),修改讀取的元數(shù)據(jù)塊的一引用計(jì)數(shù)值(referred counter),并將修改過(guò)的元數(shù)據(jù)塊回存。其中每一個(gè)原始數(shù)據(jù)塊可包括多個(gè)原始數(shù)據(jù)單元(raw chunk),每一個(gè)元數(shù)據(jù)塊可包括多個(gè)元數(shù)據(jù)單元(meta chunk),且原始數(shù)據(jù)單元以及元數(shù)據(jù)單元為一對(duì)一對(duì)應(yīng)。根據(jù)一實(shí)施范例,儲(chǔ)存文件可儲(chǔ)存于一服務(wù)器的一磁盤,且修改過(guò)的元數(shù)據(jù)塊可回存于磁盤?!白x取至少一個(gè)元數(shù)據(jù)塊,并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值”的步驟中,可先判斷對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊是否存在于一記憶體。當(dāng)對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊存在于記憶體時(shí),讀取記憶體中對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊,并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值?!白x取至少一個(gè)元數(shù)據(jù)塊,并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值”的步驟中,當(dāng)對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊不存在于記憶體時(shí),可由磁盤將對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊讀入記憶體,并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值。根據(jù)另一實(shí)施范例,多個(gè)元數(shù)據(jù)塊可被作為一分配組?!白x取至少一個(gè)元數(shù)據(jù)塊,并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值”的步驟中則可先讀取至少一個(gè)分配組,再對(duì)比請(qǐng)求指紋值與讀取的分配組中的元數(shù)據(jù)塊的儲(chǔ)存指紋值。其中分配組的數(shù)據(jù)大小可以是16千字節(jié)(KB)的正整數(shù)倍。此外,“改讀取的元數(shù)據(jù)塊的引用計(jì)數(shù)值,并將修改過(guò)的元數(shù)據(jù)塊回存”的步驟中,可修改讀取的元數(shù)據(jù)塊的引用計(jì)數(shù)值,并將修改過(guò)的元數(shù)據(jù)塊所對(duì)應(yīng)的分配組回存。以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。
圖I為根據(jù)本發(fā)明一實(shí)施范例的服務(wù)器的示意圖; 圖2為根據(jù)本發(fā)明一實(shí)施范例的重復(fù)數(shù)據(jù)的處理方法的流程圖;圖3為根據(jù)本發(fā)明一實(shí)施范例的元數(shù)據(jù)單元以及原始數(shù)據(jù)單元的示意圖;圖4為根據(jù)本發(fā)明一實(shí)施范例的步驟S130的流程圖;圖5為根據(jù)本發(fā)明一實(shí)施范例的分配組的示意圖。其中,附圖標(biāo)記10客戶端20服務(wù)器30記憶體40 磁盤50儲(chǔ)存文件60,60A,60B,60C 元數(shù)據(jù)塊62元數(shù)據(jù)單元64分配組70,70A,70B,70C 原始數(shù)據(jù)塊72原始數(shù)據(jù)單元
具體實(shí)施例方式以下在實(shí)施方式中詳細(xì)敘述本發(fā)明的詳細(xì)特征以及優(yōu)點(diǎn),其內(nèi)容足以使任何本領(lǐng)域技術(shù)人員了解本發(fā)明的技術(shù)內(nèi)容并據(jù)以實(shí)施,且根據(jù)本說(shuō)明書所揭露的內(nèi)容、權(quán)利要求范圍及附圖,任何本領(lǐng)域技術(shù)人員可輕易地理解本發(fā)明相關(guān)的目的及優(yōu)點(diǎn)。本發(fā)明關(guān)于一種重復(fù)數(shù)據(jù)的處理方法,其適用于一服務(wù)器。實(shí)施重復(fù)數(shù)據(jù)的處理方法的服務(wù)器可被用以備份至少一客戶端的數(shù)據(jù),且服務(wù)器可具有重復(fù)數(shù)據(jù)刪除的功能。請(qǐng)參照?qǐng)D1,其為根據(jù)本發(fā)明一實(shí)施范例的服務(wù)器的示意圖。服務(wù)器20可通過(guò)因特網(wǎng)(Internet)或內(nèi)網(wǎng)(internet)等各種網(wǎng)絡(luò)(network)與多個(gè)客戶端10連接,并備份由客戶端10傳送來(lái)的數(shù)據(jù)。服務(wù)器20可具有一記憶體30、一磁盤40以及處理器等硬件。磁盤40儲(chǔ)存多個(gè)已從客戶端10完整接收的多個(gè)儲(chǔ)存文件50 ;而在處理儲(chǔ)存文件50時(shí),可將欲處理的數(shù)據(jù)從磁盤40加載記憶體30再進(jìn)行處理。儲(chǔ)存文件50可以例如是純文本文件、各種多媒體文件或是客戶端10進(jìn)行系統(tǒng)備份時(shí)產(chǎn)生的快照(snapshot)。重復(fù)數(shù)據(jù)的處理方法能夠在客戶端10欲進(jìn)行備份時(shí),快速地判斷在欲進(jìn)行備份的文件是否是服務(wù)器20的儲(chǔ)存文件50之一。請(qǐng)參照?qǐng)D2,其為根據(jù)本發(fā)明一實(shí)施范例的重復(fù)數(shù)據(jù)的處理方法的流程圖。首先,服務(wù)器20可預(yù)先將儲(chǔ)存文件50分割成多個(gè)元數(shù)據(jù)塊(meta tank) 60A、60B以及60C,以及多個(gè)原始數(shù)據(jù)塊(raw tank)70A、70B以及70C (步驟S100)。另,以下統(tǒng)稱為元數(shù)據(jù)塊60以及原始數(shù)據(jù)塊70。原始數(shù)據(jù)塊70以及元數(shù)據(jù)塊60為一對(duì)一對(duì)應(yīng)。其中每一個(gè)元數(shù)據(jù)塊60中存有對(duì)應(yīng)的原始數(shù)據(jù)塊70的一儲(chǔ)存指紋值(fingerprint)。舉例來(lái)說(shuō),元數(shù)據(jù)塊60A、60B以及60C可以是分別對(duì)應(yīng)于原始數(shù)據(jù)塊70A、70B以及70C ;且元數(shù)據(jù)塊60A中存有原始數(shù)據(jù)塊70A的儲(chǔ)存指紋值。服務(wù)器20可以利用固定長(zhǎng)度方式(fixed-size partition)或基于內(nèi)容變長(zhǎng)度分割方式(content-defined chunking, CDC)等方式先將整個(gè)儲(chǔ)存文件50分割成多組數(shù)據(jù)塊,其中每一組數(shù)據(jù)塊包括對(duì)應(yīng)的一個(gè)元數(shù)據(jù)塊60以及原始數(shù)據(jù)塊70。接著再將成對(duì)的元 數(shù)據(jù)塊60以及原始數(shù)據(jù)塊70分別存放,以利后續(xù)讀取。然而服務(wù)器20也可以先將儲(chǔ)存文件50的內(nèi)容部分分割成原始數(shù)據(jù)塊70,再依據(jù)分割好的原始數(shù)據(jù)塊70得到對(duì)應(yīng)的元數(shù)據(jù)塊60。服務(wù)器20并可通過(guò)1 5、5撤-1、5撤-256、SHA-512或單向哈希(One-way HASH)等算法計(jì)算每一個(gè)原始數(shù)據(jù)塊70的儲(chǔ)存指紋值,并將這些儲(chǔ)存指紋值存入對(duì)應(yīng)的元數(shù)據(jù)塊60之中。于一實(shí)施范例中,每一個(gè)原始數(shù)據(jù)塊70可包括多個(gè)原始數(shù)據(jù)單元(rawchunk) 72,如圖3所示。相對(duì)地,每一個(gè)元數(shù)據(jù)塊60可包括多個(gè)元數(shù)據(jù)單元(metachunk) 62,且這些原始數(shù)據(jù)單元72以及元數(shù)據(jù)單元62也是一對(duì)一對(duì)應(yīng)。例如元數(shù)據(jù)塊60A中的6個(gè)元數(shù)據(jù)單元62 —對(duì)一對(duì)應(yīng)于原始數(shù)據(jù)塊70A中的6個(gè)原始數(shù)據(jù)單元72。以固定長(zhǎng)度的分割方式為例,假設(shè)每一個(gè)原始數(shù)據(jù)單元72的長(zhǎng)度為64千字節(jié)(KB),對(duì)應(yīng)的元數(shù)據(jù)單元62的長(zhǎng)度會(huì)是28字節(jié)(byte),并固定每個(gè)原始數(shù)據(jù)塊70的長(zhǎng)度為2兆字節(jié)(MB)。則可計(jì)算出每個(gè)數(shù)據(jù)塊中包括32個(gè)單元,而元數(shù)據(jù)塊60的長(zhǎng)度為896KB。接著服務(wù)器20可從任一個(gè)客戶端10接收一重復(fù)數(shù)據(jù)判斷請(qǐng)求,其中重復(fù)數(shù)據(jù)判斷請(qǐng)求包括一請(qǐng)求指紋值(步驟S120)。為了盡量減少客戶端10與服務(wù)器20之間的數(shù)據(jù)傳輸,客戶端10預(yù)備份一請(qǐng)求數(shù)據(jù)塊時(shí)可以只傳送代表請(qǐng)求數(shù)據(jù)塊的請(qǐng)求指紋值給服務(wù)器20。但依據(jù)請(qǐng)求數(shù)據(jù)塊計(jì)算請(qǐng)求指紋值的算法須與依據(jù)原始數(shù)據(jù)塊70計(jì)算儲(chǔ)存指紋值的算法相同。接收重復(fù)數(shù)據(jù)判斷請(qǐng)求之后,服務(wù)器20讀取對(duì)應(yīng)此重復(fù)數(shù)據(jù)判斷請(qǐng)求的儲(chǔ)存文件50的至少一個(gè)元數(shù)據(jù)塊60,并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊60的儲(chǔ)存指紋值(步驟 S130)。請(qǐng)同時(shí)參照?qǐng)D4,其為根據(jù)本發(fā)明一實(shí)施范例的步驟S130的流程圖。服務(wù)器20首先判斷對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊60是否存在于記憶體30 (步驟S132)。當(dāng)對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊60已存在于記憶體30時(shí),服務(wù)器20可直接讀取記憶體30中對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊60 (步驟S134),并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊60的儲(chǔ)存指紋值(步驟S136)。相反地,若在記憶體30中搜尋后找不到對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊60,則先由磁盤40將對(duì)應(yīng)于請(qǐng)求指紋值的元數(shù)據(jù)塊60讀入記憶體30 (步驟S138),在執(zhí)行步驟S134以及步驟S136。
舉例而言,假設(shè)元數(shù)據(jù)塊60C對(duì)應(yīng)于請(qǐng)求指紋值。由于在記憶體30中找不到元數(shù)據(jù)塊60C,因此先將元數(shù)據(jù)塊60C加載記憶體30。須注意的是,在步驟S138之中只需加載數(shù)據(jù)長(zhǎng)度極小的元數(shù)據(jù)塊60C,而不用加載對(duì)應(yīng)的原始數(shù)據(jù)塊70C。在元數(shù)據(jù)塊60C尚未因記憶體30的空間不足而被交換出記憶體30的期間內(nèi),若再有接收到對(duì)應(yīng)元數(shù)據(jù)塊60C的請(qǐng)求指紋值,則服務(wù)器20可以直接執(zhí)行步驟S134以及S136。服務(wù)器20接著判斷請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊60的儲(chǔ)存指紋值是否相同(步驟S140)。當(dāng)請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊60的儲(chǔ)存指紋值相同時(shí),表示請(qǐng)求指紋值對(duì)應(yīng)到一個(gè)已存在的原始數(shù)據(jù)塊70,因此請(qǐng)求指紋值代表的請(qǐng)求數(shù)據(jù)塊為重復(fù)數(shù)據(jù)。針對(duì)重復(fù)數(shù)據(jù),服務(wù)器20僅須修改讀取的元數(shù)據(jù)塊60的一引用計(jì)數(shù)值(referred counter),并將修改過(guò)的元數(shù)據(jù)塊60回存(步驟S150)。其中引用計(jì)數(shù)值是代表對(duì)應(yīng)的原始數(shù)據(jù)塊70被引用的次數(shù);同一個(gè)原始數(shù)據(jù)塊70可能被相同客戶端10多次引用,也可能被不同客戶端10同時(shí)引用。修改過(guò)的元數(shù)據(jù)塊60是由記憶體30回存于磁盤40。若在步驟S130中找不到與請(qǐng)求指紋值對(duì)應(yīng)的儲(chǔ)存文件50或元數(shù)據(jù)塊60,則表示請(qǐng)求指紋值對(duì)應(yīng)的請(qǐng)求數(shù)據(jù)塊是新的數(shù)據(jù)塊,而非重復(fù)數(shù)據(jù)。則服務(wù)器20可執(zhí)行一新增程 序,要求客戶端10傳輸請(qǐng)求數(shù)據(jù)塊,并將接收到的請(qǐng)求數(shù)據(jù)塊新增至磁盤40。而當(dāng)請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊60的儲(chǔ)存指紋值不同時(shí),則表示發(fā)生哈希沖突。服務(wù)器20可以通過(guò)查找一哈希沖突表等方式,重新搜尋記憶體30或是磁盤40中重新搜尋是否有存在與請(qǐng)求指紋值對(duì)應(yīng)的儲(chǔ)存文件50或元數(shù)據(jù)塊60,并判斷是否執(zhí)行上數(shù)步驟 S130 到 S150。須注意的是,雖然圖2是以在單一個(gè)儲(chǔ)存文件50的元數(shù)據(jù)塊60中尋找請(qǐng)求指紋值為例,但重復(fù)數(shù)據(jù)的處理方法也可在多個(gè)儲(chǔ)存文件50之中搜尋與請(qǐng)求指紋值對(duì)應(yīng)的元數(shù)據(jù)塊60。此外,服務(wù)器20還可將多個(gè)連續(xù)的元數(shù)據(jù)塊60作為一分配組,并以分配組做為存取元數(shù)據(jù)塊60的單位。請(qǐng)參照?qǐng)D5,其為根據(jù)本發(fā)明一實(shí)施范例的分配組的示意圖。服務(wù)器20可以將多個(gè)連續(xù)的元數(shù)據(jù)塊60作為一個(gè)分配組64,且一次將整個(gè)分配組64加載記憶體30,再讀取其中的至少一個(gè)元數(shù)據(jù)塊60。則于步驟S130時(shí),服務(wù)器20可以先讀取至少一個(gè)分配組64 ;再對(duì)比請(qǐng)求指紋值與讀取的分配組64中的元數(shù)據(jù)塊60的儲(chǔ)存指紋值。而在步驟S150進(jìn)行回存時(shí),也可一次將整個(gè)修改過(guò)的元數(shù)據(jù)塊60所對(duì)應(yīng)的分配組64。分配組64的數(shù)據(jù)大小可以是16KB的正整數(shù)倍,例如16KB、64KB或是128KB。分配組64的數(shù)據(jù)大小可以配合磁盤磁區(qū)來(lái)選用。以磁盤磁區(qū)為64KB的服務(wù)器20為例,單次的數(shù)據(jù)輸入輸出(input/output, 10)的單位就是64KB。因此配合磁盤磁區(qū)的設(shè)定將多個(gè)元數(shù)據(jù)塊60湊成一個(gè)分配組64,可以在一次的磁盤IO中讀寫最大數(shù)量的元數(shù)據(jù)塊60。如此一來(lái),可避免每次都為了大小僅為3k的單一元數(shù)據(jù)塊60去讀寫64KB的數(shù)據(jù)。綜上所述,重復(fù)數(shù)據(jù)的處理方法在判斷請(qǐng)求指紋值對(duì)應(yīng)的請(qǐng)求數(shù)據(jù)塊是否已存在時(shí),僅需將對(duì)應(yīng)的元數(shù)據(jù)塊加載記憶體當(dāng)中。如此一來(lái),服務(wù)器不須要把整個(gè)相關(guān)的元數(shù)據(jù)塊以及原始數(shù)據(jù)塊都加載記憶體,而能夠節(jié)省大量的磁盤IO時(shí)間。以前述實(shí)施范例的數(shù)值而言,重復(fù)數(shù)據(jù)的處理方法只需加載約3KB的元數(shù)據(jù)塊即可進(jìn)行判別,而不需將用不到的2MB的原始數(shù)據(jù)塊也加載磁盤中。
更進(jìn)一步地,重復(fù)數(shù)據(jù)的處理方法能配合磁盤磁區(qū)的設(shè)定分配組,并一次存取連續(xù)的多個(gè)元數(shù)據(jù)塊。因此對(duì)于文件或數(shù)據(jù)塊數(shù)量龐大的全備份(full backup)等服務(wù),由于請(qǐng)求數(shù)據(jù)塊的連續(xù)性很高,因此一次加載連續(xù)多個(gè)元數(shù)據(jù)塊的做法可提高搜尋的命中率,并且進(jìn)一步減少所需的磁盤IO次數(shù)。更甚者,由于元數(shù)據(jù)塊的數(shù)據(jù)長(zhǎng)度較小,重復(fù)數(shù)據(jù)的處理方法也可由服務(wù)器提供需用以比較的儲(chǔ)存指紋值給客戶端,并由各客戶端進(jìn)行比較以及去除重復(fù)數(shù)據(jù)的步驟。 當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種重復(fù)數(shù)據(jù)的處理方法,其特征在于,包括 將一儲(chǔ)存文件分割成多個(gè)原始數(shù)據(jù)塊以及多個(gè)元數(shù)據(jù)塊,其中該些原始數(shù)據(jù)塊以及該些元數(shù)據(jù)塊為一對(duì)一對(duì)應(yīng),且每一該元數(shù)據(jù)塊中存有對(duì)應(yīng)的該原始數(shù)據(jù)塊的一儲(chǔ)存指紋值; 接收一重復(fù)數(shù)據(jù)判斷請(qǐng)求,其中該重復(fù)數(shù)據(jù)判斷請(qǐng)求包括一請(qǐng)求指紋值; 讀取至少一該元數(shù)據(jù)塊,并對(duì)比該請(qǐng)求指紋值與讀取的該元數(shù)據(jù)塊的該儲(chǔ)存指紋值;以及 當(dāng)該請(qǐng)求指紋值與讀取的該元數(shù)據(jù)塊的該儲(chǔ)存指紋值相同時(shí),修改讀取的該元數(shù)據(jù)塊的一引用計(jì)數(shù)值,并將修改過(guò)的該元數(shù)據(jù)塊回存。
2.根據(jù)權(quán)利要求I所述的重復(fù)數(shù)據(jù)的處理方法,其特征在于,每一該原始數(shù)據(jù)塊包括多個(gè)原始數(shù)據(jù)單元,每一該元數(shù)據(jù)塊包括多個(gè)元數(shù)據(jù)單元,且該些原始數(shù)據(jù)單元以及該些元數(shù)據(jù)單元為一對(duì)一對(duì)應(yīng)。
3.根據(jù)權(quán)利要求I所述的重復(fù)數(shù)據(jù)的處理方法,其特征在于,該儲(chǔ)存文件儲(chǔ)存于一服務(wù)器的一磁盤,且修改過(guò)的該元數(shù)據(jù)塊回存于該磁盤。
4.根據(jù)權(quán)利要求3所述的重復(fù)數(shù)據(jù)的處理方法,其特征在于,該讀取至少一該元數(shù)據(jù)塊,并對(duì)比該請(qǐng)求指紋值與讀取的該元數(shù)據(jù)塊的該儲(chǔ)存指紋值的步驟包括 判斷對(duì)應(yīng)于該請(qǐng)求指紋值的該元數(shù)據(jù)塊是否存在于一記憶體;以及 當(dāng)該對(duì)應(yīng)于該請(qǐng)求指紋值的該元數(shù)據(jù)塊存在于該記憶體時(shí),讀取該記憶體中對(duì)應(yīng)于該請(qǐng)求指紋值的該元數(shù)據(jù)塊,并對(duì)比該請(qǐng)求指紋值與讀取的該元數(shù)據(jù)塊的該儲(chǔ)存指紋值。
5.根據(jù)權(quán)利要求4所述的重復(fù)數(shù)據(jù)的處理方法,其特征在于,該讀取至少一該元數(shù)據(jù)塊,并對(duì)比該請(qǐng)求指紋值與讀取的該元數(shù)據(jù)塊的該儲(chǔ)存指紋值的步驟包括 當(dāng)該對(duì)應(yīng)于該請(qǐng)求指紋值的該元數(shù)據(jù)塊不存在于該記憶體時(shí),由該磁盤將對(duì)應(yīng)于該請(qǐng)求指紋值的該元數(shù)據(jù)塊讀入該記憶體,并對(duì)比該請(qǐng)求指紋值與讀取的該元數(shù)據(jù)塊的該儲(chǔ)存指紋值。
6.根據(jù)權(quán)利要求I所述的重復(fù)數(shù)據(jù)的處理方法,其特征在于,多個(gè)該些元數(shù)據(jù)塊作為一分配組,且該讀取至少一該元數(shù)據(jù)塊,并對(duì)比該請(qǐng)求指紋值與讀取的該元數(shù)據(jù)塊的該儲(chǔ)存指紋值的步驟包括 讀取至少一該分配組;以及 對(duì)比該請(qǐng)求指紋值與讀取的該分配組中的該些元數(shù)據(jù)塊的該儲(chǔ)存指紋值。
7.根據(jù)權(quán)利要求6所述的重復(fù)數(shù)據(jù)的處理方法,其特征在于,該些分配組的數(shù)據(jù)大小為16千字節(jié)的正整數(shù)倍。
8.根據(jù)權(quán)利要求6所述的重復(fù)數(shù)據(jù)的處理方法,其特征在于,該修改讀取的該元數(shù)據(jù)塊的該引用計(jì)數(shù)值,并將修改過(guò)的該元數(shù)據(jù)塊回存的步驟包括 修改讀取的該元數(shù)據(jù)塊的該引用計(jì)數(shù)值,并將修改過(guò)的該元數(shù)據(jù)塊所對(duì)應(yīng)的該分配組回存。
全文摘要
一種重復(fù)數(shù)據(jù)的處理方法,包括將儲(chǔ)存文件分割成多個(gè)原始數(shù)據(jù)塊以及多個(gè)元數(shù)據(jù)塊,其中原始數(shù)據(jù)塊以及元數(shù)據(jù)塊為一對(duì)一對(duì)應(yīng),且每一個(gè)元數(shù)據(jù)塊中存有對(duì)應(yīng)的原始數(shù)據(jù)塊的儲(chǔ)存指紋值;接收重復(fù)數(shù)據(jù)判斷請(qǐng)求,其中重復(fù)數(shù)據(jù)判斷請(qǐng)求包括請(qǐng)求指紋值;讀取至少一個(gè)元數(shù)據(jù)塊,并對(duì)比請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值;以及當(dāng)請(qǐng)求指紋值與讀取的元數(shù)據(jù)塊的儲(chǔ)存指紋值相同時(shí),修改讀取的元數(shù)據(jù)塊的引用計(jì)數(shù)值,并將修改過(guò)的元數(shù)據(jù)塊回存。
文檔編號(hào)G06F17/30GK102810108SQ20111015816
公開日2012年12月5日 申請(qǐng)日期2011年6月2日 優(yōu)先權(quán)日2011年6月2日
發(fā)明者朱明勝, 陳志豐 申請(qǐng)人:英業(yè)達(dá)股份有限公司