最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

利用了數(shù)據(jù)段的相似度的高效數(shù)據(jù)存儲(chǔ)的制作方法

文檔序號(hào):6455185閱讀:278來源:國知局
專利名稱:利用了數(shù)據(jù)段的相似度的高效數(shù)據(jù)存儲(chǔ)的制作方法
利用了數(shù)據(jù)段的相似度的高效數(shù)據(jù)存儲(chǔ)
背景技術(shù)
一種高效地存儲(chǔ)數(shù)據(jù)的方法是防止對于在備份之間保持不變的數(shù) 據(jù)的冗余拷貝。這種高效的存儲(chǔ)是通過把來自各數(shù)據(jù)源的數(shù)據(jù)流分成段
(segment)并且把所述段以及所述段的標(biāo)識(shí)符的索引存儲(chǔ)在存儲(chǔ)設(shè)備上 來實(shí)現(xiàn)的。在后續(xù)的備份操作期間,再次對所述數(shù)據(jù)流進(jìn)行分段,并且 在所述索引中查找所述段以便確定某一數(shù)據(jù)段先前是否已被存儲(chǔ)過。如 果找到完全相同的段,則不再存儲(chǔ)該數(shù)據(jù)段;否則就存儲(chǔ)所述新的數(shù)據(jù) 段和新的索引標(biāo)識(shí)符。遺憾的是,隨著將要備份的數(shù)據(jù)量的增加,所述 段的數(shù)目(如果所述段的尺寸近似的話)以及所述索引條目的數(shù)目也會(huì) 增加。所述段和索引條目的數(shù)目的增加會(huì)導(dǎo)致存取性能的降低對于寫 入,必須把到來的段索引與所述索引中的所有條目進(jìn)行比較;以及對于 讀取,必須從較大數(shù)目的段當(dāng)中檢索與某一文件相關(guān)聯(lián)的段。如果增大 所述段的尺寸,則會(huì)減少所述段的數(shù)目,從而所述索引條目的數(shù)目也會(huì) 減少,性能也可以得到保持;然而,由于出現(xiàn)較長的完全相同的段的幾 率沒有那么高,因此存儲(chǔ)效率會(huì)降低。如果可以在不犧牲存儲(chǔ)效率的情 況下保持存取性能,則將是有益的。
附圖簡述
在下面的詳細(xì)描述和附圖中公開了本發(fā)明的各種實(shí)施例。

圖1是示出利用數(shù)據(jù)段的相似度進(jìn)行高效存儲(chǔ)的系統(tǒng)的一個(gè)實(shí)施例 的方框圖。
圖2是示出利用數(shù)據(jù)段的相似度進(jìn)行高效存儲(chǔ)的處理的 一 個(gè)實(shí)施例 的方框圖。
圖3是示出寫入期間的內(nèi)容存儲(chǔ)過程的一個(gè)實(shí)施例的流程圖。 圖4是示出用于生成邏輯段以及計(jì)算概要特征集合的過程的 一個(gè)實(shí) 施例的流程圖。
圖5是示出讀取期間的內(nèi)容存儲(chǔ)過程的一個(gè)實(shí)施例的流程圖。 圖6是示出寫入期間的段存儲(chǔ)過程的 一個(gè)實(shí)施例的流程圖。 圖7是示出相似度確定過程的一個(gè)實(shí)施例的流程圖。圖8是示出針對讀取的段存儲(chǔ)過程的一個(gè)實(shí)施例的流程圖。 詳細(xì)描述
可以按照多種方式來實(shí)施本發(fā)明,其中包括把本發(fā)明實(shí)施為一種過 程、設(shè)備、系統(tǒng)、物質(zhì)構(gòu)成、計(jì)算機(jī)可讀介質(zhì)(比如計(jì)算機(jī)可讀存儲(chǔ)介 質(zhì))或者計(jì)算機(jī)網(wǎng)絡(luò)(其中通過光學(xué)或電子通信鏈路來發(fā)送程序指令)。 在本說明書中,這些實(shí)施方式或者本發(fā)明所能采取的任何其他形式都可 以被稱作技術(shù)。諸如被描述為被配置成執(zhí)行任務(wù)的處理器或存儲(chǔ)器之類
的組件包括通用組件或?qū)S媒M件,其中所述通用組件在給定時(shí)間#:臨時(shí) 配置成執(zhí)行所述任務(wù),而所述專用組件是為了執(zhí)行所述任務(wù)而被制造 的。 一般來說,在本發(fā)明的范圍內(nèi)可以改變所公開的過程的各步驟的順序。
在下面連同附圖 一 起提供對本發(fā)明的 一 個(gè)或多個(gè)實(shí)施例的詳細(xì)描 述,所述附圖示出本發(fā)明的原理。下面將結(jié)合所述實(shí)施例來描述本發(fā)明, 但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅僅由權(quán)利要求書來限 定,并且本發(fā)明包含許多替換方案、修改和等效方案。為了提供對于本 發(fā)明的透徹理解,在下面的描述中闡述了許多具體細(xì)節(jié)。提供這些細(xì)節(jié) 是出于舉例的目的,并且可以在沒有一些或全部所述具體細(xì)節(jié)的情況下 根據(jù)權(quán)利要求書來實(shí)踐本發(fā)明。為了清楚起見沒有描述本發(fā)明的相關(guān)技 術(shù)領(lǐng)域內(nèi)已知的技術(shù)材料,以免不必要地才莫糊本發(fā)明。
公開了利用數(shù)據(jù)段的相似度來進(jìn)行高效的存儲(chǔ)。確定一個(gè)新段與一 個(gè)先前存儲(chǔ)的段相似,其中所述先前存儲(chǔ)的段包括來自某一輸入數(shù)據(jù)流 中的任何位置的 一 個(gè)先前存儲(chǔ)的段。至少部分地基于增量來存儲(chǔ)所述新 段的表示。存儲(chǔ)增量會(huì)提高存儲(chǔ)效率,尤其是在其中各段與先前存儲(chǔ)的 段相比可能具有小的改變的情況下,這是因?yàn)榕c存儲(chǔ)新段相比,存儲(chǔ)小 的增量更為高效。通過把第一段的概要特征集合與第二段的概要特征集 合進(jìn)行比較來確定相似度。在一些實(shí)施例中,所述第一段是從某一輸入 數(shù)據(jù)流到達(dá)的段,而所述第二段是來自某一輸入數(shù)據(jù)流的先前已被存儲(chǔ) 在備份存儲(chǔ)系統(tǒng)中的任何段。在一些實(shí)施例中,所述第一段與第一輸入 數(shù)據(jù)流相關(guān)聯(lián),而所述第二段與第二輸入數(shù)據(jù)流相關(guān)聯(lián)。在一些實(shí)施例 中,所述相似度包括第一段與第二段之間的逐字節(jié)相似性的度量。通過
以下操作來確定概要特征集合選擇第 一段的多個(gè)固定長度或可變長度的子段;對于每一個(gè)子段,通過對于每一個(gè)子段應(yīng)用一組函數(shù)來計(jì)算多
集。在一些實(shí)施例中,所述第一值子集被用于確定所^第一段:第二段
之間的相似度。
在一些實(shí)施例中,在相似度壓縮的情況下(利用相似度高效地存儲(chǔ) 數(shù)據(jù)段),在內(nèi)容存儲(chǔ)中的處理期間把用戶寫入流(其對應(yīng)于整個(gè)文件 或者某一文件的地址范圍或者用于寫入的連續(xù)數(shù)據(jù)的地址范圍)分解成 各邏輯段。把所述邏輯段發(fā)送到段存儲(chǔ)以供壓縮及存儲(chǔ)。內(nèi)容存儲(chǔ)還接 收具有段描述符的形式的段存儲(chǔ)反饋,其中的每一個(gè)所述描述符描述某 一邏輯段在段存儲(chǔ)中如何被壓縮及表示。內(nèi)容存儲(chǔ)保持所述地址范圍與 其相應(yīng)的從段存儲(chǔ)返回的邏輯段和段描述符之間的映射。內(nèi)容存儲(chǔ)負(fù)責(zé)
進(jìn)行以下操作映射地址范圍與其相應(yīng)的邏輯段和段描述符;把對應(yīng)于 用戶讀取流(其對應(yīng)于整個(gè)文件或者某一文件的地址范圍或者用于讀取 的連續(xù)數(shù)據(jù)的地址范圍)的段描述符遞送到段存儲(chǔ);以及接收對應(yīng)于邏 輯段的數(shù)據(jù)。在相似度壓縮情況下的內(nèi)容存儲(chǔ)的行為在很大程度上類似 于在身份(identity)壓縮下的情況。
在一些實(shí)施例中,在段存儲(chǔ)中把各段表示為多個(gè)物理段的復(fù)合。更 為精確地說,每一個(gè)邏輯段被表示為 一個(gè)基礎(chǔ)和 一 系列等級(jí)越來越高 (或者說尺寸越來越小)的增量,其中每一個(gè)基礎(chǔ)或增量是一個(gè)完整物 理段或者是某一物理段的一部分?;A(chǔ)直接對應(yīng)于內(nèi)容存儲(chǔ)中的邏輯 段,并且被標(biāo)記為d0。 一級(jí)增量是兩個(gè)(不同的)邏輯段之間的差異, 并且被標(biāo)記為dl。 二級(jí)增量是兩個(gè)(不同的)dl之間的差異,并且被 標(biāo)i己為d2。
在各種實(shí)施例中,相似度壓縮使用 一級(jí)增量編碼或者二級(jí)增量編 碼。在一級(jí)增量編碼中,段存儲(chǔ)把每一個(gè)邏輯段表示為可以被共享的d0 與不能被共享的可選的dl的復(fù)合;在二級(jí)增量編碼中,段存儲(chǔ)把每一 個(gè)邏輯段表示為可以被共享的d0、可以被共享的可選的dl、以及與不 能被共享的可選的d2的復(fù)合。如果某一邏輯段被表示為d0,則將其標(biāo) 記為e0;如果某一邏輯段的相應(yīng)的最高級(jí)增量是dl,則將其標(biāo)記為el; 如果某一邏輯段的相應(yīng)的最高級(jí)增量是d2,則將其標(biāo)記為e2。身份壓 縮可以被視為零級(jí)增量編碼,其中段存儲(chǔ)把每一個(gè)邏輯段表示為可以被 共享的d0。在按照其壓縮形式來存儲(chǔ)所述輸入數(shù)據(jù)流時(shí)(例如在存儲(chǔ)來自所述輸入數(shù)據(jù)流的某一新段時(shí))沒有信息損失。
在一些實(shí)施例中,在二級(jí)增量編碼中,d0較大,d2較小,而dl是至為重要的,例如,dO是lMB, d2是10KB,以及dl是100KB。 二級(jí)增量編碼平衡對于更激進(jìn)的壓縮的需求(不僅在各邏輯段當(dāng)中共享較大的d0,而且也共享顯著的dl差異)與對于更高性能和可伸縮性的需求(在各邏輯段當(dāng)中不共享較小的d2差異,并且不對其進(jìn)行各種處理和維護(hù))。為了便于在二級(jí)增量編碼中檢測到可共享的各dl,所施加的附加約束是dl關(guān)于el是一對一的(這意味著對應(yīng)于dl的段標(biāo)識(shí)符可以與對應(yīng)于el的段標(biāo)識(shí)符互換)。這樣允許在系統(tǒng)中對新邏輯段與先前的e0和el之間的相似度進(jìn)行比較而無需擔(dān)心物理段,其中所述系統(tǒng)使用邏輯段等級(jí)上的被稱作概要特征集合或概略(sketch)的概要技術(shù)。在檢測出所述相似度之后,把所述新邏輯段編碼為相應(yīng)的各物理段的復(fù)合,其或者是可共享的d0,或者是可共享的dO加上可共享的dl加上可選的不可共享的d2。
在 一 些實(shí)施例中,可以在被稱作增量組合的過程中在段存儲(chǔ)中把多個(gè)dl和d2組合到單個(gè)物理段中。增量組合減小了把段標(biāo)識(shí)符映射到其實(shí)際存儲(chǔ)容器的位置索引的尺寸,并且使得段存儲(chǔ)中的本地壓縮更為有效。特別有意義的是在一級(jí)增量編碼中組合相同的邏輯流的dl,或者在二級(jí)增量編碼中組合相同的邏輯流的d2,這是因?yàn)樗鼈儾槐还蚕恚⑶以趶乃鱿到y(tǒng)中刪除相應(yīng)的文件時(shí)一起消失。如果在段存儲(chǔ)中執(zhí)行增量組合,那么從段存儲(chǔ)返回到內(nèi)容存儲(chǔ)的段描述符應(yīng)當(dāng)規(guī)定每一個(gè)dl或d2在所述組合段中的起始和結(jié)束位置,從而使得讀取操作和其他操作可以適當(dāng)?shù)乇孀R(shí)所述組合l殳中的特定dl或d2。
圖1是示出利用數(shù)據(jù)段的相似度進(jìn)行高效存儲(chǔ)的系統(tǒng)的 一個(gè)實(shí)施例的方框圖。在所示出的例子中,本地恢復(fù)器系統(tǒng)IOO在沒有信息損失的情況下把信息存儲(chǔ)在輸入數(shù)據(jù)流中,從而允許在原先存儲(chǔ)在客戶端系統(tǒng)上的數(shù)據(jù)不再可用的情況下恢復(fù)所述數(shù)據(jù)。信息被存儲(chǔ)在本地恢復(fù)器系統(tǒng)100的內(nèi)部存儲(chǔ)設(shè)備104或外部存儲(chǔ)設(shè)備106上。在各種實(shí)施例中,內(nèi)部存儲(chǔ)設(shè)備104包括一個(gè)或多個(gè)存儲(chǔ)設(shè)備,以及/或者外部存儲(chǔ)設(shè)備106包括一個(gè)或多個(gè)存儲(chǔ)設(shè)備。本地恢復(fù)器100與遠(yuǎn)程恢復(fù)器102進(jìn)行通信。遠(yuǎn)程恢復(fù)器102存儲(chǔ)被存儲(chǔ)在本地恢復(fù)器系統(tǒng)IOO上的信息的拷貝,從而允許恢復(fù)原先存儲(chǔ)在客戶端系統(tǒng)上的數(shù)據(jù)。在各種實(shí)施例中,本地恢復(fù)器IOO利用專用通信鏈路、 一個(gè)或多個(gè)網(wǎng)絡(luò)、局域網(wǎng)、廣域網(wǎng)、存儲(chǔ)區(qū)域網(wǎng)絡(luò)、因特網(wǎng)、有線網(wǎng)絡(luò)和/或無線網(wǎng)絡(luò)與遠(yuǎn)程恢復(fù)器102通信。本地恢復(fù)器系統(tǒng)100還利用網(wǎng)絡(luò)120與多個(gè)具有存儲(chǔ)裝置的客戶端系統(tǒng)(其在圖1中由具有存儲(chǔ)裝置的客戶端系統(tǒng)110和112表示)通信。本地恢復(fù)器系統(tǒng)100還利用網(wǎng)絡(luò)120與媒體/備份服務(wù)器108通信。在各種實(shí)施例中,網(wǎng)絡(luò)120包括一個(gè)或多個(gè)網(wǎng)絡(luò)、局域網(wǎng)、廣域網(wǎng)、存儲(chǔ)區(qū)域網(wǎng)絡(luò)、因特網(wǎng)、有線網(wǎng)絡(luò)和/或無線網(wǎng)絡(luò)。媒體/備份服務(wù)器108利用網(wǎng)絡(luò)118與多個(gè)具有存儲(chǔ)裝置的客戶端系統(tǒng)(其在圖1中由具有存儲(chǔ)裝置的客戶端系統(tǒng)114和116表示)通信。在各種實(shí)施例中,網(wǎng)絡(luò)118包括一個(gè)或多個(gè)網(wǎng)絡(luò)、局域網(wǎng)、廣域網(wǎng)、存儲(chǔ)區(qū)域網(wǎng)絡(luò)、因特網(wǎng)、有線網(wǎng)絡(luò)和/或無線網(wǎng)絡(luò)。在一些實(shí)施例中,媒體/備份服務(wù)器108把數(shù)據(jù)備份在具有存儲(chǔ)裝置的客戶端系統(tǒng)上,所述數(shù)據(jù)備份又被備份到本地恢復(fù)器系統(tǒng)100。
圖2是示出利用數(shù)據(jù)段的相似度進(jìn)行高效存儲(chǔ)的處理的一個(gè)實(shí)施例的方框圖。在一些實(shí)施例中,諸如圖1的本地恢復(fù)器系統(tǒng)IOO之類的恢復(fù)器系統(tǒng)處理來自各客戶端系統(tǒng)的數(shù)據(jù),以便高效地存儲(chǔ)信息以及從所存儲(chǔ)的信息中恢復(fù)數(shù)據(jù)。在所示出的例子中,為了把數(shù)據(jù)寫入到存儲(chǔ)裝置,把源自 一個(gè)或多個(gè)客戶端系統(tǒng)的線性字節(jié)數(shù)據(jù)流輸入到輸入/輸出處理模塊200中。把數(shù)據(jù)流傳遞到內(nèi)容存儲(chǔ)202。內(nèi)容存儲(chǔ)202執(zhí)行以下操作生成邏輯段、將其遞送到段存儲(chǔ)204以供壓縮及存儲(chǔ)、等待返回段描述符、以及保持從數(shù)據(jù)地址信息到其相應(yīng)的邏輯段和段描述符的映射。段存儲(chǔ)204執(zhí)行以下操作接收來自內(nèi)容存儲(chǔ)202的邏輯段、執(zhí)行相似度壓縮以便產(chǎn)生物理段、把物理段本地壓縮及打包到容器中、把結(jié)果發(fā)送到容器存儲(chǔ)206以供存儲(chǔ)、以及把段描述符返回內(nèi)容存儲(chǔ)202。容器存儲(chǔ)206把所述容器存儲(chǔ)在硬盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器陣列、網(wǎng)絡(luò)附屬驅(qū)動(dòng)器或陣列、和/或RAID系統(tǒng)中。為了從存儲(chǔ)裝置中讀取數(shù)據(jù),在輸入/輸出200處接收到針對讀取數(shù)據(jù)的請求。把所述請求發(fā)送到內(nèi)容存儲(chǔ)202,以便確定允許讀取所請求的數(shù)據(jù)所需的相關(guān)的段描述符。內(nèi)容存儲(chǔ)202執(zhí)行以下操作把段描述符遞送到段存儲(chǔ)204以便獲得所述段以及解壓縮、等待返回段數(shù)據(jù)、以及把相關(guān)的數(shù)據(jù)返回到輸入/輸出200。段存儲(chǔ)204執(zhí)行以下操作接收來自內(nèi)容存儲(chǔ)202的段描述符、請求從容器存儲(chǔ)206進(jìn)行物理段讀取、對物理段進(jìn)行本地壓縮、基于所述物理段組成邏輯段、以及把段數(shù)據(jù)返回到內(nèi)容存儲(chǔ)202。在各種實(shí)施例中,從硬盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器陣列、網(wǎng)絡(luò)附屬驅(qū)動(dòng)器或陣列、和/或RAID系統(tǒng)進(jìn)行物理段讀取。
圖3是示出寫入期間的內(nèi)容存儲(chǔ)過程的一個(gè)實(shí)施例的流程圖。在一些實(shí)施例中,圖3的內(nèi)容存儲(chǔ)寫入過程被實(shí)施在圖2的內(nèi)容存儲(chǔ)202中。在所示出的例子中,在300中,從輸入/輸出塊接收數(shù)據(jù)和相關(guān)聯(lián)的地址信息。例如,從所述輸入/輸出塊接收一個(gè)包括特定文件、特定偏移量和特定長度的元組。在302中,生成邏輯段并且計(jì)算概要特征集合。邏輯段生成也被稱作錨定,其從輸入數(shù)據(jù)流生成可變尺寸的依賴于內(nèi)容但是獨(dú)立于地址的邏輯段。在一些實(shí)施例中,通過以下操作來實(shí)現(xiàn)錨定沿著所述輸入數(shù)據(jù)流對移動(dòng)窗進(jìn)行散列,并且當(dāng)所述散列等于特定值時(shí),把所述輸入數(shù)據(jù)流中的與所述窗具有固定關(guān)系的某一位置定義為段邊界。所述段概要特征集合計(jì)算包括對于每一個(gè)邏輯段生成多個(gè)特征,從而使得足夠相似的邏輯段有可能具有一個(gè)或多個(gè)匹配特征,并且更高的相似度往往會(huì)生成更多匹配特征。在304中,把各邏輯段及其所計(jì)算出的概要特征集合發(fā)送到段存儲(chǔ)。在306中,接收回對應(yīng)于所述邏輯段的段描述符。在308中,保持從數(shù)據(jù)地址信息到相應(yīng)的邏輯段和段描述符的映射。該映射在內(nèi)容存儲(chǔ)讀取過程期間被使用。
圖4是示出用于生成邏輯段以及計(jì)算概要特征集合的過程的一個(gè)實(shí)施例的流程圖。在一些實(shí)施例中,概要特征集合被用來表征所述段以及能夠確定段之間的相似度。在一些實(shí)施例中,圖4的過程被用來實(shí)施圖3的302。在所示出的例子中,在400中,通過錨定生成各邏輯段。所述錨定是基于某種標(biāo)準(zhǔn)來定位段邊界的過程。在一些實(shí)施例中,所述錨定標(biāo)準(zhǔn)包括令所述數(shù)據(jù)流的一部分的散列等于某一值。在402中,從所述段中采樣可變長度子段或小段(shingle)。小段是所述段的固定長度子段。選擇可變長度子段或小段是基于某種標(biāo)準(zhǔn),其中所述標(biāo)準(zhǔn)至少部分地是基于來自所述段的值。在各種實(shí)施例中,選擇多個(gè)固定長度或可
定尺寸的第 一游動(dòng)窗中的各字節(jié)的加權(quán)和。
在一些實(shí)施例中,通過對于所述段中的所有字節(jié)在逐字節(jié)的基礎(chǔ)上計(jì)算具有固定尺寸(可能不同于小段尺寸)的游動(dòng)窗內(nèi)的各字節(jié)的(加權(quán))和來確定小段采樣。對于某一小段來說,如果所述游動(dòng)窗內(nèi)的各字
9節(jié)的(加權(quán))和滿足特定標(biāo)準(zhǔn)(例如所述加權(quán)和的最末的6或7個(gè)比特都是1)則采樣該小段。與所述滿足標(biāo)準(zhǔn)的窗口位置具有固定關(guān)系的位置可以被用作所述小段樣本的起始位置。
在一些實(shí)施例中,通過對于所述段中的所有字節(jié)在逐字節(jié)的基礎(chǔ)上計(jì)算具有固定尺寸的游動(dòng)窗內(nèi)的各字節(jié)的(加權(quán))和來確定可變長度子段采樣。對于某一可變長度子段來說,如果所述游動(dòng)窗內(nèi)的各字節(jié)的(加權(quán))和滿足特定標(biāo)準(zhǔn)(例如所述加權(quán)和的最末的6或7個(gè)比特都是1 )則采樣該可變長度子段。與所述滿足標(biāo)準(zhǔn)的窗口位置具有固定關(guān)系的位置可以被用作所述可變長度子段樣本的起始位置。在一些實(shí)施例中,可以在窗口尺寸、加權(quán)公式、滿足標(biāo)準(zhǔn)以及與滿足標(biāo)準(zhǔn)的窗口位置的固定偏移量的各種組合下利用與確定所述起始位置相同的游動(dòng)窗機(jī)制來確定所述可變長度子段的結(jié)束位置。在一些實(shí)施例中,相同的游動(dòng)窗以及(加權(quán))和來確定可變長度子段樣本的起始位置和結(jié)束位置。
在404中,針對所述可變長度子段或小段樣本來計(jì)算一類函數(shù)。在一些實(shí)施例中,所述函數(shù)類或集合包括一組線性函數(shù)。在一些實(shí)施例中,所述函數(shù)集合包括mkXk+ak,其中mk和ak對于k-l到n是不同的預(yù)定值,并且其中xk包括所述可變長度子段或小段樣本的函數(shù)。在一些實(shí)施例中,所述函數(shù)集合或類包括mkx+ak,其中通過對于k=l到n具有對應(yīng)于mk和ak的不同值來規(guī)定所述函數(shù)類,并且x是所述可變長度子段或小段樣本的函數(shù)(例如某一子段或小段樣本的散列、某一子段或小段樣本內(nèi)的各字節(jié)的和等等)。在各種實(shí)施例中,所述函數(shù)類是提供一定程度的正交性的任何函數(shù)系列。在各種實(shí)施例中,所述可變長度子段或小段樣本的函數(shù)包括SHA-1 (安全散列算法1 ) 、 MD5 (消息摘要算法5 )、RIPEMD-160 (RACE完整性原語評(píng)估消息摘要160比特版本)、Rabin散列、或者任何其他適當(dāng)?shù)纳⒘泻瘮?shù)。在406中,選擇函數(shù)結(jié)果的子集。在一些實(shí)施例中,所述函數(shù)結(jié)果或值的子集(第一子集)被用于確定第一段與第二段之間的相似度。在一些實(shí)施例中,選擇所述函數(shù)結(jié)果的多個(gè)極值,例如選擇其中6個(gè)最低值(最小值)。在各種實(shí)施例中,所述極值包括最小值、最大值或者最小與最大值。在一些實(shí)施例中,所述函數(shù)結(jié)果的子集被傳遞到408以便進(jìn)行處理。在其他實(shí)施例中,通過散列到函數(shù)結(jié)果的另一個(gè)子集來進(jìn)一步處理對應(yīng)于所述函數(shù)結(jié)果的子集的底層可變長度子段或小段樣本。在一些實(shí)施例中,所述函數(shù)結(jié)果的該另一個(gè)子集(第二子集)被用于確定笫 一段與第二段之間的相似度。在408中,針對所述段組成所述結(jié)果的集合。所述集合是概要特征集合,并且該集合的每一個(gè)值是一個(gè)特征。概略是具有固定數(shù)目的特征的概要特征集合,并且應(yīng)當(dāng)針對任何一對邏輯段之間的相似度比較在逐特征的基礎(chǔ)上匹配其相應(yīng)的特征值。在一些實(shí)施例中,按照預(yù)定的順序組成所述函數(shù)結(jié)果的最小值(例如第一函數(shù)的最小值到所述函數(shù)集合中的最后一個(gè)函數(shù)的最小值),以便產(chǎn)生某一概略內(nèi)的各特征。在一些實(shí)施例中,由多個(gè)特征(其中的每一個(gè)由6個(gè)最小值組成)形成一個(gè)段概略。在一些實(shí)施例中,至少部分地基于所述函數(shù)結(jié)果的第一子集來組成該結(jié)果集合(第三子集)。在一些實(shí)施例中,所組成的函數(shù)結(jié)果或值的該子集(第三子集)被用于確定第一段與第二段之間的相似度。在一些實(shí)施例中,組成該笫三值子集的順序是預(yù)先確定的,并且獨(dú)立于所述第 一子集中的值。在一些實(shí)施例中,至少部分地基于所述結(jié)果的第二子集來組成第四結(jié)果子集(通過如上所述的散列產(chǎn)生)。在一些實(shí)施例中,所組成的函數(shù)結(jié)果或值的該子集(第四子集)被用于確定笫一段與第二段之間的相似度。在一些實(shí)施例中,組成所述第四值子集的順序是預(yù)先確定的,并且獨(dú)立于所述第二子集中的值。
在一些實(shí)施例中,通過執(zhí)行以下操作來確定概要特征集合(a)選擇第一段的m個(gè)子段;(b)選擇w個(gè)函數(shù);(c)對于函數(shù)i (其中i是從1到n的一個(gè)值),(i)計(jì)算m個(gè)值ft (子段j),其中j是從1到m的一個(gè)值,以及(ii)從所述m個(gè)值當(dāng)中選擇第i個(gè)極值,其中包括最小值或最大值;以及(d)從所述"個(gè)極值當(dāng)中選擇第一值子集。
圖5是示出讀取期間的內(nèi)容存儲(chǔ)過程的一個(gè)實(shí)施例的流程圖。在一些實(shí)施例中,圖5的內(nèi)容存儲(chǔ)讀取過程被實(shí)施在圖2的內(nèi)容存儲(chǔ)202中。在所示出的例子中,在500中,從所述輸入/輸出塊接收地址信息。所述地址信息對應(yīng)于要在距離某一文件的特定偏移量處讀取特定長度的數(shù)據(jù)的請求。在501中,把所述地址信息映射到相關(guān)的邏輯段和相應(yīng)的段描述符。在502中,把段描述符發(fā)到段存儲(chǔ)。在504中,接收回相應(yīng)的邏輯段數(shù)據(jù)。在506中,把由所述地址信息的范圍所覆蓋的相關(guān)數(shù)據(jù)傳送到所述輸入/輸出塊。
圖6是示出寫入期間的段存儲(chǔ)過程的一個(gè)實(shí)施例的流程圖。在一些實(shí)施例中,圖6的段存儲(chǔ)寫入過程被實(shí)施在圖2的段存儲(chǔ)204中。在所
ii示出的例子中,在600中確定相似度。利用所述段概要特征集合或者所 述段概略的匹配來找到最接近當(dāng)前段的先前存儲(chǔ)的e0或el。在602中 確定是否存在匹配。如果不存在匹配,則控制轉(zhuǎn)到610。
如果存在匹配,則在604中從存儲(chǔ)裝置檢索所述最接近的eO和el。 所述檢索過程包括對于一級(jí)增量編碼重建最相似的e0以及對于二級(jí)增 量編碼重建最相似的e0或el。 e0在l史存儲(chǔ)中被存々者為d0,而el被存 儲(chǔ)為dO加dl。因此,所述檢索過程涉及在一級(jí)增量編碼中讀取一個(gè)物 理段,以及在二級(jí)增量編碼中讀取一個(gè)或兩個(gè)物理段。所有的物理段都 按照本地壓縮的形式被存儲(chǔ)在段存儲(chǔ)中。如果僅僅讀取了 一個(gè)物理段, 則將對其進(jìn)行本地解壓縮以便形成所述eO;如果讀取了兩個(gè)物理段,則 將對它們進(jìn)行本地解壓縮并且在增量解碼中將它們組成所述e 1 。只有當(dāng) 所述最相似的eO/el在二級(jí)增量編碼的情況下是el時(shí)才應(yīng)用增量解碼。 所述解碼是從所述底層d0和dl組成el的過程。
在606中,從所述最接近的eO和el對所述新段進(jìn)行增量編碼。增 量編碼是生成到來的邏輯段與現(xiàn)有的eO或el之間的差異的過程。如果 所述新段是新的el,則所述增量編碼是生成新段與(從604生成的)所 述最相似的eO之間的差異dl的過程。如果新段是一個(gè)e2,則所述增量 編碼是生成所述新段與(從604生成的)所述最相似的eO/el之間的d2 的過程。
在一些實(shí)施例中,進(jìn)行檢查以便確保所述新段與所述最接近的e0 和el之間的差異較小。由于所述段概要特征集合或段概略比較僅僅給 出概率性的相似(或不相似)證據(jù),因此可以在所述新段與其最相似的 邏輯段(e0或el)之間的增量編碼之后執(zhí)行尺寸比值測試,以便確定 所述新段及其最相似的段的角色被正確分類。如果所述增量尺寸與所述 新段尺寸的函數(shù)的比值、與所述最接近的eO/el尺寸的函數(shù)的比值、或 者全部二者超出一個(gè)預(yù)先規(guī)定的閾值(例如三分之一),則應(yīng)當(dāng)將所述 新段作為新的e0而不管其先前分類如何。在二級(jí)增量編碼的情況下, 如果所述增量尺寸與所述新段尺寸的函數(shù)的比值、與所述最接近的eO/el 尺寸的函數(shù)的比值、或者全部二者小于一個(gè)預(yù)先規(guī)定的閾值(例如二十 分之一),那么如果所述新段的先前分類是新的el,則應(yīng)當(dāng)將其作為新 的e2。
在608中,在期望的情況下組合段與增量??梢园褟南嗤壿嬃鞯牟煌壿嫸萎a(chǎn)生的多個(gè)dl或d2組合到單個(gè)物理段中??梢园阉鲈隽拷M合視為一個(gè)尺寸標(biāo)準(zhǔn)化過程,從而使得平均物理段尺寸至少是某一特定尺寸(例如IOOK或更大)。這應(yīng)當(dāng)會(huì)給出良好的本地壓縮結(jié)果,即使在增量編碼的情況下也是如此。更重要的是,所述增量組合在所述位置索引中生成較少的條目。特別有意義的是組合一級(jí)增量編碼中的相同邏輯流的各dl,或者組合二級(jí)增量編碼中的相同邏輯流的各d2,這是因?yàn)樗鼈儾?f皮共享,并且在相應(yīng)的文件纟皮移除時(shí)一起消失。在一些實(shí)施例中,組合二級(jí)增量編碼中的相同邏輯流的各dl 。如果應(yīng)用了增量組合,則應(yīng)當(dāng)進(jìn)行適當(dāng)?shù)牟居?,從而可以隨后在增量分離過程中恢復(fù)組合的物理段中的單獨(dú)差異以供讀??;特別地,從段存儲(chǔ)返回到內(nèi)容存儲(chǔ)的相關(guān)的段描述符應(yīng)當(dāng)包括關(guān)于如何在增量分離期間從所述組合段恢復(fù)對應(yīng)的差異的信息。不管是否應(yīng)用了增量組合,從內(nèi)容存儲(chǔ)發(fā)送到段存儲(chǔ)的每一個(gè)邏輯段都應(yīng)當(dāng)產(chǎn)生一個(gè)從段存儲(chǔ)發(fā)送回內(nèi)容存儲(chǔ)的段描述符。在增量組合過程中應(yīng)當(dāng)保持對應(yīng)信息,從而使得從段存儲(chǔ)返回到內(nèi)容存儲(chǔ)的段描述符的數(shù)目和順序是適當(dāng)?shù)摹?br> 在一些實(shí)施例中,計(jì)算段標(biāo)識(shí)符。所述段標(biāo)識(shí)符計(jì)算是為每一個(gè)新的物理段分配一個(gè)唯一標(biāo)識(shí)符的過程。該標(biāo)識(shí)符作為段描述符的一部分被返回到內(nèi)容存儲(chǔ),從而可以在將來讀取所述物理l殳。在各種實(shí)施例中,所述段標(biāo)識(shí)符包括所述物理段的指紋或者一個(gè)順序生成的數(shù)字。
在一些實(shí)施例中,計(jì)算增量標(biāo)識(shí)符。所述增量標(biāo)識(shí)符計(jì)算是為每一個(gè)新的增量分配一個(gè)唯一標(biāo)識(shí)符的過程。該標(biāo)識(shí)符作為段描述符的一部分被返回到內(nèi)容存儲(chǔ),從而可以在將來讀取所述增量。在各種實(shí)施例中,所述增量標(biāo)識(shí)符包括所述增量的指紋或者一個(gè)順序生成的數(shù)字。在各種實(shí)施例中,所述增量包括一級(jí)增量、二級(jí)增量、或者任何其他適當(dāng)?shù)脑隽俊?br> 在一些實(shí)施例中,所述段描述符被傳送到內(nèi)容存儲(chǔ)。這是針對從內(nèi)容存儲(chǔ)發(fā)送到段存儲(chǔ)的每一個(gè)邏輯段而把所述段描述符從段存儲(chǔ)返回到內(nèi)容存儲(chǔ)的過程。段描述符允許由內(nèi)容存儲(chǔ)從段存儲(chǔ)讀取邏輯段。每一個(gè)段描述符應(yīng)當(dāng)包括對應(yīng)于在所述邏輯段的組成中所涉及的各物理段的所有段標(biāo)識(shí)符;如果任何物理段是從多個(gè)差異組合的,則所述段描述符中還應(yīng)當(dāng)存在用來找到該物理段內(nèi)的相關(guān)差異的偏移量和尺寸信息。在一些實(shí)施例中,期望所述偏移量描述符反饋在相應(yīng)的物理段已被
13寫入到更為永久性的存儲(chǔ)器(例如NVRAM)之后發(fā)生,從而在內(nèi)容存 儲(chǔ)接收到來自段存儲(chǔ)的所述段描述符反饋時(shí),所述邏輯段將經(jīng)受得住軟 件崩潰或硬件崩潰。
在610中,所述段和增量被本地壓縮。本地壓縮是僅僅利用新物理 段本身內(nèi)的信息把所述物理段從未壓縮形式壓縮到本地壓縮形式的過 程。在各種實(shí)施例中,本地壓縮算法包括Ziv-Lempel壓縮、Lempel-Ziv (LZ)壓縮、Lempel-Ziv-Welch ( LZW)壓縮、或者任何其他適當(dāng)?shù)膲?縮。
在612中,所述本地壓縮的數(shù)據(jù)被打包到容器中。容器打包按照本
地壓縮的形式從新物理段生成包括段和增量的容器。當(dāng)已經(jīng)累積了來自 相同邏輯流的足夠多的新物理段從而近似一個(gè)容器的尺寸時(shí),就把所述
新物理段打包到一個(gè)容器中并且寫入到一個(gè)容器存儲(chǔ)中以供存儲(chǔ)到盤 上。新的物理段被適當(dāng)?shù)赜白踊⑶掖鎯?chǔ)在永久性存儲(chǔ)器(例如 NVRAM)中,以免由于軟件崩潰或硬件故障而導(dǎo)致數(shù)據(jù)丟失,直到把 這些物理段通過容器寫入到盤上為止。在把容器寫入到盤上之后,容器 存儲(chǔ)通知段存儲(chǔ)。段存儲(chǔ)可以從永久性存儲(chǔ)器(例如NVRAM)中安全 地移除所有相關(guān)的物理段。另外,與盤容器映射相關(guān)的段描述符被添加 到所述相似度索引和位置索引中,從而將來的邏輯段可以受益于與先前 的e0和el的相似度。
圖7是示出相似度確定過程的一個(gè)實(shí)施例的流程圖。在一些實(shí)施例 中,圖7的過程實(shí)施圖6的600。在高等級(jí)上,段相似度確定過程找到 與新邏輯段最相似的先前邏輯段。所述相似度或者所采樣的逐字節(jié)相似 性表征兩個(gè)段之間的逐字節(jié)匹配的可能性;換句話說,高度相似的段可 能逐字節(jié)匹配。更精確地說,所述相似度確定過程對于新邏輯段確定以 下內(nèi)容是否存在具有一個(gè)或多個(gè)匹配特征的先前的e0以及哪一個(gè)e0 具有最多匹配特征或者處在二級(jí)增量編碼下,是否存在具有一個(gè)或多個(gè) 匹配特征的先前的el以及哪一個(gè)el具有最多匹配特征。如果上述兩個(gè) 問題的答案都是否定的,則所述新邏輯段就是一個(gè)新的e0。否則,所述 具有最多匹配特征的e0或el (在二級(jí)增量編碼的情況下)將被用于對 所述新邏輯段進(jìn)行增量編碼。取決于所述增量的大小,所述新邏輯段是 一級(jí)增量編碼情況下的冗余eO或el, 二級(jí)增量編碼情況下的冗余eO、 冗余el、 e2或新的el。新的e0或el (僅僅在二級(jí)增量編碼的情況下)可以被用于對將來的邏輯段進(jìn)行增量編碼。在一些實(shí)施例中,保持存儲(chǔ)
器內(nèi)相似度索引以便執(zhí)行段相似度確定。所有新的e0 (以及在二級(jí)增量 編碼情況下的el )都被輸入到該索引中。該索引由多個(gè)特征子索引組成, 其中的每一個(gè)所述特征子索引對應(yīng)于一個(gè)特征,并且對于該特征表明是 否存在特定值以及哪些e0和el具有該值。
在圖7所示出的例子中,所述先前存儲(chǔ)的先前的e0 (或el)潛在 地是與所述輸入邏輯段最緊密地匹配的段,并且在開始時(shí)被初始化到 Nil。在700中,確定是否存在具有至少一個(gè)與所述輸入段匹配的特征的 更多先前的e0 (或el),同時(shí)嘗試定位最緊密的匹配。如果沒有更多 的這種先前的e0 (或el),則所述過程結(jié)束。如果存在更多的這種先 前的e0(或el),則在701中選擇具有至少一個(gè)匹配特征的下一個(gè)先前 的e0 (或el ),并且控制轉(zhuǎn)到702。在702中,確定所述先前的e0 (或 el )是否在所述概要特征集合或概略中具有最多的與所述輸入段匹配的 特征。如果所述先前的e0 (或el)在所述概要特征集合或概略中具有 最多的與所述輸入段匹配的特征,這將表明該先前的eO (或el)本身 可能與所述輸入段最緊密地匹配。如果所述先前的eO (或el)不具有 最多匹配特征,則控制轉(zhuǎn)到700。如果所述先前的eO (或el )確實(shí)具有 最多匹配特征,則在704中將其保存為潛在的最緊密匹配,并且在706 中也保存相應(yīng)的的概要特征集合或概略,并且控制轉(zhuǎn)到700。
在一些實(shí)施例中,對于每一個(gè)新l殳ns,通過下面的特征測試進(jìn)行相 似度確定
對于每一個(gè)特征k,確定以相同的特征值與ns匹配的相似度索引 中的eO和el的集合S[k],其中,S[k]中的每一個(gè)元素具有〈s, 1>的形式, s是段標(biāo)識(shí)符;如果沒有基礎(chǔ)匹配,則S[k]為空。
把對應(yīng)于所有特征(k)的S[k]合并到單個(gè)集合S中,其中的每一個(gè) 元素具有〈s,c〉的形式,s是段標(biāo)識(shí)符,c是該s與ns匹配的特征值的計(jì) 數(shù)。如果沒有基礎(chǔ)匹配,則S為空。
.如果S為空,則沒有eO或el與ns相似,并且應(yīng)當(dāng)把ns作為新 的eO。
否則,在S中找到其c最大的〈s, c>。為了打破具有相同的c的平 局,使用具有最近的s的〈s, c>。
對于一級(jí)增量編碼,返回s以作為最相似,并且把ns編碼為s加
15dl。注意,s在一級(jí)增量編碼情況下總是eO,并且如果ns是s的復(fù)制, 則dl將為空。
否則,(對于二級(jí)增量編碼)如果來自上一步的c超出一個(gè)預(yù)定 閾值e2—feature (其用于確??梢园裯s增量編碼為s力。d2 ),則返回s 以作為最相似,并且4巴ns編碼為s加d2。注意,s可以是eO或el,并 且如果ns是s的復(fù)制,則d2為空。
否則,在S中找到其s為eO并且其c最大的〈s, c〉。為了打破具 有相同的c的平局,使用具有最近的e0的〈s,c〉。
如果不存在這種〈s, O或者c小于一個(gè)預(yù)定閾值e0—feature (其默 認(rèn)地是1 ),則沒有e0或el與ns足夠相似,并且應(yīng)當(dāng)把ns作為新的 e0。
否則,返回s以作為最相似,并且應(yīng)當(dāng)把ns作為新的el。 圖8是示出針對讀取的段存儲(chǔ)過程的一個(gè)實(shí)施例的流程圖。在一些 實(shí)施例中,圖8的過程^皮實(shí)施在圖2的段存儲(chǔ)204中。在一些實(shí)施例中, 圖8的過程被實(shí)施在圖6的604中。在所示出的例子中,在800中,按 照本地壓縮的形式讀出對應(yīng)于段描述符的數(shù)據(jù)(在一級(jí)增量編碼的情況 下是dO、可選的dl,或者在二級(jí)增量編碼的情況下是dO、可選的dl、 可選的d2)。在802中,對所述本地壓縮的數(shù)據(jù)進(jìn)行本地解壓縮。所述 本地解壓縮的過程是把在800中讀取的所述本地壓縮的物理段形式轉(zhuǎn)換 成未壓縮形式。本地解壓縮是圖6的610中的本地壓縮的反轉(zhuǎn)。在804 中,如果需要的話則執(zhí)行增量分離。只有在相應(yīng)的差異被包括在某一組 合的物理段中時(shí)才執(zhí)行該步驟。增量組合在寫入期間把多個(gè)差異組合到 單個(gè)物理段中。特別地,可以組合一級(jí)增量編碼中的相同邏輯流的各dl, 并且可以組合二級(jí)增量編碼中的相同邏輯流的各d2 。增量分離是在讀取 期間從已經(jīng)本地解壓縮的組合段中獲得單獨(dú)差異(不管其是d 1還是d2 ) 的逆過程。在806中,如果需要的話對所述數(shù)據(jù)進(jìn)行增量解碼。只有在 涉及dl或d2的情況下才應(yīng)用該步驟。它是從底層的dO和dl組成el、 從底層的d0和d2組成e2、或者從底層的d0、 dl和d2組成e2的過程。 有可能彼此接連地讀出某一組合段中的所有單獨(dú)差異以用于進(jìn)行讀取。 有意義的是具有 一個(gè)未壓縮組合段高速緩存,從而把與所述組合段相關(guān) 聯(lián)的所有處理成本(在800和802中)分?jǐn)偟剿鼋M合段中的所有差異 而不是所述組合段中的僅僅一個(gè)差異。雖然出于理解清楚的目的描述了前面的實(shí)施例的一些細(xì)節(jié),但是本 發(fā)明并不限于所提供的細(xì)節(jié)??梢杂袑?shí)施本發(fā)明的許多替換方式。所公 開的實(shí)施例是說明性的而非限制性的。
權(quán)利要求
1、一種利用數(shù)據(jù)段的相似度進(jìn)行存儲(chǔ)的方法,包括確定新段與先前存儲(chǔ)的段相似,其中所述先前存儲(chǔ)的段包括來自輸入數(shù)據(jù)流中的任何位置的先前存儲(chǔ)的段;確定所述新段與所述先前存儲(chǔ)的段之間的增量;以及至少部分地基于所述增量來存儲(chǔ)所述新段的表示。
2、 如權(quán)利要求l所述的方法,其中,所述增量包括所述新段與所述 先前存儲(chǔ)的段之間的差異。
3、 如權(quán)利要求l所述的方法,其中,確定相似度包括把所述新段 的概要特征集合與所述先前存儲(chǔ)的段的概要特征集合進(jìn)行比較。
4、 如權(quán)利要求l所述的方法,還包括如果新段與所述先前存儲(chǔ)的 段不相似,則存儲(chǔ)該新段。
5、 如權(quán)利要求l所述的方法,其中,存儲(chǔ)所述新段的所述表示包括 存儲(chǔ)所述增量以及所述先前存儲(chǔ)的段的指示。
6、 如權(quán)利要求l所述的方法,其中,如果所述增量大于預(yù)定閾值則 存儲(chǔ)所述新段的所述表示包括存儲(chǔ)所述新段。
7、 如權(quán)利要求l所述的方法,其中,存儲(chǔ)所述新段的所述表示包括 存儲(chǔ)所述增量與第二增量的組合。
8、 如權(quán)利要求l所述的方法,其中,存儲(chǔ)所述新段的所述表示包括 對所述新段進(jìn)行本地壓縮。
9、 如權(quán)利要求l所述的方法,其中,存儲(chǔ)所述新段的所述表示包括 對所述增量進(jìn)行本地壓縮。
10、 如權(quán)利要求l所述的方法,其中,對于所述新段計(jì)算標(biāo)識(shí)符。
11、 如權(quán)利要求l所述的方法,其中,對于所述新段計(jì)算標(biāo)識(shí)符, 并且所述標(biāo)識(shí)符包括指紋。
12、 如權(quán)利要求l所述的方法,其中,對于所述新段計(jì)算標(biāo)識(shí)符, 并且所述標(biāo)識(shí)符包括順序生成的數(shù)字。
13、 如權(quán)利要求l所述的方法,其中,對于所述增量計(jì)算標(biāo)識(shí)符。
14、 如權(quán)利要求l所述的方法,其中,對于所述增量計(jì)算標(biāo)識(shí)符, 并且所述標(biāo)識(shí)符包括指紋。
15、 如權(quán)利要求l所述的方法,其中,對于所述增量計(jì)算標(biāo)識(shí)符, 并且所述標(biāo)識(shí)符包括順序生成的數(shù)字。
16、 如權(quán)利要求l所述的方法,其中,存儲(chǔ)所述新段的所述表示包 括把所述新段打包在容器中。
17、 如權(quán)利要求l所述的方法,其中,存儲(chǔ)所述新段的所述表示包 括把所述增量打包在容器中。
18、 如權(quán)利要求l所述的方法,其中,存儲(chǔ)所述新段的所述表示包 括把所述新段的所述表示存儲(chǔ)在備份存儲(chǔ)系統(tǒng)中。
19、 如權(quán)利要求l所述的方法,其中,新段與第一輸入數(shù)據(jù)流相關(guān) 聯(lián),以及所述先前存儲(chǔ)的段與第二輸入數(shù)據(jù)流相關(guān)聯(lián)。
20、 如權(quán)利要求l所述的方法,其中,相似度包括所述新段與所述 先前存儲(chǔ)的段之間的逐字節(jié)相似性。
21、 如權(quán)利要求l所述的方法,其中,在存儲(chǔ)所述新段的過程中沒 有信息損失。
22、 一種利用數(shù)據(jù)段的相似度進(jìn)行存儲(chǔ)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì) 算機(jī)程序產(chǎn)品被具體實(shí)現(xiàn)在計(jì)算機(jī)可讀介質(zhì)中并且包括用于執(zhí)行以下 操作的指令確定新段與先前存儲(chǔ)的段相似,其中所述先前存儲(chǔ)的段包括來自輸 入數(shù)據(jù)流中的任何位置的先前存儲(chǔ)的段;確定所述新段與所述先前存儲(chǔ)的段之間的增量;以及 至少部分地基于所述增量來存儲(chǔ)所述新段的表示。
23、 一種利用數(shù)據(jù)段的相似度進(jìn)行存儲(chǔ)的系統(tǒng),包括 處理器;以及與所述處理器相耦合的存儲(chǔ)器,其中所述存儲(chǔ)器被配置成向所述處 理器提供指令,所述指令在被執(zhí)行時(shí)使得所迷處理器執(zhí)行以下操作確定新段與先前存儲(chǔ)的段相似,其中所述先前存儲(chǔ)的段包括來自輸 入數(shù)據(jù)流中的任何位置的先前存儲(chǔ)的段;確定所述新段與所述先前存儲(chǔ)的段之間的增量;以及至少部分地基于所述增量來存儲(chǔ)所述新段的表示。
全文摘要
公開了利用數(shù)據(jù)段的相似度進(jìn)行存儲(chǔ)。確定新段與先前存儲(chǔ)的段相似。所述先前存儲(chǔ)的段包括來自輸入數(shù)據(jù)流中的任何位置的先前存儲(chǔ)的段。確定所述新段與所述先前存儲(chǔ)的段之間的增量。至少部分地基于所述增量來存儲(chǔ)所述新段的表示。
文檔編號(hào)G06F17/30GK101467148SQ200780021765
公開日2009年6月24日 申請日期2007年4月11日 優(yōu)先權(quán)日2006年4月11日
發(fā)明者K·李, M·B·朱, U·馬赫什沃里, Z·楊 申請人:數(shù)據(jù)域公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1