亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

在重復數據刪除系統(tǒng)中減少摘要存儲消耗的方法和系統(tǒng)的制作方法

文檔序號:6540832閱讀:175來源:國知局
在重復數據刪除系統(tǒng)中減少摘要存儲消耗的方法和系統(tǒng)的制作方法
【專利摘要】為了在計算環(huán)境下在使用處理器設備的重復數據刪除系統(tǒng)中減少摘要存儲消耗,為輸入數據計算摘要值。將該摘要值用于定位與存儲在中心庫中的數據的匹配。將該摘要值存儲在中心庫中。刪除確定與輸入數據冗余的存儲在中心庫中的數據的摘要值。
【專利說明】在重復數據刪除系統(tǒng)中減少摘要存儲消耗的方法和系統(tǒng)

【技術領域】
[0001]本發(fā)明一般涉及計算機,尤其涉及在計算環(huán)境下在重復數據刪除系統(tǒng)(datadeduplication system)中減少摘要存儲消耗。

【背景技術】
[0002]在當今社會里,計算機系統(tǒng)是司空見慣的。在工作場所,在家里,或在學校都可以找到計算機系統(tǒng)。計算機系統(tǒng)可以包括數據存儲系統(tǒng)或盤存儲系統(tǒng)來處理和存儲數據。每天都必須處理大量數據,當前的趨勢暗示著在可預見的將來這些數量將繼續(xù)日益增加。緩解該問題的有效途徑是使用重復刪除。重復刪除系統(tǒng)所依據的概念是利用通過定位重復數據和只存儲它的第一次出現,一而再地復制可用數據的大部分的事實。隨后的副本用指向所存儲出現的指針來取代,如果數據的確是重復的,則顯著降低了存在要求。


【發(fā)明內容】

[0003]在一個實施例中,提供了在計算環(huán)境下在使用處理器設備的重復數據刪除系統(tǒng)中減少摘要存儲消耗的方法。在一個實施例中,僅舉例來說,為輸入數據計算摘要值。將該摘要值用于計算與存儲在中心庫中的數據的匹配。將該摘要值存儲在中心庫中。刪除確定與輸入數據冗余的存儲在中心庫中的數據的摘要值。
[0004]在另一個實施例中,提供了在計算環(huán)境下,在使用處理器設備的重復數據刪除系統(tǒng)中減少摘要存儲消耗的計算機系統(tǒng)。該計算機系統(tǒng)包括計算機可讀介質和可操作地與該計算機可讀介質通信的處理器。在一個實施例中,僅舉例來說,該處理器為輸入數據計算摘要值。將該摘要值用于計算與存儲在中心庫中的數據的匹配。將該摘要值存儲在中心庫中。刪除(remove)確定與輸入數據冗余的存儲在中心庫中的數據的摘要值。
[0005]在進一步的實施例中,提供了在計算環(huán)境下,在使用處理器設備的重復數據刪除系統(tǒng)中減少摘要存儲消耗的計算機程序產品。該計算機可讀存儲介質含有存儲在上面的計算機可讀程序代碼部分。該計算機可讀程序代碼部分包括為輸入數據計算摘要值的第一可執(zhí)行部分。將該摘要值用于計算與存儲在中心庫中的數據的匹配。將該摘要值存儲在中心庫中。刪除確定與輸入數據冗余的存儲在中心庫中的數據的摘要值。
[0006]除了前面的示范性方法實施例之外,還提供了其它示范性系統(tǒng)和計算機產品實施例,它們也具有相關優(yōu)點。提供前面的總結是為了以簡化形式介紹下面在詳細描述中作進一步描述的構思的選擇。這個總結無意標識要求保護的主題的關鍵特征或基本特征,也無意用于幫助確定要求保護的主題的范圍。要求保護的主題不限于解決在【背景技術】中所述的任何或所有缺點的實現。

【專利附圖】

【附圖說明】
[0007]為了易于了解本發(fā)明的優(yōu)點,將參照例示在附圖中的特定實施例給出上面簡述的本發(fā)明的更具體描述。當明白這些圖形是描繪本發(fā)明的實施例,因此不認為是限制其范圍時,將使用附圖以另外的特征和細節(jié)描述和說明本發(fā)明,在附圖中:
[0008]圖1是例示含有可以實現本發(fā)明的各個方面的示范性存儲設備的計算系統(tǒng)環(huán)境的框圖;
[0009]圖2是例示可以實現本發(fā)明的各個方面的計算機系統(tǒng)中的數據存儲系統(tǒng)的硬件結構的框圖;
[0010]圖3是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中在重復刪除處理中根據相似搜索進行摘要檢索的示范性方法的流程圖;
[0011]圖4是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中在重復刪除處理中根據相似搜索進行摘要檢索的示范性可替代方法的流程圖;
[0012]圖5是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中,使用滾動散列值的單次線性計算有效計算相似搜索值和摘要塊的邊界兩者的示范性方法的流程圖;
[0013]圖6是例示包含可以實現本發(fā)明的各個方面的每個大塊集的記錄的緊縮數據結構的框圖;
[0014]圖7是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中減少摘要存儲消耗的示范性方法的流程圖;
[0015]圖8是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中減少摘要存儲消耗的可替代示范性方法的流程圖;以及
[0016]圖9是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中,為了從中心庫中刪除與大塊集相聯系的摘要,按大塊集跟蹤當前在相似搜索結構中的相似元素的數量的示范性方法的流程圖。

【具體實施方式】
[0017]重復數據刪除在計算存儲系統(tǒng)中是高度重要和充滿活力的領域。重復數據刪除指的是減少和/或消除冗余數據。在重復數據刪除中,將可以是文件、數據流、或一些其它形式的數據的數據對象分解成稱為大塊或塊的一個或多個部分。在重復數據刪除過程中,分別減少或消除數據的重復副本,留下數據的最少量冗余副本或單個副本。重復數據刪除系統(tǒng)的目標是存儲重復數據的單個副本,實現這一目標所面臨的挑戰(zhàn)是在通常大型的中心庫中有效尋找重復數據模式,并以存儲劃算重復刪除形式存儲數據模式。重復刪除存儲系統(tǒng)中的重大挑戰(zhàn)是可伸縮地支持數據的巨大中心庫。這樣的大型中心庫可以達到拍字節(jié)(I拍字節(jié)=25°字節(jié))或更大的規(guī)模。支持這樣中心庫規(guī)模的重復刪除存儲系統(tǒng)必須提供在中心庫中尋找重復數據模式的有效處理,其中用實現重復刪除的資源消耗來度量有效性(該資源可以是CPU循環(huán)、RAM存儲、持久性存儲、聯網等)。在一個實施例中,重復刪除存儲系統(tǒng)可以基于保留稱為指紋或摘要的數值的搜索優(yōu)化索引,其中一個(小)指紋代表中心庫中的一個(較大)塊數據。指紋值可以是根據塊的數據計算的保密散列值。在一個實施例中,可以使用作為保密散列函數一族的安全散列算法(SHA),例如,SHA-1或SHA-256。使用索引查找表識別指紋匹配使得能夠存儲對已存在于中心庫中的數據的引用。
[0018]為了在這種做法中提供合理的重復刪除,生成指紋所基于的數據塊的平均尺寸必須限于較小尺寸而不得過大。數據塊內位的變化將概率性地改變數據塊的相應指紋,因此含有大數據塊的原因使該方案與含有小塊相比對數據的更新更敏感。取決于應用的類型和工作負荷,典型的數據塊尺寸的范圍可以從4KB到64KB。因此,僅舉例來說,小數據塊的范圍可以直到64KB的尺寸,而大數據塊是尺寸大于64KB的那些數據塊。
[0019]為了支持可伸縮到拍字節(jié)的巨大中心庫(例如,可伸縮到至少一個拍字節(jié)的中心庫),與指紋的尺寸(范圍在16個字節(jié)與64個字節(jié)之間)耦合存儲的指紋的數量大得驚人。例如,對于I拍字節(jié)的重復刪除數據,4KB平均數據塊尺寸,以及32字節(jié)指紋尺寸(例如,SHA-256),存儲指紋所需的存儲是8太字節(jié)。為這樣體量的指令保留搜索優(yōu)化數據結構是困難的,需要優(yōu)化技術。但是,現有優(yōu)化技術無法在保持性能的同時可伸縮到這些尺寸。由于這個原因,為了提供合理性能,支持的中心庫必須相對較小(數十TB的數量級)。即使對于這樣的較小尺寸,由于指紋索引的大尺度,也會引起相當大的挑戰(zhàn)和運行時成本,這給重復刪除處理帶來瓶頸。
[0020]為了解決這個問題,在一個實施例中,重復刪除系統(tǒng)可以基于在重復刪除期間搜索數據模式的兩步做法。在第一步中,在中心庫中從大塊輸入數據(例如,幾兆字節(jié))中搜索現有數據的相似(而不是相同)大數據塊,相應地將輸入大數據塊劃分成區(qū)間并與相應(相似)中心庫區(qū)間配對。在第二步中,將逐個字節(jié)匹配算法應用在相似區(qū)間對上,以識別已存儲在數據的中心庫中的相同子區(qū)間。第二步的匹配算法依賴于讀取中心庫中的所有相關相似數據,以便逐個字節(jié)地將它與輸入數據相比較。
[0021]然而,源于作為第二步的匹配算法的基礎的數據的逐個字節(jié)比較的問題是為了比較的目的,應該從中心庫中讀取與輸入數據大致相同的數據。例如,每秒處理IGB輸入數據的系統(tǒng)為了逐個字節(jié)比較,應該從中心庫中每秒大約讀取IGB的數據。這要求存儲中心庫數據的存儲設備具有相當高的每秒I/O (輸入/輸出)能力,這又使它們的成本增加。
[0022]信息技術與上面的問題一致的另外趨勢如下:(1)通過提高CPU (中央處理單元)速度和增加CPU內核的數量提高計算能力;以及(2)在盤吞吐量保持相對恒定或只適度提高的同時,提高盤密度。這意味著相對于數據容量存在較少的主軸,因此實際上使總吞吐量減少。由于上述的問題,需要設計出無需從中心庫中高速/大體量讀取、要并入上述的兩步重復刪除系統(tǒng)實施例中的可替代解決方案。
[0023]因此,僅舉例來說,另外的實施例解決了這個問題,以及從盤到CPU的轉移資源消耗,以便從上面的趨勢中獲益。本文所述的實施例被并入上述的兩步和可伸縮重復刪除實施例中,在重復刪除期間使用相似搜索把重點放在摘要的查找表上。在一個實施例中,將全局相似搜索用作把重點放在對最有可能與輸入數據匹配的中心庫數據的摘要的搜索上的基礎。
[0024]本文所述的實施例顯著降低了基本盤所要求的每秒I/O能力,從計算能力和盤密度的提高中受益,以及相當大地降低了處理的成本,以及維護成本和環(huán)境額外開銷(例如,功耗)。
[0025]在一個實施例中,將輸入數據分段成小段(例如,4KB),并為每個這樣的段計算摘要(加密散列值,例如,SHAl )。首先,將如上所述的相似搜索算法應用在輸入的大塊數據(例如,16MB)上,并尋找中心庫中最相似參考數據的位置。然后將這些位置用于查找相似參考數據的摘要。以與它們在數據中的出現相對應的形式存儲和檢索包含在中心庫中的所有數據的摘要。給定包含在中心庫中的數據的一部分的位置,在中心庫中有效地定位和檢索數據的相關摘要。接著,將這些參考摘要裝載到存儲器中,并取代比較數據來尋找,匹配輸入摘要和裝載的參考摘要。
[0026]因此,在一個實施例中,重復數據刪除系統(tǒng)的新基本做法將首先基于逐個節(jié)點數據比較、后面接著搜索相同匹配段的可伸縮兩步做法與有效得多和成本劃算的基于摘要/指紋匹配算法合并,這使得可以只讀取以前要求的體量的一小部分(例如,1%)。借助于本文所述的當前新發(fā)明,重復刪除系統(tǒng)在獲得了相當大的附加效率,提高了性能和降低了基本硬件的成本的同時,保持了其對巨大數據中心庫的獨特可伸縮性。
[0027]在一個實施例中,僅舉例來說,術語“相似數據”可能指的是:對于任何給定輸入數據,將與輸入數據相似的數據定義成與輸入數據幾乎相同(即,不完全相同但至少50%相似)的數據。從二進制的角度(視角)觀看數據,這意味著相似數據是大多數字節(jié)與輸入數據相同(即,不完全相同但至少50%相似)。
[0028]在一個實施例中,僅舉例來說,術語“相似搜索”可能指的是對數據的中心庫中與輸入數據相似的數據的搜索過程。在一個實施例中,這個過程可以使用內部保留和搜索的、相似元素的搜索結構來進行。
[0029]在一個實施例中,僅舉例來說,術語“相似元素”指的是可以根據數據計算的和有助于對數據的中心庫中與輸入數據相似的數據的全局搜索的計算元素。一般說來,計算一個或多個相似元素,它們代表大塊(例如,至少16MB)數據。
[0030]因此,本文所述的各種實施例為在計算環(huán)境下,在使用處理器設備的重復數據刪除系統(tǒng)中,在重復刪除處理中基于相似搜索的摘要檢索提供了各種解決方案。在一個實施例中,僅舉例來說,將輸入數據劃分成固定尺寸大數據塊。為每個固定尺寸大數據塊計算相似元素、摘要塊邊界和摘要值。在數據的中心庫中每個固定尺寸大數據塊從包含相似元素的搜索結構(即,索引)中搜索匹配相似元素。定位中心庫中相似數據的位置。將相似數據的位置用于定位和向存儲器裝載中心庫中的相似數據的所存儲摘要值和相應所存儲摘要塊邊界。應該注意到,在一個實施例中,該位置可以是物理的或邏輯的(即,虛擬的)。該位置屬于數據的中心庫內部的數據。“位置”的重要性質是,給定中心庫的數據的位置(物理的或邏輯的),就可以有效地定位和存取那個位置中的數據。將輸入數據的摘要值和相應摘要塊邊界與所存儲摘要值和相應所存儲摘要塊邊界匹配以尋找數據匹配。
[0031]因此,本文所述的各種實施例為在計算環(huán)境下,在使用處理器設備的重復數據刪除系統(tǒng)中,在重復刪除處理中基于相似搜索的摘要檢索提供了各種解決方案。在一個實施例中,僅舉例來說,將輸入數據劃分成固定尺寸大數據塊。為每個固定尺寸大數據塊計算相似元素、摘要塊邊界和摘要值。在數據的中心庫中每個固定尺寸大數據塊從包含相似元素的搜索結構(即,索引)中搜索匹配相似元素。在中心庫中定位相似數據的位置。將相似數據的位置用于定位和向存儲器裝載中心庫中的相似數據的所存儲摘要值和相應所存儲摘要塊邊界。將輸入數據的摘要值和相應摘要塊邊界與所存儲摘要值和相應所存儲摘要塊邊界匹配以尋找數據匹配。
[0032]在一個實施例中,本發(fā)明提供了為了有效的重復刪除處理,利用相似搜索將相關摘要從中心庫裝載到存儲器中的解決方案。在重復數據刪除系統(tǒng)中,通過將數據劃分成大固定尺寸塊,以及對于每個大塊,計算相似元素、摘要塊和相應摘要值進行重復刪除。該重復數據刪除系統(tǒng)從相似元素的搜索結構中搜索匹配相似元素,并在中心庫中尋找相似數據的位置。該重復數據刪除系統(tǒng)使用相似數據的這些位置來定位和向存儲器裝載相似中心庫數據的所存儲摘要,然后匹配輸入數據和中心庫摘要值以尋找數據匹配。
[0033]在一個實施例中,本發(fā)明為使用滾動散列值的單次線性計算,有效計算相似搜索元素和摘要塊的分段(即,邊界)兩者創(chuàng)造了條件。在重復數據刪除系統(tǒng)中,將數據劃分成大塊,以及對于每個大塊,計算一組滾動散列值。滾動散列值的單線性掃描產生了相似搜索元素和大塊的摘要塊的分段兩者。每個滾動散列值以字節(jié)偏移量對應于字節(jié)的相繼窗口。相似搜索元素用于在中心庫中搜索相似數據。摘要塊分段用于為摘要匹配計算大塊的摘要值。將每個滾動散列值貢獻給相似元素的計算和摘要塊分段的計算。在貢獻給計算之后丟棄每個滾動散列值。
[0034]因此,如上所述,本發(fā)明的重復刪除做法在重復刪除期間將兩步過程用于搜索數據模式。在第一步中,在中心庫中從大塊輸入數據(例如,16兆字節(jié)“MB”)中搜索現有數據的相似(而不是相同)大塊,相應地將輸入大塊劃分成區(qū)間并與相應(相似)中心庫區(qū)間配對。用在第一步中的相似搜索結構(或“索引”)是緊縮的,易于在內部保留和搜索,因為用于相似搜索的元素相對于它們所代表的數據是非常緊縮的(例如,16字節(jié)代表4兆字節(jié))。除了相似元素的計算之外,進一步包括在第一步中的是輸入大塊數據的摘要段和各自摘要值的計算。所有這些計算都基于滾動散列值的單次計算。在第二步中,檢索相似中心庫區(qū)間的參考摘要,然后將輸入摘要與參考摘要匹配以識別數據匹配。
[0035]基于相似重復刪除所引起的嚴重問題是存儲在中心庫中的摘要所消耗的存儲空間的大小。在一個實施例中,對于基于相似的重復刪除,使用相對較小平均摘要段尺寸(例如,1KB-2KB)。究其原因有兩方面。首先,小摘要段尺寸有顯著的好處:在重復刪除期間能夠達到較高分辨率;對數據的修改較不敏感;以及在每個數據失配的邊緣能夠較不喪失重復刪除潛力。由于這些原因,小摘要段尺寸改善了重復刪除結果。其次,在基于相似的重復刪除中,沒有摘要值所鎖定的巨大索引。而是,存在緊縮相似搜索結構。對于大中心庫通常不能支持小摘要段尺寸的這樣摘要索引的缺乏使基于相似重復刪除做法能夠對于相當大中心庫也支持小摘要段尺寸。
[0036]支持小摘要段尺寸的能力使基于相似重復刪除做法能夠具有明顯超過其它重復刪除做法的優(yōu)點。在相似重復刪除做法中,以獨立于存儲這些摘要所描述的數據的重復刪除形式的線性形式,以及以它們出現在數據中的順序存儲摘要。這種存儲方法能夠獨立于表示重復刪除存儲形式的分段地有效檢索摘要的線性部分,因此降低了輸入/輸出(I/o)和計算資源消耗。但是,雖然在這種手段中對摘要的檢索是有效的,但所存儲摘要消耗的存儲量相當大,可能是大得驚人。
[0037]為了例示摘要消耗的大存儲量,考慮如下例子:假設IKB的平均摘要段尺寸、大小32字節(jié)(例如,SHA-256)的摘要值和大小8字節(jié)的位置字段,則摘要將消耗它們所描述的數據的3.90625%。考慮1:8的因子比(factoringratio)和1:2的壓縮比(兩者在備份環(huán)境中是常見的),則摘要將消耗它們所描述的物理數據的8X2X3.90625%=62.5%的額外物理存儲空間。因此,例如,對于物理大小1024TB的所存儲數據,摘要消耗的額外物理存儲空間將是640TB。這顯然是大得驚人的。這樣,對于基于相似的重復刪除做法,這是不成則敗的問題。因此,需要一種解決方案能夠在基于相似的重復刪除系統(tǒng)中降低摘要消耗的存儲。在一個實施例中,本文描述了在保持摘要消耗的存儲相當低的同時,提供小摘要段尺寸的所有益處的解決方案。
[0038]在一個實施例中,在本文所述的基于相似重復刪除做法中,將輸入數據流劃分成大塊(例如,具有16MB的尺寸),并在兩個主要步驟中處理每個大塊。在第一步中,應用相似搜索過程,尋找中心庫中最相似參考數據的位置。在這個步驟內,根據滾動散列值的單次線性計算,為輸入大塊計算相似搜索元素和摘要段邊界兩者。根據產生的分段為輸入大塊計算摘要值,并以它們出現在輸入數據中的順序存儲在存儲器中。然后將相似數據的位置用于查找相似參考數據的摘要,并且也以順序形式將這些摘要裝載到存儲器中。然后,將輸入摘要與參考摘要匹配以形成數據匹配。
[0039]當完成輸入大塊數據的重復刪除時,將與輸入大塊數據相聯系的摘要存儲在中心庫中,用作隨后輸入數據的參考摘要。以獨立于存儲這些摘要所描述的數據的重復刪除形式的線性形式,以及以它們出現在數據中的順序存儲摘要。這種存儲方法能夠獨立于表示重復刪除存儲形式的分段地有效檢索摘要的部分,因此降低了 I/o和計算資源消耗。但是,如前所述,在沒有適當解決方案的情況下,摘要的存儲消耗將大得驚人。
[0040]因此,如本文所述,本發(fā)明所依據的關鍵概念是,如果存儲在中心庫中的摘要可與中心庫中的數據的加因子大小相聯系,而不是與中心庫中的總(也表示成額定)數據大小相聯系,則摘要消耗的空間是可持續(xù)的。在上面的例子中,如果存儲的摘要與數據的加因子大小相聯系,則摘要將消耗物理存儲空間的2X3.90625%=7.8125%,而不是62.5%。在這個例子中節(jié)省了 54.6875%的物理存儲空間。就是說,對于1024TB物理中心庫大小,總存儲節(jié)省是560TB。物理中心庫大小的存儲節(jié)省百分比的公式是:((1/因子比)_1) X (I/壓縮比)X摘要比。
[0041]此刻,需要一種解決方案來解決如何將存儲的摘要轉變成與中心庫中的數據的加因子大小相聯系(而不是與額定數據大小相聯系)的問題。為了解決這個問題,引入了進一步的關鍵解決方案。在一個實施例中,當完成大塊輸入數據的重復刪除時,在對中心庫數據的重復刪除過程內形成的匹配是已知的。在備份環(huán)境中,隨后輸入數據與最近提取摘要數據形成高度匹配的概率比隨后輸入數據與已經與最近提取摘要數據匹配的中心庫數據形成高度匹配的概率高得多。由于這個原因,可以從相似搜索結構中刪除已經與最近提取摘要數據匹配的中心庫數據的相似元素,以便在進一步的相似搜索過程中不產生對這樣數據的引用。因此,本發(fā)明的關鍵解決方案是,通過刪除與最近提取摘要數據匹配的數據的摘要,使存儲在中心庫中的摘要與中心庫中獨特的數據模式的大小相聯系,或換句話說,使存儲在中心庫中的摘要與中心庫中加因子數據的大小(而不是額定數據的大小)相聯系。
[0042]在一個實施例中,本發(fā)明提供了另外有益性質。借助于本發(fā)明,存儲節(jié)省結果是可預見的,因為這些結果取決于確定性摘要數據比以及取決于可以預測的因子比和壓縮比。這有助于更簡單的存儲管理。另一種有益性質是本發(fā)明的運行時成本極低。這是因為已匹配的中心庫數據的跟蹤、和摘要的刪除順序在基于相似的重復刪除中是有效操作。
[0043]因此,在一個實施例中,本發(fā)明降低了與加因子中心庫大小相聯系的摘要消耗的存儲空間,它是如果與額定中心庫大小相聯系則將消耗的原存儲空間的一小部分。這種解決方案解決了基于相似重復刪除中的關鍵存儲問題。在一個實施例中,本發(fā)明在保持重復刪除系統(tǒng)的可伸縮性和效率的同時,能夠獲得小摘要段尺寸的重復刪除好處。
[0044]在一個實施例中,本發(fā)明刪除冗余中心庫數據的摘要,使摘要存儲消耗與中心庫中的數據的加因子大小相聯系,而不是與中心庫中的總(額定)數據大小相聯系。在一個實施例中,僅舉例來說,重復刪除過程包括為輸入數據計算摘要值。將該摘要值用于定位與存儲在中心庫中的數據的匹配。將該摘要值存儲在中心庫中。刪除確定與輸入數據冗余的存儲在中心庫中的數據的摘要值。以它們出現在數據中的順序線性地將輸入摘要值存儲在中心庫中。以這樣的形式將輸入摘要值存儲在中心庫中,該形式獨立于存儲摘要值所描述的數據的形式。將用于產生與輸入數據的匹配的中心庫數據確定為與輸入數據冗余。
[0045]在一個實施例中,本發(fā)明將額定數據劃分成大塊(例如,具有16KB的尺寸),并將大塊分組成表示成大塊集的預定個大塊的集合。在一個實施例中,本發(fā)明跟蹤與中心庫中的每個大塊集相聯系、當前在相似搜索結構中的相似元素的數量,當特定大塊集的這個數量低于閾值時,從中心庫中刪除與那個大塊集相聯系的摘要。在一個實施例中,僅舉例來說,重復刪除過程包括為輸入數據計算摘要,并將所述摘要存儲在與大塊集相對應的集合中。為輸入數據計算相似元素,并將相似元素存儲在相似搜索結構中。對于每個大塊集,保留當前包含在相似搜索結構中、與大塊集相聯系的相似元素的數量。當特定大塊集的這個數量低于閾值時,從中心庫中刪除與那個大塊集相聯系的摘要集。
[0046]在一個實施例中,大塊集是非重疊的,涵蓋所有大塊。將相似元素用于尋找與輸入數據相似的中心庫數據,將輸入摘要和中心庫摘要用于計算數據匹配。從相似搜索結構中刪除與最近提取摘要數據匹配的中心庫數據的相似元素。對于包含所匹配中心庫數據的每個大塊集,從相似搜索結構中與大塊集相聯系的相似元素的保留數量中減去從那個大塊集的相似搜索結構中刪除的相似元素的數量。
[0047]現在轉到圖1,圖中描繪了計算系統(tǒng)環(huán)境的示范性架構10。計算機系統(tǒng)10包括與通信端口 18和存儲器件16連接的中央處理單元(CPU) 12。通信端口 18與通信網絡20通信。通信網絡20和存儲網絡可以配置成與服務器(主機)24和可以包括存儲設備14的存儲系統(tǒng)通信。存儲系統(tǒng)可以包括可以以獨立盤冗余陣列(RAID)配置的硬盤驅動器(HDD)設備、固態(tài)設備(SSD)等。如下所述的操作可以在存儲設備14上執(zhí)行,存儲設備14可以處在系統(tǒng)10中或其它地方,可以含有與其它CPU設備12獨立和/或結合工作多個存儲器件16。存儲器件16可以包括像電可擦除可編程只讀存儲器(EEPROM)那樣的存儲器或相關器件的主機。存儲器件16和存儲設備14經由信號承載介質與CPU12通信。另外,CPU12通過通信端口 18與含有附在上面的多個另外計算機主機系統(tǒng)24的通信網絡20。另外,存儲器件16和CPU12可以內置和包括在計算系統(tǒng)10的每個組件中。每個存儲系統(tǒng)還可以包括結合在一起或作為獨立存儲器件16和/或CPU12工作的獨立和/或不同存儲器件16和CPU12。
[0048]圖2是示出按照本發(fā)明的計算機系統(tǒng)中的數據存儲系統(tǒng)的硬件結構的示范性框圖。圖中示出了主計算機210,220,225,每一臺起作為數據存儲系統(tǒng)200的一部分進行數據處理的中央處理單元的作用。群集主機/節(jié)點(物理或虛擬設備)210,220和225可以是數據存儲系統(tǒng)200中完成本發(fā)明的目的的一個或多個新物理設備或邏輯設備。在一個實施例中,僅舉例來說,數據存儲系統(tǒng)200可以實現成IBM? Protec TIER?重復刪除系統(tǒng)TS7650G?。網絡連接260可以是光纖通道Fabric架構、光纖通道點到點鏈路、以太網上光纖通道Fabric架構或點到點鏈路、FICON或ESCON I/O接口、任何其它I/O接口類型、無線網絡、有線網絡、LAN、WAN、各向異性的、各向同性的、公用的卿,互聯網)、專用的、或它們的組合體。主機210,220和225可以是局部的或分布在一個或多個地點中,可以裝備像光纖通道、FIC0N、ESC0N、以太網、光纖、無線、或同軸適配器那樣,到存儲控制器240的任何類型的Fabric架構(或光纖通道)(未顯示在圖2中)或網絡適配器260。數據存儲系統(tǒng)200相應地裝備適當Fabric架構(未顯示在圖2中)或網絡適配器260以便進行通信。數據存儲系統(tǒng)200在圖2中被描繪成包含存儲控制器240和群集主機210,220和225。群集主機210,220和225可以包括群集節(jié)點。
[0049]為了促進人們更清楚地理解本文所述的方法,存儲控制器240在圖2中被顯示成包括微處理器242、系統(tǒng)存儲器243和非易失性存儲(“NVS”)216的單個處理單元。要注意的是,在一些實施例中,存儲控制器240由多個處理單元組成,每一個帶有它們自己的處理器復合體和系統(tǒng)存儲器,并通過數據存儲系統(tǒng)200內的專用網絡互連。存儲230 (在圖2中標為230a,230b和230η)可以由像存儲陣列那樣的一個或多個存儲設備組成,該存儲設備與存儲控制器240連接(通過存儲網絡),以及一個或多個群集主機210,220和225與每個存儲控制器240連接。
[0050]在一些實施例中,包括在存儲230中的設備可以以循環(huán)架構連接。存儲控制器240管理存儲230,并促進旨在用于存儲230的寫入和讀取請求的處理。存儲控制器240的系統(tǒng)存儲器243存儲處理器243可以為了執(zhí)行本發(fā)明的功能和方法步驟而加以存取以便如本文所述運行和管理存儲230的程序指令和數據。在一個實施例中,系統(tǒng)存儲器243包括執(zhí)行本文所述的方法和操作的操作軟件250,與其相聯系,或與其通信。如圖2所示,系統(tǒng)存儲器243還可以包括用于存儲230、本文也稱為“高速緩沖存儲器”、用于緩沖分別指寫入/讀取請求和它們的相關數據的“寫入數據”和“讀取數據”的高速緩存245,或與其通信。在一個實施例中,高速緩存245被分配在系統(tǒng)存儲器243外部的設備中,但微處理器242仍然可存取,并且除了進行如本文所述的操作之外,還可以用于提供抵抗數據損失的額外安全性。
[0051]在一些實施例中,高速緩存245利用易失性存儲器和非易失性存儲器來實現,經由局部總線(未顯示在圖2中)與微處理器242耦合,以便提高數據存儲系統(tǒng)200的性能。包括在數據存儲控制器中的NVS216可由微處理器242存取,用于提供對如在其它圖形中所述的本發(fā)明的操作和執(zhí)行的額外支持。NAV216也可以稱為“永久”高速緩存、或“高速緩沖存儲器”,利用可以利用或可以不利用外部電力的非易失性存儲器來實現,以便保留存儲在其中的數據。對于適合實現本發(fā)明的目的的任何用途,NVS可以存儲在高速緩存245中或與高速緩存245 —起存儲。在一些實施例中,像蓄電池那樣的備用電源(未顯示在圖2中)將足夠的電力供給NVS216,以便在數據存儲系統(tǒng)200斷電的情況下保留存儲在其中的數據。在某些實施例中,NVS216的容量小于等于高速緩存245的總容量。
[0052]存儲230在物理上可以由像存儲陣列那樣的一個或多個存儲設備組成。存儲陣列是像硬盤那樣的單獨存儲設備的邏輯分組。在某些實施例中,存儲230由JBOD (簡單盤捆綁)陣列或RAID (獨立盤冗余陣列)陣列組成??梢赃M一步組合一批物理存儲陣列以形成將物理存儲與邏輯配置分離的隊列??梢詫㈥嚵兄械拇鎯臻g分配給定義規(guī)定在寫入/讀取請求中的存儲地點的邏輯卷。
[0053]在一個實施例中,僅舉例來說,如圖2所示的存儲系統(tǒng)可以包括邏輯卷,或簡稱為“卷”,可以具有不同類型的分配。存儲230a,230b和230η在數據存儲系統(tǒng)200中被顯示成隊列,本文稱為隊列230a,230b和230η。隊列可以在數據存儲系統(tǒng)200本地,或可以處在物理遠地點。換句話說,本地存儲控制器可以與遠程存儲控制器連接,管理遠程地點上的存儲。隊列230a被顯示成由兩個完整卷234和236,以及一個部分卷232a構成。隊列230b被顯示成具有另一個部分卷232b。因此,卷232跨過隊列230a和230b地分配。隊列230η被顯示成完全分配給卷238—也就是說,隊列230η指的是卷238的整個物理存儲。從上面的例子中可以懂得,一個隊列可以被配置成包括一個或多個部分和/或完整卷。卷和隊列可以進一步劃分成代表存儲的固定塊的所謂“軌道”。一個軌道因此與給定卷相聯系和可以賦予給定隊列。
[0054]存儲控制器240可以包括重復數據刪除模塊255、相似索引模塊257 (例如,相似搜索結構)、和相似搜索模塊259。重復數據刪除模塊255、相似索引模塊257、和相似搜索模塊259可以結合存儲控制器240、主機210,220和225、和存儲設備230的每個組件來工作。重復數據刪除模塊255、相似索引模塊257、和相似搜索模塊259在結構上可以是一個完全模塊或可以與其它單獨模塊相聯系和/或包括在其中。重復數據刪除模塊255、相似索引模塊257、和相似搜索模塊259也可以處在高速緩存245或其它組件中。
[0055]存儲控制器240包括控制與主計算機210,220,225的光纖通道協議的控制開關241、控制所有存儲控制器240的微處理器242、存儲控制存儲控制器240的操作的微程序(操作軟件)250的非易失性控制存儲器243、用于控制的數據、臨時存儲(緩沖)數據的高速緩存245、和幫助高速緩存245讀取和寫入數據的緩沖器245,控制開關241用于控制協議以便控制到或從可能設置了信息的存儲設備230、重復數據刪除模塊255、相似索引模塊257、和相似搜索模塊259的數據傳送??梢岳帽景l(fā)明實現多個緩沖器244以幫助如本文所述的操作。在一個實施例中,群集主機/節(jié)點210,220,225和存儲控制器240通過作為接口的網絡適配器(可以是光纖通道)260,即,經由叫做“Fabric架構”的至少一個交換機連接。
[0056]在一個實施例中,主計算機或一個或多個物理或虛擬設備210,220,225、和存儲控制器240通過作為接口的網絡(可以是光纖通道)260,S卩,經由叫做“Fabric架構”的至少一個交換機連接。在一個實施例中,將描述顯不在圖2中的系統(tǒng)的操作。微處理器242可以控制存儲器243來存儲來自主設備(物理或虛擬)210的命令信息和識別主設備(物理或虛擬)210的信息。控制開關241、緩沖器244、高速緩存245、操作軟件250、微處理器242、存儲器243、NVS216、重復數據刪除模塊255、相似索引模塊257、和相似搜索模塊259可以相互通信,并且可以是分開的或一個單獨組件。此外,像操作軟件250那樣的組件即使不是全部,也有幾個包括在存儲器243內。對于適合本發(fā)明的用途,所示的設備內的每個組件可以鏈接在一起并可以相互通信。如上所述,重復數據刪除模塊255、相似索引模塊257、和相似搜索模塊259也可以處在高速緩存245或其它組件中。這樣,可以根據存儲架構和用戶偏好按需使用重復數據刪除模塊255、相似索引模塊257、和相似搜索模塊259。
[0057]如上所述,在一個實施例中,將輸入數據劃分成大固定尺寸塊(例如,16MB),并對每個輸入大塊應用相似搜索過程。相似搜索過程根據數據的輸入大塊,計算也可以稱為相似元素的緊縮相似元素,并在中心庫中搜索存儲在緊縮搜索結構(即,索引)中的匹配相似元素。按數據的每個大塊存儲的相似元素的尺寸通常是32個字節(jié)(在大塊尺寸是幾兆字節(jié)的情況下),因此使存儲相似元素的搜索結構非常緊縮,易于在內部保留和搜索。
[0058]通過對大塊的數據計算滾動散列值,S卩,以字節(jié)偏移量在字節(jié)的每個相繼窗口內產生滾動散列值,然后將特定散列值和相關位置(未必是這些散列值的精確位置)選成大塊的相似元素來計算相似元素。
[0059]本發(fā)明提供的一個重要方面和創(chuàng)新是在計算方面是昂貴操作的滾動散列值的單次線性計算用作計算大塊的相似元素(用于相似搜索)和大塊數據到摘要塊的分段(用于尋找精確匹配)兩者的基礎。將每個滾動散列值加入相似元素的計算中以及加入摘要塊分段的計算中。在加入兩種計算中之后,可以丟棄滾動散列值,因為存儲滾動散列值的需要降到最低程度或消失了。這種算法元素使效率顯著提高并使CPU消耗顯著降低,以及使性能得到相當大提聞。
[0060]在一個實施例中,本發(fā)明的相似搜索過程產生兩種類型的輸出。第一種類型的輸出是中心庫中最相似參考數據的一組位置。第二種類型的輸出是輸入大塊的摘要,其由摘要塊的分段和與摘要塊相對應的摘要值組成,其中摘要值是根據摘要塊的數據計算的。
[0061]在一個實施例中,以與摘要在數據中的出現相對應的形式將摘要存儲在中心庫中。給定中心庫中的位置和數據的一部分的尺寸,有效地確定與數據的那個區(qū)間相對應的摘要在中心庫中的地點。然后將通過相似搜索過程產生的位置用于查找相似參考數據的所存儲摘要,并將這些參考摘要裝載到存儲器中。然后,不是比較數據,而是將輸入摘要與裝載的參數摘要匹配。該匹配過程通過將參考摘要裝載到存儲器中摘要的緊縮搜索結構中,然后對于每個輸入摘要,就那個摘要值的存在性查詢摘要的搜索結構。摘要的搜索結構中的搜索根據摘要值來進行。如果發(fā)現匹配,則確定在中心庫中找到與那個摘要相聯系的輸入數據,并根據中心庫中參考摘要的位置確定中心庫中輸入數據的位置。在這種情況下,記錄輸入摘要涵蓋的輸入數據與匹配參考摘要涵蓋的中心庫數據之間的等同性。如果未發(fā)現匹配,則確定在中心庫中未找到與那個摘要相聯系的輸入數據,將其記錄成新數據。在一個實施例中,相似搜索結構是相似元素的全局搜索結構,摘要的存儲器搜索結構是存儲器中摘要的局部搜索結構。
[0062]圖3是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中在重復刪除處理中根據相似搜索進行摘要檢索的示范性方法300的流程圖。啟動方法300 (步驟302)。方法300將輸入數據劃分成大數據塊(步驟304)??梢詫⑤斎霐祿澐殖晒潭ǔ叽绱髷祿K。方法300為每個大數據塊計算相似元素、摘要塊邊界、和相應摘要值(步驟306)。方法300為每個大數據塊(可以是固定尺寸大數據塊)在搜索結構(S卩,索引)中搜索匹配相似元素(步驟308)。定位中心庫(例如,數據的中心庫)中相似數據的位置(步驟310)。方法300將相似數據的位置用于定位和向存儲器裝載中心庫中的相似數據的所存儲摘要值和相應所存儲摘要塊邊界(步驟312)。方法300將輸入數據的摘要值和相應摘要塊邊界與所存儲摘要值和相應所存儲摘要塊邊界匹配以尋找數據匹配(步驟314)。結束方法300 (步驟316)。
[0063]圖4是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中在重復刪除處理中根據相似搜索進行摘要檢索的示范性可替代方法400的流程圖。啟動方法400 (步驟402)。方法400將輸入數據劃分成大塊(例如,將輸入數據劃分成大固定尺寸塊)(步驟404),以及對于輸入大數據塊,根據輸入大數據塊的數據計算滾動散列值、相似元素、摘要塊邊界、和摘要值(步驟406)。方法400在相似搜索結構(S卩,索引)中搜索輸入大數據塊的相似元素(步驟408和410)。方法400確定是否存在足夠或充分數量的匹配相似元素(步驟412)。如果未找到足夠的匹配相似元素,則方法400確定在中心庫中未為輸入大數據塊找到相似數據,將輸入大塊的數據存儲在中心庫中(步驟414),然后結束方法400(步驟438)。如果找到足夠的相似元素,則對于在中心庫中找到的每個相似數據區(qū)間,方法400確定中心庫中每個相似數據區(qū)域的位置和大小(步驟416)。方法400定位中心庫中代表相似數據區(qū)間的摘要(步驟418)。方法400將這些摘要裝載到存儲器中摘要的搜索數據結構中(步驟420)。方法400確定是否存在另外的相似數據區(qū)間(步驟422)。如果是,則方法400返回到步驟416。如果否,則方法400考慮輸入大數據塊的每個摘要(步驟424)。方法400確定在摘要的存儲器搜索結構中是否存在摘要值(步驟426)。如果是,則方法400記錄摘要涵蓋的輸入數據與具有匹配摘要值的中心庫數據之間的等同性(步驟428)。如果否,則方法400記錄在中心庫中未找到摘要涵蓋的輸入數據(步驟430)。從步驟428和430兩者中,方法400確定是否存在輸入大數據塊的另外摘要(步驟432)。如果是,則方法400返回到步驟424。如果否,則方法400從相似搜索結構中刪除中心庫中匹配數據的相似元素(步驟434和步驟410)。方法400將輸入大數據塊的相似元素加入相似搜索結構中(步驟436)。結束方法400 (步驟438)。
[0064]圖5是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中,使用滾動散列值的單次線性計算有效計算相似搜索值和摘要塊的邊界兩者的示范性方法500的流程圖。啟動方法500 (步驟502)。方法500將輸入數據劃分成大數據塊(步驟504)。該大數據塊可以是固定尺寸大數據塊。方法500在輸入數據中以字節(jié)偏移量考慮字節(jié)的每個相繼窗口(步驟506)。方法500確定是否存在字節(jié)的另外相繼窗口要處理(步驟508)。如果是,則方法500根據字節(jié)的相繼窗口的數據計算滾動散列值(步驟510)。方法500將滾動散列值貢獻給相似值的計算和摘要塊分段(即,摘要塊邊界)的計算(步驟512)。方法500丟棄滾動散列值(步驟514),并返回到步驟506。如果否,則方法500決定計算相似元素和摘要塊分段,得出輸入數據的最終相似元素和摘要塊分段(步驟516)。方法500根據摘要塊分段計算摘要值,其中對每個摘要塊指定相應摘要值(步驟518)。將相似元素用于在中心庫中搜索相似數據(步驟520)。將該摘要塊和相應摘要值用于與存儲在中心庫中的摘要塊和相應摘要值匹配,以確定中心庫中與輸入數據相同的數據(步驟522)。結束方法500 (步驟524)。
[0065]現在轉到圖6-9,將額定數據劃分成大塊(例如,具有16MB的尺寸),并將大塊分組成表示成大塊集的預定個大塊的集合。大塊集是非重疊的,涵蓋所有大塊。一個集合中大塊的數量至少I個,但通常被定義成較大,例如,16個大塊(因此,在本例中,大塊集代表256MB的數據)。大塊集的意義有兩方面。首先,對于每個大塊集,保留相關信息以便能夠確定要刪除的摘要。其次,以對應于大塊集的物理集合將摘要存儲在中心庫中。也就是說,對于每個大塊集,存在存儲在中心庫中的相關摘要集。當需要時,可以有效地定位,檢索和刪除這些摘要集,其架構例示在下面的圖6中。
[0066]圖6是例示包含可以實現本發(fā)明的各個方面的每個大塊集的記錄的緊縮數據結構600的框圖。表示成大塊集數據結構606的緊縮數據結構600包含每個大塊集602的記錄608,其中每個記錄608 (大塊集A,B,C和D的記錄)包括大塊集的標識符610、和當前包含在相似搜索結構中、與大塊集602相聯系的相似元素612的數量。例如,大塊集602的記錄例示了大塊集標識符(ID),以及大塊集A含有Na個相似元素,大塊集B含有Nb個相似元素,大塊集C含有Ne個相似元素,和大塊集D含有Nd個相似元素。如上所述,摘要604 (例示成604A和604B)以與大塊集602相對應的物理集合存儲在中心庫中。也就是說,對于每個大塊集602,存在存儲在中心庫中的相關摘要集604。當需要時,可以有效地定位,檢索和刪除這些摘要集604。考慮每個記錄16個字節(jié)(沒有任何緊縮),那么,在上面的例子中,對于每個16MB的數據,這種數據結構包含I個字節(jié),這是非常緊縮的。例如,對于IPB物理存儲的中心庫和1:16 (B卩,16PB的額定數據)的重復刪除比,這種數據結構的規(guī)模是1GB。
[0067]在一個實施例中,在輸入大塊集中的大塊的重復刪除處理期間,在存儲器中保留為大塊集中的大塊插入相似搜索結構中的相似元素的數量的記錄。當完成大塊集的重復刪除處理時,為大塊集插入相似搜索結構中的相似元素的總數因此是已知的。此刻,將包含大塊集的標識符、和為大塊集插入相似搜索結構中的相似元素的數量的記錄加入大塊集數據結構中。
[0068]進一步,在大塊集的重復刪除處理期間,在存儲器中保留一個附加信息。這個信息是包含當前大塊集中的大塊的重復刪除過程產生數據匹配所基于的中心庫區(qū)間的中心庫大塊集的列表。對于與輸入大塊匹配的每個中心庫區(qū)間,它的包含大塊集的標識符是已知的。對于產生的每個數據匹配,重復刪除過程計算出現在中心庫數據的匹配部分中的相似元素,然后從相似搜索結構中刪除這些相似元素。然后在為當前大塊集保留的列表中更新對于包含匹配中心庫數據的每個中心庫大塊集,從相似搜索結構中刪除的相似元素的總數。也就是說,列表中的每個項目包含與當前大塊集匹配的包含中心庫數據的大塊集的標識符,以及從相似搜索結構中刪除(通過當前大塊集的重復刪除過程)的中心庫大塊集的相似元素的數量。
[0069]當完成當前大塊集的重復刪除處理時,掃描中心庫大塊集的列表,然后,對于每個項目,從大塊集數據結構(例示在圖6中)中為特定大塊集記錄的相似元素的數量中減去為那個特定中心庫大塊集(在項目中指定)從相似搜索結構中刪除的相似元素的數量。這種相減的結果是相似搜索結構中那個特定大塊集的相似元素的當前數量。在大塊集數據結構內在大塊集的記錄中更新這個數量。通過應用這個過程,大塊集數據結構中相關大塊集的記錄現在反映相似搜索結構中每個大塊集的相似元素的更新數量。在這個過程內,評估正在處理的每個中心庫大塊集的相似元素的所得數量。如果這個數量低于預定義閾值,則確定相似搜索結構中那個中心庫大塊集的表示足夠低,因此該過程著手從中心庫中刪除與那個大塊集相聯系的摘要。這樣就使存儲在中心庫中的摘要的大小保持與加因子數據大小相聯系。將每個中心庫大塊集的相似元素的所得數量與之比較的閾值可以是每個中心庫大塊集特有的,而不是對于所有大塊集都是固定的。這個閾值可以通過按大塊集插入的相似元素的初始數量的百分比來指定。
[0070]在一個實施例中,如圖7所例示,本發(fā)明刪除冗余中心庫數據的摘要,使摘要存儲消耗與中心庫中的數據的加因子大小相聯系,而不是與中心庫中的總(額定)數據大小相聯系。在一個實施例中,僅舉例來說,重復刪除過程包括為輸入數據計算摘要值。將輸入數據的摘要值和存儲在中心庫中的數據的所存儲摘要值用于定位與所存儲數據的匹配。將輸入數據的摘要值存儲在中心庫中。刪除確定與輸入數據冗余的存儲在中心庫中的數據的摘要值。以它們出現在數據中的順序線性地將輸入數據的摘要值存儲在中心庫中。以這樣的形式將輸入數據的摘要值存儲在中心庫中,該形式獨立于存儲這些摘要值所描述的數據的形式。將用于產生與輸入數據的匹配的中心庫數據確定為與輸入數據冗余。
[0071]圖7是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中減少摘要存儲消耗的示范性方法700的流程圖。換句話說,方法700為在重復數據刪除系統(tǒng)中刪除冗余中心庫數據的摘要,使摘要存儲消耗與中心庫中的數據的加因子大小相聯系,而不是與中心庫中的總(額定)數據大小相聯系創(chuàng)造了條件。啟動方法700 (步驟702)。方法700為輸入數據計算摘要值(步驟704)。方法700使用輸入數據的摘要值和存儲在中心庫中的數據的所存儲摘要值來定位與所存儲數據的匹配(步驟706)。方法700將輸入數據的摘要值存儲在中心庫中(步驟708)。方法700刪除確定與輸入數據冗余的存儲在中心庫中的數據的摘要值(步驟710)。結束方法700 (步驟712)。
[0072]圖8是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中減少摘要存儲消耗的可替代示范性方法800的流程圖。通過將輸入數據劃分成大數據塊以及將大數據塊分組成大數據塊集(步驟804)啟動方法800 (步驟802)。方法800進行輸入大數據塊集的重復刪除處理,并更新有關將相似元素插入相似搜索結構中和從相似搜索結構中刪除相似元素的信息(步驟806)。在步驟806內的處理期間,方法800為輸入大塊集保留插入相似搜索結構中的相似元素的數量的記錄(步驟810),并保留與其形成數據匹配的中心庫大塊集的列表,其中列表中的每個項目包括從相似搜索結構中刪除的相關大塊集的相似元素的數量(步驟812)。接著,方法800完成輸入大塊集的重復刪除,并在大塊集數據結構(步驟814)中更新(步驟808)為當前輸入大塊集插入相似搜索結構中的相似元素的數量(步驟810)。方法800然后確定在步驟812的列表中是否存在另外項目(步驟816)。如果否,則結束方法800(步驟826)。如果是,則方法800從大塊集數據結構中為特定大塊集記錄的相似元素的數量中減去為那個特定中心庫大塊集從相似索引中刪除的相似元素的數量,并在步驟818的大塊集數據結構內更新大塊集的項目中的結果(步驟818)。方法800然后確定相似元素的所得數量是否低于預定義閾值(步驟820)。如果否,則方法800返回到步驟816。如果是,則方法800從在步驟824中存儲摘要的中心庫中刪除與大塊集相聯系的摘要(步驟822)。方法800然后返回到步驟816。如果步驟816上的回答是否,則結束方法800 (步驟826)。
[0073]圖9是例示在可以實現本發(fā)明的各個方面的重復數據刪除系統(tǒng)中,為了從中心庫中刪除與大塊集相聯系的摘要,跟蹤當前在相似搜索結構中的大塊集的相似元素的數量的示范性方法900的流程圖。換句話說,方法900為跟蹤與每個中心庫大塊集相聯系、當前在相似搜索結構中的相似元素的數據,以及當特定大塊集的這個數量低于閾值(例如,預定閾值)時,在重復刪除系統(tǒng)中從中心庫中刪除與那個大塊集相聯系的摘要創(chuàng)造了條件。啟動方法900 (步驟902)。方法900將輸入數據劃分成大數據塊,并將大數據塊分組成大數據塊集(步驟904)。方法900為輸入數據計算摘要,并將摘要存儲在與大塊集相對應的集合中(步驟906)。方法900為輸入數據計算相似元素,并將相似元素存儲在相似搜索結構中(步驟908)。方法900為每個大塊集保留當前包含在相似搜索結構中、與大塊集相聯系的相似元素的數量(步驟910)。然后,當特定大塊集的這個數量低于閾值時,從中心庫中刪除與那個大塊集相聯系的摘要集(步驟912)。然后結束方法900 (步驟914)。
[0074]所屬【技術領域】的技術人員知道,本發(fā)明的各個方面可以實現為系統(tǒng)、方法或計算機程序產品。因此,本發(fā)明的各個方面可以具體實現為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明的各個方面還可以實現為在一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。
[0075]可以采用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。
[0076]計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括一但不限于——無線、有線、光纜、RF等等,或者上述的任意合適的組合。可以以一種或多種程序設計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語目一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設計語言一諸如“C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括局域網(LAN)或廣域網(WAN) —連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。
[0077]下面將參照根據本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產品的流程圖和/或框圖描述本發(fā)明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些計算機程序指令在通過計算機或其它可編程數據處理裝置的處理器執(zhí)行時,產生了實現流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0078]也可以把這些計算機程序指令存儲在計算機可讀介質中,這些指令使得計算機、其它可編程數據處理裝置、或其他設備以特定方式工作,從而,存儲在計算機可讀介質中的指令就產生出包括實現流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)。也可以將計算機程序指令裝載到計算機、其它可編程數據處理裝置、或其它設備上使一系列操作步驟在計算機、其它可編程數據處理裝置、或其它設備上得到執(zhí)行,形成計算機實現過程,以便在計算機或其它可編程裝置上執(zhí)行的指令提供實現流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的過程。
[0079]圖中的流程圖和框圖顯示了根據本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現,或者可以用專用硬件與計算機指令的組合來實現。
【權利要求】
1.一種在計算環(huán)境下在使用處理器設備的重復數據刪除系統(tǒng)中減少摘要存儲消耗的方法,包含: 為輸入數據計算摘要值; 將該摘要值用于定位與存儲在中心庫中的數據的匹配; 將該摘要值存儲在中心庫中;以及 刪除確定與輸入數據冗余的存儲在中心庫中的數據的摘要值。
2.如權利要求1所述 的方法,進一步包括以數據中摘要值的出現順序線性地將摘要值存儲在中心庫中。
3.如權利要求1所述的方法,進一步包括以這樣的形式將摘要值存儲在中心庫中,該形式獨立于存儲摘要值所描述的數據的形式。
4.如權利要求1所述的方法,進一步包括將存儲在中心庫中、用于產生與輸入數據的匹配的數據確定成與輸入數據冗余。
5.如權利要求1所述的方法,進一步包括將輸入數據的摘要值與存儲在中心庫中的摘要值匹配,以定位與存儲在中心庫中的數據的匹配。
6.如權利要求1所述的方法,進一步包括將輸入數據劃分成大數據塊以及將大數據塊分組成大塊集。
7.如權利要求6所述的方法,進一步包括將摘要值存儲在與大塊集相對應的集合中,其中可以有效地存取和刪除摘要值集合。
8.如權利要求1所述的方法,進一步包括刪除冗余中心庫數據的摘要,使摘要存儲消耗與存儲在中心庫中的數據的加因子大小相聯系,而不是與中心庫中的總數據大小相聯系O
9.一種在計算環(huán)境的重復數據刪除系統(tǒng)中減少摘要存儲消耗的系統(tǒng),該系統(tǒng)包含: 重復數據刪除系統(tǒng); 工作在該重復數據刪除系統(tǒng)中的中心庫; 可工作在計算存儲環(huán)境中以便控制該重復數據刪除系統(tǒng)的至少一個處理器設備,其中該至少一個處理器設備: 為輸入數據計算摘要值, 將該摘要值用于定位與存儲在中心庫中的數據的匹配, 將該摘要值存儲在中心庫中,以及 刪除確定與輸入數據冗余的存儲在中心庫中的數據的摘要值。
10.如權利要求9所述的系統(tǒng),其中該至少一個處理器設備以數據中摘要值的出現順序線性地將摘要值存儲在中心庫中。
11.如權利要求9所述的系統(tǒng),其中該至少一個處理器設備以這樣的形式將摘要值存儲在中心庫中,該形式獨立于存儲摘要值所描述的數據的形式。
12.如權利要求9所述的系統(tǒng),其中該至少一個處理器設備將存儲在中心庫中、用于產生與輸入數據的匹配的數據確定成與輸入數據冗余。
13.如權利要求9所述的系統(tǒng),其中該至少一個處理器設備將輸入數據的摘要值與存儲在中心庫中的摘要值匹配,以定位與存儲在中心庫中的數據的匹配。
14.如權利要求9所述的系統(tǒng),其中該至少一個處理器設備將輸入數據劃分成大數據塊以及將大數據塊分組成大塊集。
15.如權利要求14所述的系統(tǒng),其中該至少一個處理器設備將摘要值存儲在與大塊集相對應的集合中,其中可以有效地存取和刪除摘要值集合。
16.如權利要求9所述的系統(tǒng),其中該至少一個處理器設備刪除冗余中心庫數據的摘要,使摘要存儲消耗與存儲在中心庫中的數據的加因子大小相聯系,而不是與中心庫中的總數據大小相聯 系。
【文檔編號】G06F17/30GK104050234SQ201410098983
【公開日】2014年9月17日 申請日期:2014年3月17日 優(yōu)先權日:2013年3月15日
【發(fā)明者】L.阿羅諾維克 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1