TWI676903B - 藉由從駐存在內容相關篩中之主要資料元件取得資料的資料之無損縮減 - Google Patents

藉由從駐存在內容相關篩中之主要資料元件取得資料的資料之無損縮減 Download PDF

Info

Publication number
TWI676903B
TWI676903B TW104143878A TW104143878A TWI676903B TW I676903 B TWI676903 B TW I676903B TW 104143878 A TW104143878 A TW 104143878A TW 104143878 A TW104143878 A TW 104143878A TW I676903 B TWI676903 B TW I676903B
Authority
TW
Taiwan
Prior art keywords
data
main
bytes
tree
elements
Prior art date
Application number
TW104143878A
Other languages
English (en)
Other versions
TW201635173A (zh
Inventor
哈莎夫丹 夏拉帕尼
Harshvardhan Sharangpani
Original Assignee
美商艾斯卡瓦公司
Ascava, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商艾斯卡瓦公司, Ascava, Inc. filed Critical 美商艾斯卡瓦公司
Publication of TW201635173A publication Critical patent/TW201635173A/zh
Application granted granted Critical
Publication of TWI676903B publication Critical patent/TWI676903B/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/55Compression Theory, e.g. compression of random number, repeated compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2372Updates performed during offline database operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本發明有關在大和極大之資料集上的無損資料縮減,且同時提供高速率的資料攝取及資料檢索。某些實施例可產生資料塊的無損縮減表示,其中該無損縮減表示包含:對內容相關篩中所儲存之一或多個主要資料元件的參考資料;及選擇性地,重建程式的說明,當被施加至該一或多個主要資料元件時,其造成資料塊。該資料塊的無損縮減表示可接著在網路上被通訊至另一電腦。

Description

藉由從駐存在內容相關篩中之主要資料元件取得資料的資料之無損縮減
此發明有關資料儲存、檢索、及通訊。更特別地,此發明有關使用內容相關篩的資料之無損縮減。
現代化的資訊時代係藉由龐大數量之資料的創造、捕獲、及分析,而予以標記。新的資料係由不同的來源所產生,其實例包含採購交易記錄、企業及政府記錄和通訊、電子郵件、社交媒體文章、數位圖像和視頻、機器日誌、來自嵌入式裝置的信號、數位感測器、蜂巢式電話全球定位衛星、太空人造衛星、以及巨大挑戰科學。資料係以種種格式產生,且其很大一部分係非結構化及不適合進入至傳統的資料庫之內。商業、政府、及個人以空前的速率產生資料,且努力要儲存、分析、及通訊此資料。數百億美元被每年地花費在儲存系統的採購上,用以保持累積之資料。同樣地,大量金額亦被花費在電腦系統上, 以供處理該等資料之用。
在最現代化的電腦及儲存系統中,資料係容納及佈署跨越被組織成儲存階層的多層儲存。雖然批量資料(包含用於備份的拷貝)係較佳地以最密集及最便宜的儲存媒體儲存,但必須被經常及迅速存取之資料卻放置在儘管最昂貴卻最快速的層之中。資料儲存之最快速且最昂貴的層係電腦系統之揮發性隨機存取記憶體或RAM,其駐在緊靠微處理器核心附近,並提供最低潛時及最高頻寬以供資料的隨機存取之用的。逐漸密集且更便宜,但速度較慢的層(具有隨機存取之逐漸高的潛時及更低的頻寬)包含非揮發性固態記憶體或快閃儲存、硬碟驅動器(HDD),及最後,磁帶驅動器。
為了要更有效地儲存和處理成長之資料,電腦產業對資料儲存媒體的密度和速度及對電腦的處理能力持續作改進。惟,資料量的增加遠遠超過計算及資料儲存系統之容量和密度中的增進。來自2014年中之資料儲存產業的統計透露出,在過去幾年中所創造和捕獲的新資料包含在世界中有史所捕獲之資料的大部分。至今,在世界中所創造之資料總量被估計為超過多個皆位元組(皆位元組係1021個位元組)。資料中之大規模的增加在必須可靠地儲存、處理、及通訊此資料之資料儲存、計算、及通訊系統上寄予大的需求。此激勵用以壓縮資料之無損資料縮減或壓縮技術的增加使用,以致使資料可以以降低的成本儲存,且同樣地,被有效率地處理和通訊。
各種無損資料縮減或壓縮技術已出現,且已發展多年。該等技術檢驗資料以搜尋資料中之某種形式的冗餘,並利用該冗餘以實現資料足跡之縮減,而無任何資訊的損失。對於看起來要利用資料中之特定形式的冗餘之給定的技術,所達成之資料縮減的程度根據資料中之特定形式的冗餘被多久發現一次。所需要的是,資料縮減技術能靈活地發現和利用資料中之任何可用的冗餘。因為資料源自廣泛種類的來源且以各種格式創設,所以在處理此多種資料之通用型無損資料縮減的發展及採用中,引起極大的注意。通用型資料縮減技術係除了字母表之外,無需輸入資料的先前知識之技術;因此,其可被普遍地施加至任何及所有的資料,而無需預先知道資料之結構和統計分佈特徵。
可使用以比較不同的資料壓縮技術之實施的長處度量包含在目標資料集上所達成之資料縮減的程度、伴隨壓縮或縮減所達成的效率、及伴隨其中資料被解壓縮和檢索以供未來使用之用的效率。效率度量評估解決方案的性能和成本效益。性能度量包含其中新的資料可被消耗和縮減的輸貫量或攝取速率、縮減資料所需的潛性或時間、其中資料可被解壓縮和檢索的輸貫量或速率、及解壓縮和檢索資料所需的潛性或時間。成本度量包含諸如微處理器核心或微處理器採用(中央處理單元採用)所需之任何專用硬體組件的成本、專用暫時記憶體的數量和記憶體帶寬、以及由保持資料的儲存之各種層所需的存取數目和 帶寬。請注意的是,縮減資料的足跡且同時提供有效率和迅速的壓縮以及解壓縮和檢索,不僅具有降低要儲存和通訊資料的總成本,而且具有有效率地致能資料的隨後處理之益處。
目前在產業中正在使用的許多通用型資料壓縮技術衍生自Abraham Lempel及Jacob Ziv在1977年中所研發出之Lempel-Ziv壓縮方法,請參閱例如,Jacob Ziv及Abraham Lempel,“用於序列資料壓縮的通用演算(A Universal Algorithm for Sequential Data Compression)”,IEEE資訊理論會報,第IT-23冊,第3號,1977年5月。此方法變成用以致能經由網際網路之有效率資料傳輸的基礎。該等Lempel-Ziv方法(命名為LZ77、LZ78、及其變異)藉由參考序列呈現之輸入資料流的滑動窗口內所看到的前一事件來置換字符串的反覆發生,而減少資料足跡。在消耗來自輸入資料流之給定資料區塊的新字符串時,該等技術透過在目前的及在多達窗口長度之先前的區塊內所預見之所有字符串而搜尋。如果新字符串係重複的,則可藉由對原始字符串之向後參考資料而予以置換。若由於重複的字符串而被消除之位元組的數目係比用於向後參考資料所需之位元組的數目更大時,則已獲得資料的縮減。為透過在窗口中所看到的所有字符串而搜尋,且為提供最大的字符串匹配,該等技術的實施採用各種方案,包含反復的掃描,以及建立暫時簿記結構,其包含在窗口中所看到的所有字符串之詞典。在消耗輸入的新位元組而 組裝新的字符串時,該等技術透過在現有窗口中之所有位元組而搜尋,或參考字符串之詞典(其次,某種計算),以決定重覆是否已被發現並以向後參考資料置換它(或選擇性地,決定是否須對詞典作添加)。
Lempel-Ziv壓縮方法係經常由所施加至資料的第二最佳化所伴隨,其中源符號係根據其在將被壓縮的資料區塊中之發生的頻率或機率而被動態地重編碼,此常常採用可變寬度編碼方案,以致使較短長度的碼被使用於較頻繁的符號,而藉以導致資料之縮減。例如,請參閱David A.Huffman之“用於最小冗餘碼之建立的方法”,IRE-無線電工程師學會之會議記錄,1952年9月,第1098至1101頁。此技術被稱作Huffman重編碼,且大致地需要透過資料以計算頻率的第一行程和實際編碼資料的第二行程。沿此議題的若干變化例亦正在被使用中。
使用該等技術的實例係已知為“緊縮(Deflate)”之方案,其結合Lempel-Ziv LZ77壓縮方法與Huffman重編碼。緊縮(Deflate)提供壓縮流資料格式規格,其指明用以表示位元組的序列成(通常較短之)位元的序列之方法,以及提供用以包裝後者位元序列成為位元組之方法。該緊縮方案係由PKWARE公司之Phillip W.Katz所原始設計,用於PKZIP歸檔功用。例如,請參閱“字符串搜尋器及使用其之壓縮器”,Phillip W.Katz,美國專利5,051,745,1991年9月24日。美國專利5,051,745描述用以搜尋用於預定目標字符串(輸入字符 串)之符號向量(窗口)的方法。該解決方法對窗口中的各符號採用具有指引符之指引符陣列,以及使用散列方法以過濾窗口中之針對輸入字符串的相同拷貝而需被搜索的可能位置。此之後係在該等位置處的掃描和字符串匹配。
該緊縮方案係在zlib庫中實施用於資料壓縮。Zlib庫係軟體庫,其係諸如Linux、Mac OS X、iOS、及各種遊戲機之若干軟體平台的關鍵組件。該zlib庫提供緊縮(Deflate)壓縮及解壓縮碼,以供通過zip(檔案歸檔)、gzip(單一檔案壓縮)、png(攜帶式網路圖形,用於無損壓縮影像)、及許多其他應用的使用。目前,Zlib係廣泛地使用於資料傳輸和儲存。通過伺服器及瀏覽器的大多數HTTP事務使用zlib以壓縮及解壓縮資料。類似的實施正由資料儲存系統所漸增地使用。
由英特爾公司(Intel Corp.)在2014年4月中所出版之命名為“在英特爾架構處理器上之高性能ZLIB壓縮”的文章描繪出,在當代的英特爾處理器(核心I7 4770處理器,3.4GHz,8MB快取)上運轉且在資料的卡爾加里(Calgary)語料庫上操作之zlib最佳版本的壓縮和性能之特徵。在zlib中所使用之緊縮(Deflate)格式設定用於匹配之最小的字符串長度為3個字符、該匹配之最長的長度為256個字符、及窗口的尺寸為32k位元組。該實施提供用於9層次之最佳化的控制,而層次9提供最高的壓縮,但使用最多的計算且執行最徹底的字符串匹配,以及層次1係最快的層次並採用貪婪式字符串匹配。該文 章報告使用zlib層次1(最快層次)之51%的壓縮比,該zlib層次1使用單一線程處理器且耗費每輸入資料位元組17.66個時脈的平均值。在3.4GHz之時脈頻率處,此意味著當用盡單一微處理器核心時之192MB/秒的攝取速率。該報告亦描繪的是,在壓縮中使用小幅上揚之最佳化層次6,性能如何迅速下降到38MB/秒的攝取速率,以及使用最佳化層次9,如何下降到16MB/秒的攝取速率(每位元組209.5個時脈的平均值)。
現有的資料壓縮解決方法大致地使用當代微處理器上之單一處理器核心,而在範圍自10MB/秒至200MB/秒的攝取速率操作。為了要進一步抬高攝取速率,多重核心被使用,或窗口尺寸被降低。甚至對該攝取速率的進一步改善係使用定製硬體加速器以達成,儘管在成本上增加。
上述之現有資料壓縮方法在利用大致地,單一信息或檔案、或者幾個檔案之局部窗口中的短字符串及符號之位準的細粒度冗餘時,係有效的。該等方法在它們被使用於操作在大或極大之資料集上,且需要高速率之資料攝取及資料檢索的應用之中時,具有嚴重的限制和缺點。
一重大限制在於,該等方法的實際實施僅可在局部窗口內有效率地利用冗餘。雖然該等方法可接受任意長的輸入資料流,但效率決定的是,限制被置放在其中細粒度冗餘將在該窗口的尺寸範圍上被發現。該等方法係 高度計算密集型,且對窗口中的所有資料需要頻繁及快速的存取。各種簿記結構之字符串匹配及查找係在消耗所創造新輸入字符串的輸入資料之各個新的位元組(或幾個位元組)時觸發。為了要達成所需的攝取速率,用於字符串匹配之窗口及相關聯的機械必須大多駐在處理器快取子系統中,而實際上,此將在窗口尺寸上置放約束。
例如,要在單一處理器核心上達成200MB/秒的攝取速率,每攝取之位元組的平均可用時間預算(包含資料存取和計算)係5奈秒(ns),其意指使用具有3.4GHz之操作頻率的當代處理器之17個時脈。此預算適合於對晶片上快取,其次,一些字符串匹配的存取。目前的處理器具有數百萬位元組之容量的晶片上快取。對主記憶體之存取耗費超過200個循環(約70奈秒),所以大部分駐存在記憶體中之較大的窗口將使攝取速率進一步地變慢。而且,因為窗口尺寸增加,且到重複之字符串的距離增加,所以要指明向後參考資料的成本增加,因而在針對重複的寬廣領域範圍僅只激勵較長的字符串將被搜尋。
在大多數的當代資料儲存系統上,跨越儲存階層的各種層所存取之資料的足跡係比系統中之記憶體容量更大幾個數量級。例如,雖然系統可提供數百個十億位元組的記憶體,但駐在快閃中之活性資料的資料足跡可係在數十個萬億位元組之中,以及在儲存系統中的總資料可係在數百個萬億位元組到多個千兆位元組的範圍中。而且,對隨後之儲存層的資料存取之可達到的輸貫量會依用 於各接續層之數量級或更多而下降。當滑動窗口變得如此之大以致使其不再能配合記憶體時,該等技術將由於顯著低的帶寬,和對下一個資料儲存層次之隨機IO(輸入或輸出操作)存取的較高潛時而被壓抑。
例如,考慮到4k位元組之輸入資料的檔案或網頁,其可藉由對,比方說,早已存在於資料中且被散佈在256萬億位元組足跡的範圍之平均長度40個位元組的100個字符串做成參考資料,而由現有資料所組裝。各個參考資料將花費6個位元組以指明其位址,及1個位元組以供字符串長度之用,而有希望節省40個位元組。雖然在此實例中所敘述的網頁可被壓縮超過五倍,但用於此網頁之攝取速率將受到需對儲存系統提取及驗證100個重複字符串之100或更多個IO存取所限制(即使可完全地且廉價地預測到該等字符串駐在何處)。對於僅只10MB/秒的攝取速率,可提供250,000個隨機IO存取/秒(此意指對4KB網頁之1GB/秒的隨機存取帶寬)之儲存系統在用盡該儲存系統之全部帶寬的同時,僅可每秒壓縮2,500個4KB大小的該等網頁,而使其呈現不可用做儲存系統。
具有萬億位元組或千兆位元組大小之大的窗口尺寸之習知壓縮方法的實施,將由於對儲存系統的資料存取之降低的帶寬而感到不足,且將不可接受地變慢。因此,只要冗餘局部地存在於配合處理器快取或系統記憶體的窗口尺寸上,該等技術的實施就會有效率地發現和利用它。若冗餘係與輸入資料空間地或暫時地分離多個萬億位 元組、千兆位元組、或艾(千千兆)位元組時,該等實施將無法以將由儲存存取帶寬所限制之可接受的速率發現該冗餘。
習知方法之另一限制在於它們並不適用於資料的隨機存取。跨越整個窗口之所壓縮的資料區塊必須在其中任一區塊內之任一資料塊可被存取之前,被解壓縮。此在窗口的尺寸上置放實際的限制。此外,其係在未壓縮的資料上傳統地執行之操作(例如,搜尋操作)無法在壓縮的資料上有效率地執行。
習知方法(且特別地,Lempel-Ziv為主的方法)之又另一限制在於它們僅沿著一維而搜尋冗餘---藉由向後參考資料而置換相同的字符串之該者。Huffman重編碼方案之限制在於其需要透過資料的兩行程,用以計算頻率,且然後,重編碼。此在較大的區塊上會變慢。
其在資料的全盤儲存範圍偵測長的重複字符串之資料壓縮方法經常使用數位指紋圖譜及散列方案的組合。此壓縮處理係稱作重複資料刪除。重複資料刪除之最基本技術將檔案拆散成為固定尺寸的區塊,以及在資料儲存庫的範圍尋找重複的區塊。若檔案的拷貝被產生時,則在第一檔案中之各區塊將在第二檔案中具有複製品,且該複製品可以以對原始區塊之參考資料置換。為了要加速潛在重複之區塊的匹配,係採用散列之方法。散列函數係一種轉換字符串成為被稱作其散列值的數值之函數。假如兩個字符串係一樣的,則它們的散列值亦係相等的。散列函 數映像多個字符串至給定的散列值,而可藉以縮減長的字符串成極短長度之散列值。散列值之匹配將比兩個長的字符串之匹配更快;因此,該等散列值的匹配會先被完成以過濾可係複製品之可能的字符串。若輸入之字符串或區塊的散列值與存在於儲存庫中之字符串或區塊的散列值匹配時,則可將輸入之字符串與在儲存庫中之具有相同散列值的各字符串相比較,用以確認複製品的存在。
將檔案拆散成為固定尺寸的區塊係簡單及便利的,且固定尺寸的區塊係在高性能儲存系統中高度所欲的。惟,此技術具有在其可揭露之冗餘數量中的限制,而此意指的是,該等技術具有低的壓縮位準。例如,若將第一檔案之拷貝做成以產生第二檔案時,且若將甚至單一位元組之資料插入至該第二檔案時,則所有下游區塊的對齊將改變,各新的區塊之散列值將被重新計算,以及該重複資料刪除方法將不再找出所有的複製品。
為解決重複資料刪除方法中之此限制,業界已採用指紋圖譜以使匹配內容之位置處的資料流同步及對齊。此後者方案根據指紋圖譜而導致可變尺寸的區塊。Michael Rabin顯示隨機選擇之不可分解多項式可如何被使用以採集位元串指紋圖譜---請參閱例如,Michael O.Rabin之“藉由隨機多項式之指紋圖譜”,美國哈佛大學計算技術研究中心,TR-15-81,1981年。在此方案中,隨機選擇之質數p係使用以藉由計算被視為大的整數模p之該字符串的殘留,而採集長字符串指紋圖譜。此方案需要 在k位元整數上執行整數運算,其中k=log2(p)。選擇性地,可使用隨機不可分解之k次質多項式,以及指紋圖譜係該質多項式之資料模的多項式表示。
此指紋圖譜之方法係使用於重複資料刪除系統中,用以識別其中要建立資料塊邊界的合適位置,使得該系統可在全盤儲存庫中搜尋該等資料塊的複製品。資料塊邊界可在找到特定值的指紋圖譜時被設定。做為該用法之實例,指紋圖譜可藉由採用32次或更低次的多項式,而被計算用於輸入資料中之各個及每個48位元組的字符串(在輸入的第一個位元組開始,且其次,在之後的每個接續之位元組)。然後,可檢驗32位元指紋圖譜之低的13位元,且不論何時只要該等13位元的值係預定值(例如,值1),就可設定斷點。對於隨機資料而言,具有該特殊值之該13位元的可能性將係213分之1,以致使該斷點可能要大約每8KB才會被遭遇一次,而導致平均尺寸8KB的可變尺寸資料塊。斷點或資料塊邊界將與根據資料之內容的指紋圖譜有效地對齊。當一段長長的距離並沒有發現到指紋圖譜時,則可在某一預定的臨限值處強制斷點,以致使系統一定會創造出比預定尺寸更短的資料塊,以供儲存庫之用。請參閱例如,Athicha Muthitachareon,Benjie Chen,和David Mazieres之“低帶寬的網路檔案系統”,SOSP‘01,第18屆ACM在作業系統原理上之研討會的會議記錄,10/21/2001,第174至187頁。
由Michael Rabin及Richard Karp所研發之 Rabin-Karp字符串匹配技術對指紋圖譜及字符串匹配之效率提供了進一步的改善(請參閱例如,Michael O.Rabin及R.Karp之“有效率的隨機化圖案匹配演算”,IBM Jour.of Res.And Dev.,第31冊,1987年,第249至260頁)。請注意的是,檢驗m位元組子字符串用於其指紋圖譜之指紋圖譜方法可以以O(m)時間評估指紋圖譜多項式函數。因為此方法將需被施加在起始於例如,n位元組輸入流之每個位元組處的子字符串上,所以要在全部資料流上執行指紋圖譜所需之總工作量將係O(n×m)。Rabin-Karp找出被稱作滾動散列的散列函數,其中可藉由僅做成恆定數目之操作而從前面一者來計算下一個子字符串的散列值,與該子字符串的長度無關。因此,在向右移位一位元組之後,可增量地完成新的m位元組字符串上之指紋圖譜的計算。此降低了用以計算指紋圖譜的工作量至O(1),及用以採集全部資料流之指紋圖譜的總工作量至O(n),而與資料的尺寸成線性。此大大地加速該等指紋圖譜的計算和識別。
用於上述重複資料刪除方法之典型的資料存取和計算要件可被敘述如下。對於給定之輸入,一旦完成指紋圖譜而創造出資料塊,且在計算出用於該資料塊的散列值之後,該等方法首先需要一組對記憶體及隨後儲存層的存取,用以在儲存庫中搜尋及查找保持所有資料塊之散列值的全盤散列表。此將大致地需要對儲存之第一IO存取。一旦在散列表之中匹配時,則第二組之儲存IO(典 型地,一個,但可根據儲存庫中存在有多少具有相同散列值的資料塊而超過一個)就隨後提取載有相同散列值的實際資料塊。最後,執行位元組接著位元組之匹配,用以比較輸入資料塊與所提取的資料塊,而確認及識別出複製品。此係由用於以對原始者的參考資料置換新的複製品區塊之第三儲存IO存取(對元資料空間)所跟隨在後。若在全盤散列表中並無匹配時(或假如並未發現複製品時),則系統需要一IO,用以登入新的區塊至儲存庫內,以及另一IO,用以更新全盤散列表而以新的散列值登入。因此,對於大的資料集(其中元資料及全盤散列表不適合在記憶體中,且因此,需要儲存IO以存取它們),該等系統可需要平均每輸入資料塊三個IO。進一步的改善可藉由採用各種濾波器,使得在全盤散列表中之錯失可經常被偵測到,而無需用以存取全盤散列表之第一儲存IO,藉以使處理某些資料塊所需的IO數目減低至兩個。
可提供250,000個隨機IO存取/秒(此意指對4KB網頁之1GB/秒的隨機存取帶寬)之儲存系統在用盡該儲存系統之全部帶寬的同時,可攝取和重複資料刪除大約每秒83,333個(250,000除以每輸入資料塊三個IO)平均尺寸4KB的輸入資料塊,而致能333MB/秒的攝取速率。若僅使用儲存系統的一半帶寬時(使得另一半帶寬係可用於對所儲存資料之存取),該重複資料刪除系統仍可交付166MB/秒的攝取速率。假定足夠的處理功率係可用 於系統之中時,則該等攝取速率(其係由I/O帶寬所限制)係可達成的。因此,鑒於足夠的處理功率,重複資料刪除系統能在當代儲存系統上,以經濟的IO在資料之全盤範疇查找大的資料複製品,且以每秒數百個百萬位元組之攝取速率交付資料縮減。
根據上述說明,應瞭解的是,雖然該等重複資料刪除方法係在查找全盤範疇的範圍之長字符串的複製品時有效,但主要地,它們係在查找大的複製品時有效。若資料具有更細粒度的變化或修正時,則將不會使用此方法來查找可用的冗餘。此大大降低了在其中該等方法係有效的範圍之資料集的寬度。該等方法已在某些資料儲存系統和應用中發現用途,例如,資料的正規備份,其中將予以備份之新資料僅有一些檔案被修正,且其餘的部分均係在之前的備份中所儲存檔案之複製品。同樣地,重複資料刪除為主的系統常常被部署在其中多個精確拷貝之資料或碼被做成的環境中,諸如在資料中心之中的虛擬化環境中。惟,當資料更普遍地或更細粒度地演變和被修正時,則重複資料刪除為主的技術將喪失其效用。
某些方法(通常被採用於資料備份應用中)並不執行輸入資料與其散列值匹配該輸入的該者之間的實際位元組接著位元組之比較。該等解決方法依賴使用如同SHA-1之強大散列函數之碰撞的低機率。然而,由於碰撞之有限的非零機率(其中多個不同的字符串可映像至相同的散列值),所以該等方法不能被視為提供無損資料縮 減,且因此,將不符合最初儲存及通訊之高的資料完整性需求。
某些方法結合多個現有的資料壓縮技術。大致地,在該安裝中,全盤重複資料刪除方法係首先施加至資料。之後,在該重複資料刪除的資料集上,及採用小的窗口,與Huffman重編碼結合之Lempel-Ziv字符串壓縮方法被施加以達成進一步的資料縮減。
然而,儘管採用所有迄今已知之技術,在成長及累積資料的需求,與世界經濟可使用最佳可用的現代儲存系統實惠地容納甚麼之間,仍持續有若干數量級的差距。鑒於由該等成長資料所需求之儲存容量的特殊要求,對於用以進一步縮減資料足跡之改善方式,就持續有所需要。因此,仍需要發展出解決現有技術之限制,或沿著尚未由現有技術所解決的空間以利用資料中之可用冗餘的方法。同時,能以可接受的處理速率和處理成本有效率地存取及檢索資料就持續變得重要。
綜上所述,對於可利用在大和極大資料集範圍之冗餘,及可提供高速率之資料攝取和資料檢索的無損資料縮減解決方法,仍有長期的需求。
此處所敘述之實施例以技術及系統為特徵,其可在大和極大之資料集上執行無損資料縮減,且同時提供高速率的資料攝取及資料檢索,以及其並不會因現有的 資料壓縮系統的缺點及限制而受損。
特別地,一些實施例可根據資料塊而識別一或多個主要資料元件,其中該識別包含使用該資料塊的內容以透過資料結構導航,該資料結構根據主要資料元件的內容而組織主要資料元件。其次,該等實施例可根據該資料塊及所識別之該一或多個主要資料元件而決定重建程式,以致使該資料塊可藉由施加該重建程式至該一或多個主要資料元件而被重建。然後,該等實施例可產生該資料塊的無損縮減表示,其中該無損縮減表示包含對所識別之該一或多個主要資料元件中之各主要資料元件的參考資料,及該重建程式的說明。
102‧‧‧輸入資料
103,1203‧‧‧資料縮減設備
104‧‧‧剖析器及因子分解器
105‧‧‧候選元件
106,1206‧‧‧資料提取篩或主要資料儲存
107,130,305-307‧‧‧主要資料元件
108‧‧‧提取的資料
109‧‧‧檢索請求
110‧‧‧提取器
111‧‧‧檢索器
112‧‧‧重建器
113‧‧‧檢索資料輸出
114‧‧‧更新
115‧‧‧縮減資料組件
116‧‧‧重建之資料
119A‧‧‧重建程式
119B‧‧‧對重建程式的參考資料
121,122‧‧‧內容相關映像器
131‧‧‧對主要資料元件的參考資料
132‧‧‧主要重建程式
133‧‧‧對主要重建程式的參考資料
202-222‧‧‧操作
301‧‧‧路徑
302‧‧‧根
303‧‧‧節點
334,336,340,354‧‧‧鏈路
1201‧‧‧輸入檔案
1205‧‧‧提取的檔案
1207‧‧‧映像器
1209‧‧‧樹狀節點檔案
1210‧‧‧葉狀節點檔案
1211‧‧‧PDE檔案
1221‧‧‧輸入資料集
1224‧‧‧輸入資料批量
1226‧‧‧資料批量i
1227‧‧‧無損縮減資料集
1228‧‧‧無損縮減資料批量i
第1A圖描繪依據在此所敘述的一些實施例之用於資料縮減的方法及設備,其因子分解輸入資料成為元件,及自駐存在主要資料儲存中之主要資料元件得到該等者。
第1B至1G圖描繪依據在此所敘述的一些實施例之被描繪在第1A圖中的方法及設備之變化例。
第1H圖呈現依據在此所敘述的一些實施例之格式及規格的實例,其描繪提取之資料的結構。
第1I至1P圖描繪輸入資料成為無損縮減形式之概念上的轉變,用於第1A至1G圖中所示之用於資料縮減的方法及設備之變化例。
第2圖描繪依據在此所敘述的一些實施例之藉由因子分解輸入資料成為元件,及自駐存在主要資料儲存中之主要資料元件取得該等元件之用於資料縮減的處理。
第3A、3B、3C、3D及3E圖描繪依據在此所敘述的一些實施例之不同的資料組織系統,其可使用以根據主要資料元件名稱而組織它們。
第3F圖呈現依據在此所敘述的一些實施例之自描述樹狀節點資料結構。
第3G圖呈現依據在此所敘述的一些實施例之自描述葉狀節點資料結構。
第3H圖呈現依據在此所敘述的一些實施例之自描述葉狀節點資料結構,其包含導航先行欄。
第4圖顯示依據在此所敘述的一些實施例之256TB的主要資料可如何以樹狀形式組織之實例,並呈現該樹狀物可如何被佈局在記憶體及儲存中。
第5A至5C圖描繪資料可如何使用在此所敘述之實施例而被組織的實際例子。
第6A至6C圖顯示依據在此所敘述的一些實施例之樹狀資料結構可如何使用於參照第1A至1C圖所分別敘述的內容相關映像器。
第7A圖提供依據在此所敘述的一些實施例之可在重建程式中被指明的轉變之實例。
第7B圖顯示依據在此所敘述的一些實施例之 將從主要資料元件得到的候選元件之結果的實例。
第8A至8E圖描繪依據在此所敘述的一些實施例之資料縮減可如何藉由因子分解輸入資料成為固定尺寸元件,且以參照第3D及3E圖所敘述的樹狀資料結構組織該等元件,而被執行。
第9A至9C圖描繪依據在此所敘述的一些實施例之根據第1C圖中所示系統的資料提取(Data DistillationTM)方案之實例。
第10A圖提供依據在此所敘述的一些實施例之在重建程式中所指明的轉變如何施加至主要資料元件以產生取得物元件之實例。
第10B至10C圖描繪依據在此所敘述的一些實施例之資料檢索處理。
第11A至11G圖描繪依據在此所敘述的一些實施例之包含資料提取(Data DistillationTM)機制(其可使用軟體、硬體、或它們的組合而予以實施)的系統。
第11H圖顯示依據在此所敘述的一些實施例之資料提取(Data DistillationTM)設備可如何與取樣通用型計算平台介面。
第12A至12B圖顯示依據在此所敘述的一些實施例之用於跨越帶寬約束通訊媒體的資料通訊之資料提取(Data DistillationTM)設備的使用。
第12C至12K圖描繪依據在此所敘述的一些實施例之藉由用於各種使用模型的資料提取(Data DistillationTM)設備而產生之縮減資料的種種組件。
以下說明係提出用以使熟習本項技藝之任何人士能做成及使用本發明,且係以特殊應用及其需求之此點提供。對所揭示之實施例的種種修正將立即呈明顯於熟習本項技藝之該等人士,且在此所界定的一般原理可被應用至其他的實施例和應用,而不會背離本發明之精神及範疇。因此,本發明並未受限於所示之該等實施例,且係符合與在此所揭示之原理及特性一致的更寬廣範圍。在此發明中,當片語使用與實體之組在一起的用語“及/或”時,該片語涵蓋該實體之組的所有可能之組合,除非另有指明。例如,片語“X,Y,及/或Z”將涵蓋以下七種組合:“僅X”,“僅Y”,“僅Z”,“X及Y,但非Z”,“X及Z,但非Y”,“Y及Z,但非X”,以及“X,Y,及Z”。
使用內容相關篩之有效率的資料無損縮減
在此處所敘述之一些實施例中,資料被組織及儲存,用以在整個資料集的範圍有效率地全盤揭露和利用冗餘。輸入資料流係拆散成為被稱作元件的構成片或資料塊,且在元件之中的冗餘係以比元件本身更細的粒狀偵測及利用,藉以降低所儲存之資料的總體足跡。稱作主要資料元件之元件的組係識別且使用為用於資料集之共同及共享的建築塊,以及儲存在被稱作主要資料儲存或篩的結 構中。主要資料元件係單純地某一尺寸之位元、位元組、或數字的序列。主要資料元件可根據實施而成為固定尺寸或可變尺寸的。輸入資料的其他構成元件係取自主要資料元件,且被稱做取得物元件。因此,輸入資料被因子分解成為主要資料元件及取得物元件。
主要資料儲存安排及組織主要資料元件,以致使主要資料儲存可被以內容相關方式搜尋和存取。鑒於具有一些限制之一些輸入內容,主要資料儲存可被查詢以檢索具有該內容的主要資料元件。鑒於輸入元件,主要資料儲存可使用該元件的值,或該元件中之某些欄的值,以快速提供一或小的組之主要資料元件,其中輸入元件可以以用以指明來歷所需的最小儲存自它取得。在一些實施例中,於主要資料儲存中之該等元件係以三種形式組織。取得物元件係藉由執行轉變於主要資料元件上而自它取得,該轉變係指明於重建程式中,其描述如何自一或多個主要資料元件產生取得物元件。距離臨限值指明取得物元件的儲存足跡之尺寸上的限制。此臨限值指明取得物元件與主要資料元件之最大的可允許距離,且亦置放可被使用以產生取得物元件之重建程式的尺寸上之限制。
取得物資料的檢索可藉由執行重建程式於由該來歷所指明之一或多個主要資料元件,而予以完成。
在此發明中,上述通用型無損資料縮減技術可稱作資料提取(Data DistillationTM)處理。它執行與化學中之提取相似的功能---分離混合物成為其構成元素。該 主要資料儲存亦被稱作篩或資料提取(Data DistillationTM)篩。
在此方案中,輸入資料流被因子分解成為元件之序列,各元件係主要資料元件或取得自一或多個主要資料元件的取得物元件。各元件被轉變成為無損縮減表示,該無損縮減表示在主要資料元件之情況中包含對該主要資料元件的參考資料,及在取得物元件之情況中包含對來歷中所包含之一或多個主要資料元件的參考資料,並且包含重建程式的說明。因此,輸入資料流係因子分解成為其係在無損縮減表示之中的元件之序列。此元件之序列(出現在無損縮減表示之中)被稱作提取資料流或提取資料。在提取資料中的元件之序列具有相對於輸入資料中的元件之序列的一對一對應關係,亦即,在提取資料中的元件之序列中的第n個元件對應輸入資料中的元件之序列中的第n個元件。
在此發明中所敘述之通用型無損資料縮減技術接收輸入資料流且將其轉換成為提取資料流及主要資料儲存的組合,以致使提取資料流及主要資料儲存之足跡的總和通常比輸入資料流的足跡更小。在此發明中,提取資料流及主要資料儲存係統稱為無損縮減資料,且亦將可互換地稱作“縮減資料流”、或“縮減資料”、或“縮減之資料”。同樣地,對於由在此發明中所敘述之無損資料縮減技術所產生,且以無損縮減之格式出現的元件之序列,以下的用語係可互換地使用:“縮減輸出資料流”、“縮減輸 出資料”、“提取資料流”、“提取資料”、及“提取之資料”。
第1A圖描繪依據在此所敘述的一些實施例之用於資料縮減的方法及設備,其因子分解輸入資料成為元件,及自駐存在主要資料儲存中之主要資料元件取得該等者。此圖式描繪資料縮減或資料提取(Data DistillationTM)方法及設備的整體方塊圖,且提供功能性組件、結構、及操作的綜覽。在第1A圖中所描繪的組件及/或操作可使用軟體、硬體、或其組合而予以實現。
位元組之序列係接收自輸入資料流,且呈現為至資料縮減設備103(亦稱作資料提取(Data DistillationTM)設備)的輸入資料102。剖析器及因子分解器104剖析該輸入資料且將其拆散成為候選元件。該因子分解器決定輸入流之何處應插入分隔符以切片該流成為候選元件。一旦已識別出資料中之兩個接連的分隔符,候選元件105就由剖析器及因子分解器104所產生,且被提交至主要資料儲存106(亦稱作資料提取(Data DistillationTM)篩)。
資料提取(Data DistillationTM)篩或主要資料儲存106包含所有的主要資料元件(在第1A圖中被標記為PDE),並根據它們的值或內容而安排和組織它們。該篩提供用於兩種存取之支援。第一,主要資料元件的各者可經由對其中主要資料元件駐存在該篩中之位置的參考資料,而被直接存取。第二,元件可藉由使用其中可以以軟體、硬體、或其組合實施的內容相關映像器121,而以 內容相關方式存取。對篩之此第二形式的存取係重要的特性,該特性係由本發明實施例所使用,用以識別與候選元件105確實匹配的主要資料元件,或用以識別其中候選元件可自其取得的主要資料元件。特別地,鑒於例如,候選元件105的候選元件,主要資料儲存106可被搜尋(根據候選元件105的值,或根據在候選元件105中之某些欄的值),用以快速提供一或小的組之主要資料元件107,其中該候選元件可以以用以指明來歷所需的最小儲存自它取得。
該篩或主要資料儲存106可以以其值係散佈在資料空間之範圍的一組主要資料元件而予以初始化。選擇性地,依據在此參照第1A至1C圖及第2圖所敘述之資料提取(Data DistillationTM)處理,篩可清空地開始,且主要資料元件可當攝取資料時被添加至它。
提取器110接收候選元件105及適合於來歷之檢索的主要資料元件107(其係內容相關地檢索自主要資料儲存106),決定候選元件105是否可取得自該等主要資料元件的一或多者,產生縮減資料組件115(包含對相關聯的主要資料元件和重建程式之參考資料),以及提供更新114至主要資料儲存。若候選元件係檢索的主要資料元件之複製品時,則提取器置放對位在主要資料儲存中之主要資料元件的參考資料(或指引符),及此係主要資料元件的指示符至提取資料108內。若並未發現複製品時,則提取器表示候選元件為被執行於一或多個檢索的主 要資料元件上之一或多個轉變的結果,其中轉變之序列係統稱為例如,重建程式119A的重建程式。各來歷可要求將由提取器所建構之其自身獨特的程式。重建程式指明諸如,可被施加至主要資料元件之插入、刪除、置換、級聯、算術、及邏輯操作的轉變。倘若取得物元件的足跡(被計算為重建程式之尺寸加上對所需要之主要資料元件的參考資料之尺寸)係在相對於候選元件之某一特定的距離臨限值之內時(為致能資料縮減),則候選元件被重制定成取得物元件,且由重建程式及對相關聯的主要資料元件(或元件)之參考資料的組合所置換---在此情況中,該等者形成縮減資料組件115。若超出該臨限值時,或假如並無合適的主要資料元件從主要資料儲存被檢索出時,則主要資料儲存可被指示以安裝該候選者成為新的主要資料元件。在此情況中,提取器置放對新添加之主要資料元件的參考資料,及此係主要資料元件的指示符至提取之資料108內。
用於資料之檢索的請求(例如,檢索請求109)可以以對包含主要資料元件的主要資料儲存中之位置的參考資料,或在取得物的情況中,對主要資料元件的該參考資料及相關聯的重建程式(或在根據多個主要資料元件之取得物的情況中,對該多個主要資料元件的該等參考資料及相關聯的重建程式)之組合的形式。使用對主要資料儲存中之主要資料元件的一或多個參考資料,檢索器111可存取主要資料儲存以提取一或多個主要資料元件, 且提供該一或多個主要資料元件以及重建程式至重建器112,以回應資料檢索請求,該重建器112在該一或多個主要資料元件上執行轉變(被指明於該重建程式中),用以產生重建之資料116(其係所請求之資料)並將其交付至檢索資料輸出113。
在此實施例的變化例中,該等主要資料元件可以以壓縮形式被儲存於篩中(使用本項技藝中所已知之技術,包含Huffman編碼及Lempel Ziv法),且當需要時,則予以解壓縮。此具有縮減主要資料儲存之整體足跡的優點。唯一的約束在於,內容相關映像器121必須如之前一樣地提供內容相關存取至該等主要資料元件。
第1B及1C圖描繪依據在此所敘述的一些實施例之被描繪在第1A圖中的方法及設備之變化例。在第1B圖中,重建程式可予以儲存在主要資料儲存中,且可被與主要資料元件相似地處理。對重建程式的參考資料或指引符119B係設置在提取之資料108中,以取代提供重建程式119A之本身。若該重建程式係由其他取得物所共享時,且若對重建程式的參考資料或指引符(加上用以在重建程式與對重建程式的參考資料之間區分所需的任何元資料)要求比該重建程式之本身更少的儲存空間時,則可獲得進一步的資料縮減。
在第1B圖中,重建程式可就像主要資料元件一樣地被處理和存取,且儲存在主要資料儲存中做為主要資料元件,而藉以允許從主要資料儲存之重建程式的內容 相關搜尋和檢索。在該來歷處理以創造取得物元件之期間,一旦提取器110決定了用於該來歷所需之重建程式,其就可接著決定此候選重建程式是否係早已存在於主要資料儲存中,或此候選重建程式是否可自早已存在於主要資料儲存中的另一登錄取得。若該候選重建程式係早已存在於主要資料儲存之中時,則提取器110可決定對該預先存在之登錄的參考資料,且可將該參考資料包含在提取之資料108中。若候選重建程式可自早已駐存在主要資料儲存之中的現有登錄取得時,則提取器可交付該候選重建程式的取得物或重制訂至提取之資料,亦即,提取器置放對預先存在於主要資料儲存中之登錄的參考資料,伴隨增量的重建程式至提取之資料內,該增量的重建程式係從預先存在之登錄取得。若該候選重建程式並未存在於主要資料儲存之中,也無法自主要資料儲存中的登錄取得時,則提取器110可添加該重建程式至主要資料儲存(添加重建程式至儲存的操作可回報對新添加之登錄的參考資料),且可將對該重建程式的參考資料包含在提取之資料108中。
第1C圖呈現依據在此所敘述的一些實施例之被描繪在第1B圖中的方法及設備之變化例。特別地,被使用以儲存及查詢重建程式之第1C圖中的機制係與被使用以儲存及查詢主要資料元件的機制相似,但重建程式係保持在與包含主要資料元件之結構分離的結構中。在該結構中之登錄係稱作主要重建程式(在第1C圖中被標記為PRP)。回顧一下,主要資料儲存106包含內容相關映像 器121,其支援快速的內容相關查找操作。在第1C圖中所描繪之實施例包含內容相關映像器122,其係與內容相關映像器121相似。在第1C圖中,內容相關映像器122及內容相關映像器121已被顯示成為主要資料儲存或篩106的一部分。在其他實施例中,內容相關映像器122及重建程式可被與主要資料儲存或篩106分離地儲存。
在此實施例的變化例中,該等主要資料元件可以以壓縮形式被儲存於篩中(使用本項技藝中所已知之技術,包含Huffman編碼及Lempel Ziv法),且當需要時,則予以解壓縮。同樣地,主要重建程式可以以壓縮形式被儲存於主要重建程式篩中(使用本項技藝中所已知之技術,包含Huffman編碼及Lempel Ziv法),且當需要時,則予以解壓縮。此具有縮減主要資料篩及主要重建程式篩之整體足跡的優點。唯一的約束在於,內容相關映像器121及122必須如之前一樣地提供內容相關存取至該等主要資料元件及主要重建程式。
第1D圖呈現依據在此所敘述的一些實施例之被描繪在第1A圖中的方法及設備之變化例。特別地,在第1D圖中所敘述的實施例中,主要資料元件被直列地儲存在提取之資料中。主要資料篩或主要資料儲存106持續提供內容相關存取至主要資料元件,且持續邏輯地包含主要資料元件。其保持對提取之資料中所直列設置的主要資料元件之參考資料或鏈接。例如,在第1D圖中,主要資料元件130係直列地設置在提取之資料108中。主要資料 篩或主要資料儲存106保持對主要資料元件130的參考資料131。再次地,在此設置中,取得物元件的無損縮減表示將包含對所需之主要資料元件的參考資料。在資料檢索期間,檢索器111將自所需之主要資料元件的所設置處提取該所需之主要資料元件。
第1E圖呈現依據在此所敘述的一些實施例之被描繪在第1D圖中的方法及設備之變化例。特別地,在第1E圖之中所敘述的實施例中,就像在第1B圖之中所描繪的設置中,重建程式可自主要重建程式取得,且被指明為增量之重建程式加上對主要重建程式的參考資料。該等主要重建程式有如主要資料元件一樣地被處理,且被邏輯地安裝在主要資料篩之中。再者,在此設置中,主要資料元件和主要重建程式二者係直列地儲存在提取之資料中。主要資料篩或主要資料儲存106持續提供內容相關存取至主要資料元件及主要重建程式,且持續邏輯地包含主要資料元件及主要重建程式,且同時保持對提取之資料中所直列設置它們之處的參考資料或鏈接。例如,在第1E圖中,主要資料元件130係直列地設置在提取之資料108中。而且,在第1E圖中,主要重建程式132係直列地設置在提取之資料中。主要資料篩或主要資料儲存106保持對主要資料元件130(其係PDE_i)的參考資料131(其係對PDE_i的參考資料)及對主要重建程式132(其係主要重建程式_1)的參考資料133(其係對PDE_j的參考資料)。再次地,在此設置中,取得物元件的無損縮減表 示將包含對所需之主要資料元件及所需之主要重建程式的參考資料。在資料檢索期間,檢索器111將自對應的提取之資料中所設置它們之處提取該等所需之組件。
第1F圖呈現依據在此所敘述的一些實施例之被描繪在第1E圖中的方法及設備之變化例。特別地,在第1F圖之中所敘述的實施例中,就像在第1C圖之中所描繪的設置中,主要資料篩108包含分離的映像器---用於主要資料元件的內容相關映像器121及用於主要重建程式的內容相關映像器122。
第1G圖呈現被描繪在第1A圖至第1F圖中的方法及設備之更一般性的變化例。特別地,在第1G圖之中所敘述的實施例中,可將主要資料元件設置在主要資料篩之中,或直列地設置在提取之資料中。可將一些主要資料元件設置在主要資料篩之中,且同時將其他者直列地設置在提取之資料中。同樣地,可將主要重建程式設置在主要資料篩之中,或直列地設置在提取之資料中。可將一些主要重建程式設置在主要資料篩之中,且同時將其他者直列地設置在提取之資料中。主要資料篩邏輯地包含所有的主要資料元件和主要重建程式,且在其中主要資料元件或主要重建程式係直列地設置在提取之資料中的情況中,該主要資料篩裝設對它位置的參考資料。
用於資料縮減之因子分解輸入資料成為元件,及自駐存在主要資料儲存中的主要資料元件取得該等者之方法和設備的上述說明,僅被呈現以供描繪及說明的 目的之用。它們並不打算要變成包羅無遺的,或要限制本發明至所揭示的形式。因而,許多修正和變化將呈明顯於熟習本項技藝之從業者。
第1H圖呈現依據在此所敘述的一些實施例之格式及規格的實例,其描繪用於資料提取處理的方法和設備之第1圖中的提取之資料119A的結構。因為資料提取處理因子分解輸入資料成為主要資料元件及取得物元件,所以用於資料之無損縮減表示的格式識別該等元件且描述提取之資料中的該等元件之各種組件。該自描述格式識別提取之資料中的各記錄,指示其是否係主要資料元件或取得物元件,以及描繪該等各種組件,亦即,對被安裝在篩中之一或多個主要資料元件的參考資料,對被安裝在主要資料儲存中之重建程式的參考資料(如在第1B圖之119B中)或對被安裝在重建程式(RP)儲存中之重建程式的參考資料(如在第1C圖之119C中),及直列的重建程式(RP)。該重建程式(RP)儲存亦可被互換地稱作主要重建程式(PRP)儲存。在第1H圖中之格式具有用以藉由執行重建程式於多個主要資料元件上,而以取得物元件及可各自獨立指明之主要資料元件的尺寸指明來歷之準備。在第1H圖中之格式亦具有用以指明其中主要資料元件係直列地設置在提取之資料中,而非被設置在主要資料儲存內之準備。此係由操作碼(Opcode)編碼7所指明,其指明的是,元件的類型係主要資料元件,其係直列地設置在提取之資料中。該提取之資料係使用此格式而被儲存 於資料儲存系統中。在此格式中之資料係由資料檢索器111所消耗,以致使資料的各種組件可被提取且隨後地重建。
第1I至1P圖描繪輸入資料成為無損縮減形式之概念上的轉變,用於第1A至1G圖中所示之用於資料縮減的方法及設備之變化例。第1I圖描繪輸入資料之流如何被因子分解成為候選元件,且之後,候選元件如何被推定為主要資料元件或取得物元件。最後,資料被轉變成為無損縮減形式。第1I至1N圖顯示用於各種實施例之無損縮減形式的變化例。
第1I圖及第1J圖顯示由第1A圖中所描繪之方法及設備所產生的資料之無損縮減形式的實例。在第1I圖中的無損縮減形式包含內容相關映像器,且係致能對現有之主要資料元件的資料之連續進一步攝取及此資料之縮減的形式;另一方面,在第1J圖中的無損縮減形式不再保留內容相關映像器,而導致較小的資料足跡。第1K圖及第1L圖顯示由第1C圖中所描繪之方法及設備所產生的資料之無損縮減形式的實例。在第1K圖中的無損縮減形式包含內容相關映像器,且係致能對現有之主要資料元件及主要重建程式的資料之連續進一步攝取及此資料之縮減的形式;另一方面,在第1L圖中的無損縮減形式不再保留內容相關映像器,而導致較小的資料足跡。
第1M圖至第1N圖顯示由第1F圖中所描繪之方法及設備所產生的資料之無損縮減形式的實例,其中 主要資料元件及主要重建程式係直列地設置在提取之資料中。在第1M圖中的無損縮減形式包含內容相關映像器,且係致能對現有之主要資料元件及主要重建程式的資料之連續進一步攝取及此資料之縮減的形式;另一方面,在第1N圖中的無損縮減形式不再保留內容相關映像器,而導致較小的資料足跡。第1O圖及第1P圖顯示由第1G圖中所描繪之方法及設備所產生的資料之無損縮減形式的實例,其中主要資料元件及主要重建程式係直列地設置在提取之資料中或在主要資料篩中。在第1O圖中的無損縮減形式包含內容相關映像器,且係致能對現有之主要資料元件及主要重建程式的資料之連續進一步攝取及此資料之縮減的形式;另一方面,在第1P圖中的無損縮減形式不再保留內容相關映像器,而導致較小的資料足跡。
在第1A至1P圖中所示之實施例的變化例中,縮減之資料的各種組件可使用本項技藝中所已知之技術(諸如Huffman編碼,及Lempel Ziv法)而予以進一步縮減或壓縮,且以此壓縮形式儲存。該等組件可當它們需用於資料提取設備中之使用時,被隨後地解壓縮。此具有進一步縮減資料之整體足跡的優點。
第2圖描繪依據在此所敘述的一些實施例之藉由因子分解輸入資料成為元件,及自駐存在主要資料儲存中之主要資料元件取得該等元件之用於資料縮減的處理。當輸入資料到達時,它可被剖析且因子分解或拆散成為一串列的候選元件(操作202)。接著,候選元件係消 耗自輸入(操作204),以及主要資料儲存的內容相關查找係根據候選元件的內容而予以執行,用以查明其中可取得該候選元件之任何合適的元件是否存在(操作206)。若主要資料儲存並未發現任何該等元件時(操作208的“否”分支),則該候選元件將被配置及登錄至篩內,做為新的主要資料元件,且在提取之資料中被創造用於該候選元件的登錄將變成對該新創造之主要資料元件的參考資料(操作216)。若主要資料儲存的內容相關查找產生其中可潛在地取得該候選元件之一或多個合適的元件時(操作208的“是”分支),則在所檢索出之主要資料元件上執行分析及計算,以從它們取得該候選元件。應注意的是,在一些實施例中,僅用於合適之主要資料元件的元資料被首先提取,且分析係執行於該元資料上,而除非被推定有用,合適的主要資料元件才會被隨後提取(在該等實施例中,用於主要資料元件的元資料提供有關該主要資料元件之內容的一些資訊,而藉以使系統根據該元資料而快速排除匹配或評估可取得性)。在其他實施例中,主要資料儲存直接檢索主要資料元件(亦即,無需在檢索主要資料元件之前,先檢索元資料而分析該元資料),所以分析及計算係執行於所檢索出的主要資料元件上。
第一檢查係執行用以查明該候選者是否係該等元件之任一者的複製品(操作210)。此檢查可使用任一合適的散列技術而予以加快。若該候選者係與檢索自主要資料儲存之主要資料元件相同時(操作210的“是”分 支),則在提取之資料中被創造用於該候選者的登錄係由對此主要資料元件的參考資料,及此登錄係主要資料元件的指示所置換(操作220)。若並未發現到複製品時(操作210的“否”分支),則根據該候選元件而檢索自主要資料儲存之該等登錄被視為其中可潛在地取得該候選元件的登錄。以下係主要資料儲存之重要的、新穎的、及非顯而易知的特徵:當複製品並未在主要資料儲存之中被發現時,該主要資料儲存可回報的是,雖然與候選元件不相同,但主要資料元件係其中候選元件可藉由施加一或多個轉變至該主要資料元件而被潛在地取得的元件。該處理可接著執行分析及計算,用以自最合適的主要資料元件或合適的主要資料元件之組取得候選元件(操作212)。在一些實施例中,來歷表示候選元件為被執行於一或多個主要資料元件上之轉變的結果,該等轉變係統稱為重建程式。各來歷可要求其自身獨特的程式被建構。除了建構重建程式之外,該處理亦可計算距離度量,其一般指示用以儲存候選元件的重制定及自該重制定重建該候選元件所需之儲存資源及/或計算資源的層次。在一些實施例中,取得物元件的足跡係使用做為候選者與主要資料元件之距離的量度---特別地,距離度量可被界定為重建程式之尺寸加上對該來歷中所包含之一或多個主要資料元件的參考資料之尺寸的總和。具有最短距離的來歷可被選擇。用於此來歷之距離係與距離臨限值相比(操作214),且若該距離並未超過距離臨限值時,則該來歷被接受(操作214的“是”分 支)。為了要產生資料縮減,距離臨限值必須一直小於候選元件的尺寸。例如,距離臨限值可被設定為候選元件之尺寸的50%,使得只要來歷的足跡係小於或等於候選元件之尺寸的一半,該來歷就將被接受,而藉以確保其中合適的來歷存在之用於各候選元件之兩倍或更大的縮減。該距離臨限值可係根據使用者特定輸入或由系統所選擇的預定百分比或分數。該距離臨限值可根據系統的靜態或動態參數,而由系統所決定。一旦該來歷被接受,候選元件就由重建程式及對一或多個主要資料元件的參考資料之組合所重制定及置換。在提取之資料中被創造用於該候選元件的登錄係由該來歷所置換,亦即,它係由此係取得物元件的指示,伴隨有重建程式加上對包含在該來歷中之一或多個主要資料元件的參考資料所置換(操作218)。另一方面,若用於最佳來歷之距離超過距離臨限值時(操作214的“否”分支),則沒有可能的取得物將被接受。在該情況中,該候選元件可被配置及登錄至篩內,做為新的主要資料元件,且在提取之資料中被創造用於該候選元件的登錄將變成對該新創造之主要資料元件的參考資料,而伴隨有此係取得物元件的指示(操作216)。
最後,該處理可檢查是否有任何額外的候選元件(操作222),且若具有更多的候選元件時,則回到操作204(操作222的“是”分支),或若沒有更多的候選元件時,則終止該處理(操作222的“否”分支)。
種種方法可被採用以執行第2圖中之操作 202,亦即,剖析輸入資料且將其拆散成為候選元件。因子分解演算需決定位元組流中之何處應插入分隔符以切片該流成為候選元件。可能的技術包含(但未受限於)拆散該流成為固定尺寸區塊(諸如4096位元組的網頁),或施加指紋圖譜之方法(諸如施加隨機的質多項式至輸入流的子字符串)用以在資料流中設置合適的指紋圖譜而變成元件的邊界(此技術可導致可變尺寸元件),或剖析該輸入以偵測標頭或某些預宣告結構並根據此結構而描繪元件。該輸入可被剖析以偵測透過輪廓所宣告的某一結構。該輸入可被剖析以偵測資料中之預宣告圖案、語法、或正規表示的存在。一旦已識別出資料中之兩個接連的分隔符,候選元件就被產生(該候選元件係設置在兩個接連的分隔符之間的資料),且被提交至主要資料儲存,用於內容相關查找。若創造出可變尺寸元件時,則候選元件的長度需被指明及登載為伴隨有候選元件之元資料。
主要資料儲存之一重要功能在於根據所提交至它的候選元件而提供內容相關查找,且快速提供一或小的組之主要資料元件,其中候選元件可以以用以指明來歷所需的最小儲存自它取得。此係給大的資料集之一大難題。鑒於甚至具有千個位元組尺寸之元件的萬億個位元組之資料,存在有數十億個元件要自該資料搜尋及選擇。在更大的資料集上,該問題甚至更為嚴重。為了要能快速提供小的組之合適的主要資料元件,使用合適的技術以組織及排列該等元件,且接著,在該等元件的該組織內偵測相 似性及可取得性,就變得重要。
在篩中之登錄可根據各元件(亦即,主要資料元件)的值而被排列,以致使所有的登錄可藉由值而以上升或下降的順序配置。選擇性地,它們可沿著其係根據元件中之某些欄的值之主軸,其次藉由使用該元件之內容的剩餘部分之下屬軸,而被排列。在此情況中,欄係來自元件的內容之一組相連的位元組。欄可藉由對元件的內容施加指紋圖譜之方法而予以設置,以致使指紋的位置識別欄的位置。選擇性地,在元件的內容之內的某些固定之偏移量可被選擇以設置欄。其他的方法亦可被採用以設置欄,包含但不限於剖析元件以偵測某一宣告的結構並在該結構之內設置欄。
在組織的又另一形式中,在元件內的某些欄或欄的組合可被視為尺寸,以致使該等尺寸隨後之各元件的內容之剩餘部分的級聯可被使用以排列和組織資料元件。大體上,在欄與尺寸之間的對應關係或映像可係任意地複雜。例如,在某些實施例中,正好一欄可映像至正好一尺寸。在其他實施例中,例如,F1、F2、及F3之多個欄的組合可映像至尺寸。欄的組合可藉由級聯兩個欄,或藉由施加任何其他合適的功能至它們而予以達成。重要的需求在於,被使用以組織元件之元件的欄、尺寸,及內容剩餘部分的配置必須使所有的主要資料元件變成能由它們的內容所唯一識別,且能在篩中被排列。
在一些實施例中,元件的內容可被表示成如 下之表達式:元件=Head.*sig1.*sig2.*...sigI.*...sigN.*Tail,其中“標頭(Head)”係包含元件之前導位元組的位元組序列,“尾部(Tail)”係包含元件之結束位元組的位元組序列,以及“sig1”、“sig2”、“sigI”、及“sigN”係賦予元件特徵之元件內容本體內的某些長度之位元組的種種簽名、或圖案、或正規表示、或序列。在各種簽名之間的“*”表示係通配符表示,其係允許除了在“*”表示之後的簽名外之任何數目的任何值之插入位元組的正規表達符號。在一些實施例中,N元組(sig1,sig2,...sigI,...sigN)係稱作元件的骨幹資料結構或骨架,且可被視為元件之縮減的及根本的子集或本質。在其他的實施例中,(N+2)元組(Head,sig1,sig2,...sigI,...sigN,Tail)被稱作元件的骨幹資料結構或骨架。選擇性地,可採用N+1元組,其包含Head或Tail,而伴隨有該等簽名的剩餘部分。
可將指紋圖譜之方法施加至元件的內容,用以決定該元件內容之內的骨幹資料結構之各種組件(或簽名)的位置。選擇性地,在元件的內容之內的某些固定之偏移量可被選擇以設置組件。其他的方法亦可被採用以設置骨幹資料結構之組件,包含但不限於剖析元件以偵測某一宣告的結構並在該結構之內設置組件。主要資料元件可根據骨幹資料結構而在篩中被排列。換言之,元件的骨幹資料結構之各種組件可被視為尺寸,以致使該等尺寸隨後之各元件的內容之剩餘部分的級聯可被使用以在篩中排列 和組織主要資料元件。
一些實施例因子分解輸入資料成為候選元件,其中各候選元件的尺寸係實質大於用以存取全盤資料集中之所有該等元件所需之參考資料的尺寸。關於被拆散成為該等資料塊之資料(且其將以內容相關方式存取)的一意見在於,相對於資料塊可指明之全部可能的值,實際資料係非常稀疏的。例如,考慮1千萬億兆個位元組的資料集。用以定址該資料集中之每個位元組大約需要70個位元。就一個尺寸為128個位元組(1024個位元)的資料塊而言,在1千萬億兆個位元組的資料集中,約具有263個資料塊,以致需要63個位元(少於8位元組)以定址所有該等資料塊。應注意的是,1024個位元的元件或資料塊可具有21024個可能的值之一者,而在資料集中之給定資料塊的實際值之數目係最大263(若所有該等資料塊係不同時)。此指示的是,相對於可由元件之內容所達到或命名的值之數目,實際資料係極稀疏。此致能樹狀結構的使用,該樹狀結構係非常適合於以可致能有效率之內容為主查找的方式組織非常稀疏之資料,允許新的元件被有效率地添加至該樹狀結構,以及就用於該樹狀結構本身所需之增量的儲存而言,係經濟有效的。雖然在1千萬億兆個位元組的資料集中僅具有263個資料塊,因而僅需要63個不同位元的資訊以告訴它們分開,但相關聯之不同的位元可能散佈在元件之整個的1024個位元之範圍,且發生在各元件之不同位置處。因此,僅從內容檢驗固定的 63個位元係不夠的,反而是,元件的整個內容需參與該等元件的排序,特別地,需參與其中對資料集中之任何及每個元件提供真正內容相關存取的解決方案。在資料提取(Data DistillationTM)架構中,能在被使用以排列及組織資料的架構內偵測出可取得性係所欲的。應謹記所有上述,根據內容的樹狀結構(當檢驗更多的內容時,其逐步區分資料)係用以排列及區分所因子分解之資料集中的所有元件之合適組織。該結構提供許多中間層次的子樹狀物,其可被處理成可取得元件之組群或具有相似性質之可取得性的元件之組群。該結構可以以顯示各子樹狀物之特徵的元資料,或以顯示資料的各元件之特徵的元資料階層地增加。該結構可有效地連繫其所包含之整個資料的組成,包含資料中之實際值的密度、鄰近度、及分佈。
一些實施例以樹狀形式組織篩中的主要資料元件。各主要資料元件具有不同“名稱”,其係由該主要資料元件的整個內容所建構。此名稱係設計成為足以唯一地識別該主要資料元件,且相對於樹狀物中的所有其他元件而區分它。有其中該名稱可由主要資料元件之內容所建構的若干方式。該名稱可單純地包含主要資料元件的所有位元組,而該等位元組以與它們在主要資料元件中所存在的相同順序呈現在該名稱中。在另一實施例中,被稱作尺寸的某些欄或欄的組合(其中欄和尺寸係如稍早所敘述的)係使用以形成名稱的前導位元組,而主要資料元件之內容的剩餘部分則形成名稱的剩餘部分,以致使主要資料元件 的整個內容參與而創造出元件之完整且唯一的名稱。在又另一實施例中,元件之骨幹資料結構的欄被選擇做為尺寸(其中欄和尺寸係如稍早所敘述的),且被使用以形成名稱的前導位元組,而主要資料元件之內容的剩餘部分則形成名稱的剩餘部分,以致使主要資料元件的整個內容參與而創造出元件之完整且唯一的名稱。
各主要資料元件的名稱係使用以在樹狀物中排列及組織主要資料元件。對於最實際的資料組,即使在尺寸上係非常大之該等者(諸如1千萬億兆個位元組,包含比如說,4KB大小的258個元件),所期望的是,名稱的該等位元組之小的子集將時常用以排序及排列樹狀物中之大部分的主要資料元件。
第3A、3B、3C、3D及3E圖描繪依據在此所敘述的一些實施例之不同的資料組織系統,其可使用以根據主要資料元件名稱而組織它們。
第3A圖顯示線索資料結構,其中主要資料元件係根據來自各主要資料元件的名稱之連續位元組的值,而被組織成為逐步更小的組群。在第3A圖中所示的實例中,各主要資料元件具有不同的名稱,其係由主要資料元件之整個內容所建構,且此名稱單純地包含主要資料元件的所有位元組,而該等位元組以與它們在主要資料元件中所存在的相同順序呈現在該名稱中。該線索之根節點表示所有的主要資料元件。該線索之其他節點表示主要資料元件的子集或組群。從線索的根節點或第一層次開始(在第 3A圖中被標記為根302),主要資料元件係根據它們名稱之最高有效位元組的值而被組群成為子樹狀物(在第3A圖中被標記為N1)。在它們名稱之最高有效位元組中具有相同值的所有主要資料元件將被一起組群成為共同子樹狀物,且由該值所表示之鏈路將存在於自根節點至表示該子樹狀物的節點。例如,在第3A圖中,節點303表示主要資料元件的子樹狀物或組群,其各在它們個別名稱之它們的最高有效位元組N1中具有相同的值2。在第3A圖中,此組群包含主要資料元件305、306、及307。
在線索的第二層次,各主要資料元件之名稱的第二高有效位元組係使用以進一步劃分該主要資料元件之各組群成為更小的子組群。例如,在第3A圖中,由節點303所表示之主要資料元件的組群係使用第二高有效位元組N2,而被進一步劃分成為子組群。節點304表示主要資料元件的子組群,其在它們的最高有效位元組N1中具有值2,且亦在它們個別名稱之它們的第二高有效位元組N2中具有值1。此組群包含主要資料元件305及306。
子劃分繼續在該線索的各層次處處理,而創造出從父節點到各子節點的鏈路,其中子節點代表由父節點所表示之主要資料元件的子集。此處理持續著,直到該線索的葉狀物處僅具有個別的主要資料元件為止。葉狀節點表示葉的組群。在第3A圖中,節點304係葉狀節點。由節點304所表示之主要資料元件的組群包含主要資料元件305及306。在第3A圖中,此組群係使用它們名稱之 第三高有效位元組,而被進一步劃分成為個別的主要資料元件305及306。N3=3的值導致主要資料元件305,而N3=5的值導致主要資料元件306。在此實例中,在它們整個名稱中,僅3個有效位元組就足以完全地識別主要資料元件305及306。同樣地,僅從名稱的兩個有效位元組就足以識別主要資料元件307。
此實例描繪僅只名稱之位元組的子集如何在給定混合的主要資料元件中用以識別樹狀物中之主要資料元件,且整個名稱並不需要到達單獨的主要資料元件。再者,主要資料元件或主要資料元件的組群可各自要求不同數目的位元組,以便能獨特地識別它們。因此,自根節點至主要資料元件之線索的深度可自一主要資料元件變化至另一者。而且,各節點可具有下降至底下之子樹狀物的不同數目之鏈路。
在該線索中,各節點具有名稱,其包含指明如何到達此節點之位元組的序列。例如,用於節點304的名稱係“21”。而且,來自元件的名稱之其唯一識別樹狀物中的元件之目前分佈中的元件之位元組的子集係,從根節點到此主要資料元件的“路徑”。例如,在第3A圖中,具有213之值的路徑301識別主要資料元件305。
在此所敘述之線索結構可創造出深厚的樹狀物(亦即,具有許多層次的樹狀物),因為在樹狀物中的元件名稱之每個不同的位元組將添加一層次之深度至該線索。
應注意的是,在第3A至3E圖中之樹狀資料結構已從左邊予以繪製到右邊。因此,當我們從圖式的左側移動到圖式的右側時,我們將從樹狀物的高層次移動到樹狀物的低層次。在給定的節點底下(亦即,朝向第3A至3E圖中之給定節點的右邊),對於藉由來自名稱之不同位元組的確定值而被選擇的任何子節點,駐存在該子節點底下之子樹狀物中的所有元件將在元件名稱中之該對應位元組中具有相同的值。
我們現在敘述當給定輸入候選元件時之用於線索結構的內容相關查找之方法。此方法包含使用候選元件的名稱之線索結構的導航,其次藉由隨後的分析和篩查以決定應回報何者做為整體之內容相關查找的結果。換言之,線索導航處理回報第一輸出,且然後,分析和篩查被執行於該輸出上,而決定整體之內容相關查找的結果。
在開始該線索導航處理中,來自候選元件的名稱之最高有效位元組的值將被使用以選擇從根節點到隨後之節點的鏈路(由該值所表示),該隨後之節點表示在該等主要資料元件之名稱的最高有效位元組中具有該相同值之主要資料元件的子樹狀物。自此節點出發,來自候選元件的名稱之第二位元組被檢驗,且由該值所表示的鏈路被選擇,而藉以推動更深(或更下方)一層次至該線索之內,且選擇更小之子組群的主要資料元件,該更小之子組群的主要資料元件目前與該候選元件共有著來自名稱之至少兩個有效位元組。此處理持續著,直至到達單一的主要 資料元件,或直到並無鏈路匹配於來自候選元件的名稱之對應位元組的值為止。在該等情形的任一者之下,若到達單一的主要資料元件時,則可將其回報當做線索導航處理的輸出。若並未到達時,則一選擇例係報告“失敗”。另一選擇例係回報多個主要資料元件,而該多個主要資料元件係在被植根於其中該導航終止之節點處的子樹狀物中。
一旦該線索導航處理已終止,其他的準則及要求就可被使用以分析和篩查該線索導航處理的輸出,而決定應回報何者做為該內容相關查找的結果。例如,當單一主要資料元件或多個主要資料元件係由線索導航處理所回報時,則可具有額外的要求,其中在給予將被回報做為該內容相關查找的結果之資格前,它們與該候選元件的名稱共享某一最小數量的位元組(否則,該內容相關查找回報失敗)。篩查要求的另一實例可係其中,若該線索導航處理終止而未到達單一的主要資料元件,以致使多個主要資料元件(被植根於其中該線索導航終止之節點處)被回報做為線索導航處理的輸出時,則除非該等元件的數量小於某一特定的限制值,該等多個主要資料元件才將被給予回報做為該內容相關查找的結果之資格(否則,該內容相關查找回報失敗)。多個要求的組合可被採用以決定內容相關查找的結果。在此方式中,查找處理將報告“失敗”或回報單一主要資料元件,或者若非單一的主要資料元件時,則主要資料元件之組可能成為用以取得該候選元件之好的起點。
下文所描述的第3B至3E圖有關第3A圖中所描繪之樹狀資料結構的變化例和修正例。雖然該等變化例提供凌駕於第3A圖中所描繪之線索資料結構的增進及優點,但用以導航該資料結構的處理係與上文參照第3A圖所敘述的處理相似。也就是說,在用於第3B至3E圖中所示之樹狀資料結構的導航終止,且隨後的分析和篩查被執行以決定整體之內容相關查找的結果之後,整個處理回報失敗、單一的主要資料元件、或可能成為用以取得該候選元件之好的起點之主要資料元件的組。
第3B圖描繪另一資料組織系統,其可被使用以根據主要資料元件的名稱而組織它們。在第3B圖中所示的實例中,各主要資料元件具有不同的名稱,其係由主要資料元件之整個內容所建構,且此名稱單純地包含主要資料元件的所有位元組,而該等位元組以與它們在主要資料元件中所存在的相同順序呈現在該名稱中。第3B圖顯示更精緻的結構,其中單一鏈路採用來自主要資料元件之名稱的多個位元組(而非第3A圖中之線索中所使用的單一位元組)於下面的子樹狀物中,而創造出子劃分或下一層次的組群。從父節點到子節點的鏈路現在係由多個位元組所表示。進一步地,從任一給定的父節點起,各鏈路可採用不同數目的位元組,用以區分及識別與該鏈路相關聯的子樹狀物。例如,在第3B圖中,從根節點到節點308的鏈路係藉由來自名稱的4個位元組(N1N2N3N4=9845)而予以區分,且同時,從根節點到節點309的鏈路係由來 自名稱的3個位元組(N1N2N3=347)所區分。
應注意的是,在樹狀導航之期間(使用來自給定之候選元件的內容),一旦到達樹狀物中之任一父節點,該樹狀導航處理就需確保的是,來自候選元件之名稱的足夠位元組被檢驗,以便明白地決定要選擇那一個鏈路。為了要選擇給定的鏈路,來自候選元件之名稱的該等位元組必須與對該特殊鏈路之躍遷所指示的所有位元組匹配。再說一次地,在該樹狀物中,樹狀物的各節點具有名稱,其包含位元組之序列,用以指明如何到達此節點。例如,節點309的名稱可係“347”,因為它代表具有其名稱之3個前導位元組為347的主要資料元件之組群(例如,元件311及312)。在使用具有名稱之前導3個位元組為347的候選元件之樹狀查找時,此資料圖案致使樹狀導航處理到達節點309,如第3B圖中所示。再說一次地,來自元件的名稱之其唯一識別樹狀物中的元件之目前分佈中的元件之位元組的子集係,從根節點到此主要資料元件的“路徑”。例如,在第3B圖中,位元組的序列3475導致主要資料元件312,且在該實例中所示之混合的主要資料元件中唯一地識別主要資料元件312。
對於多樣性和稀疏的資料,在第3B圖中的樹狀結構可提供比第3A圖的線索結構更多的彈性和精緻。
第3C圖描繪另一資料組織系統,其可被使用以根據主要資料元件的名稱而組織它們。在第3C圖中所示的實例中,各主要資料元件具有不同的名稱,其係由主 要資料元件之整個內容所建構,且此名稱單純地包含主要資料元件的所有位元組,而該等位元組以與它們在主要資料元件中所存在的相同順序呈現在該名稱中。第3C圖顯示另一變化例(對第3B圖中所描述的組織),其藉由使用正規表示(其中必要且/或有用),以指明來自主要資料元件的名稱之導致各種鏈路的值,而使樹狀物或子樹狀物中的組群元件進一步精緻化。該正規表示的使用允許在相同的子樹狀物下之對應位元組上,所共享相同表示之元件的有效率組群;此可接著由子樹狀物內之不同主要資料元件的更多局部之澄清所跟隨。而且,該正規表示的使用允許更精緻之方式以描述用以映像元件至底下任一子樹狀物所需之位元組的值。此進一步降低用以指明樹狀物所需之位元組的數目。例如,正規表示318指明28個連續“F”的圖案;若在樹狀導航的期間跟隨著此鏈路,則可到達元件314,其包含具有按正規表示318之28個連續“F”的圖案320。同樣地,到達元件316的路徑具有鏈路或分支,其使用指明具有16個連續“0”之圖案的正規表示。對於該樹狀物,樹狀導航處理需偵測和執行該等正規表示,以便決定要選擇那一個鏈路。
第3D圖描繪另一資料組織系統,其可被使用以根據主要資料元件的名稱而組織它們。在第3D圖中所示的實例中,各主要資料元件具有不同的名稱,其係由主要資料元件之整個內容所建構。指紋圖譜之方法係施加至各元件,用以識別其中包含評估為選定指紋圖譜之欄的位 置。在元件中所發現的第一指紋圖譜之位置處的欄係視為尺寸,且來自此欄之某一數目的位元組(比方說,x個位元組,其中x係顯著地小於該元件中之位元組的數目)被提取及使用做為元件之名稱的前導位元組,而名稱之位元組的剩餘部分包含主要資料元件之位元組的剩餘部分,並以它們在主要資料元件中所存在之相同的循環順序呈現。此名稱係使用以在樹狀物中組織主要資料元件。在此實例中,當在元件中並未偵測出指紋圖譜時,則名稱係藉由單純地使用元件的所有位元組而以其中它們在元件中所存在的順序制定。個別的子樹狀物(由並未發現指紋圖譜的指示所表示)根據元件之它們的名稱而保持和組織所有該等元件。
例如,如第3D圖中所示,指紋圖譜技術可被施加至元件338(其包含t個位元組的資料,亦即,B1 B2B3...Bt),用以在位元組Bi+1獲得指紋圖譜位置“指紋圖譜1”,而識別將被選定為“尺寸1”的欄。接著,從“指紋圖譜1”所識別之位置起的x個位元組可被提取以形成“尺寸1”,且該等x個位元組可被使用做為第3D圖中之各元件的名稱之前導位元組N1 N2...Nx。之後,來自元件338之剩餘部分的t-x個位元組(自Bi+x+1開始,且稍後繞回至B1 B2 B3...Bi)被級聯及使用做為名稱之剩餘部分的位元組Nx+1 Nx+2...Nt。當在元件中並未發現指紋圖譜時,則名稱N1 N2...Nt係單純地來自元件338的B1 B2 B3...Bt。主要資料元件係使用它們的名稱而在樹狀物中被排序 和組織。例如,主要資料元件(PDE)330係在使用路徑13654...06而遍歷樹狀物的兩層次之後識別及到達,其中該等位元組13654...0係N1 N2...Nx,其係來自尺寸1的位元組。沿著鏈路334而由根所到達之節點335處的個別子樹狀物(由並未發現指紋圖譜的指示所表示),保持及組織其內容並未評估為選定指紋圖譜的所有主要資料元件。因此,在此組織中,例如,鏈路336之某些鏈路可使用其包含以與元件中相同之順序所呈現的元件之位元組的名稱,以組織元件,而例如,鏈路340之其他鏈路可使用其係使用指紋圖譜而被制定的名稱,以組織元件。
在接收到候選元件時,處理施加上述相同之技術以決定該候選元件的名稱,且使用此名稱而導航樹狀物,以供內容相關查找之用。因此,相同且一致的處理被施加至主要資料元件(在將它們安裝至樹狀物之內時),及至候選元件(在從剖析及因子分解器接收到它們時),以便創造出它們的名稱。樹狀導航處理使用候選元件的名稱以導航樹狀物。在此實施例中,若在候選元件中並未發現指紋圖譜時,該樹狀導航處理向下導航至子樹狀物,其中該子樹狀物組織及包含其內容並未評估為指紋圖譜的主要資料元件。
第3E圖描繪另一資料組織系統,其可被使用以根據主要資料元件的名稱而組織它們。在第3E圖中所示的實例中,各主要資料元件具有不同的名稱,其係由主要資料元件之整個內容所建構。指紋圖譜之方法係施加至 各元件,用以識別其中包含評估為兩個指紋圖譜之任一者的內容之欄的位置。在元件中之第一指紋圖譜(在第3E圖中之指紋圖譜1)的第一出現之位置處的欄係視為第一尺寸(尺寸1),以及設置在第二指紋圖譜(在第3E圖中之指紋圖譜2)的第一出現處的欄係視為第二尺寸(尺寸2)。用以尋找兩個不同指紋圖譜之指紋圖譜的使用導致四種可能的設想情況:(1)該兩個指紋圖譜均在元件中被發現;(2)指紋圖譜1被發現,但指紋圖譜2並未被發現;(3)指紋圖譜2被發現,但指紋圖譜1並未被發現;以及(4)沒有指紋圖譜被發現。主要資料元件可被組群成為對應該等設想情況之各者的四個子樹狀物。在第3E圖中,“FP1”表示指紋圖譜1之存在,“FP2”表示指紋圖譜2之存在,“~FP1”表示指紋圖譜1之缺席,以及“~FP2”表示指紋圖譜2之缺席。
對於該四種設想情況之各者,元件的名稱係如下地創造出:(1)當該兩個指紋圖譜均被發現時,從“指紋圖譜1”所識別之位置起的x個位元組可被提取以形成“尺寸1”,且從“指紋圖譜2”所識別之位置起的y個位元組可被提取以形成“尺寸2”,以及該等x+y個位元組可被使用做為第3E圖中之各該元件的名稱之前導位元組N1N2...Nx+y。之後,來自元件348之剩餘部分的t-(x+y)個位元組係以循環方式提取(在從第一尺寸的該等位元組之後開始),且被級聯及使用做為名稱之剩餘部分的位元組Nx+y+1Nx+y+2...Nt。(2)當非指紋圖譜2,而 是指紋圖譜1被發現時,從“指紋圖譜1”所識別之位置起的x個位元組可被提取以形成前導尺寸,且該等x個位元組可被使用做為各該元件的名稱之前導位元組N1N2...Nx。之後,來自元件348之剩餘部分的t-x個位元組(自Bi+x+1開始,且稍後繞回至B1B2B3...Bi)被級聯及使用做為名稱之剩餘部分的位元組Nx+1Nx+2...Nt。(3)當非指紋圖譜1,而是指紋圖譜2被發現時,從“指紋圖譜2”所識別之位置起的y個位元組可被提取以形成前導尺寸,且該等y個位元組可被使用做為各該元件的名稱之前導位元組N1N2...Ny。之後,來自元件348之剩餘部分的t-y個位元組(自Bj+x+1開始,且稍後繞回至B1B2B3...Bj)被級聯及使用做為名稱之剩餘部分的位元組Ny+1Ny+2...Nt。(4)當在元件中並未發現指紋圖譜時,則名稱N1N2...Nt係單純地來自元件348的B1B2B3...Bt。因此,個別的子樹狀物存在以供該等四種設想情況之用。用以提取用於元件348之名稱(N1N2N3...Nt)的處理可針對該四種設想情況而被概述如下:
(1)指紋圖譜1及指紋圖譜2二者均被發現:N1-Nx←Bi+1-Bi+x=來自尺寸1之x個位元組Nx+1-Nx+y←Bj+1-Bj+y=來自尺寸2之y個位元組Nx+y+1...Nt=剩餘部分的位元組(來自尺寸t個位元組之候選元件)=Bi+x+1Bi+x+2Bi+x+3...BjBj+y+1Bj+y+2Bj+y+3...BtB1B2B3...Bi
(2)指紋圖譜1被發現,但指紋圖譜2並未被發 現:N1-Nx←Bi+1-Bi+x=來自尺寸1之x個位元組Nx+1...Nt=剩餘部分的位元組(來自尺寸t個位元組之候選元件)=Bi+x+1Bi+x+2Bi+x+3...BtB1B2B3...Bi
(3)指紋圖譜2被發現,但指紋圖譜1並未被發現:N1-Ny←Bj+1-Bj+y=來自尺寸2之y個位元組Ny+1...Nt=剩餘部分的位元組(來自尺寸t個位元組之候選元件)=Bj+y+1Bj+y+2Bj+y+3...BtB1B2B3...Bj
(4)沒有指紋圖譜被發現N1-Nx←B1-Bt
在接收到候選元件時,處理施加上述相同之技術以決定該候選元件的名稱。在此實施例中,上述名稱結構的4個方法(根據指紋圖譜1及指紋圖譜2是否被發現)係施加至候選元件,正如當它們進入至篩之中時,它們係用於主要資料元件。因此,相同且一致的處理被施加至主要資料元件(在將它們安裝至樹狀物之內時),及至候選元件(在從剖析及因子分解器接收到它們時),以便創造出它們的名稱。樹狀導航處理使用候選元件的名稱而導航樹狀物,以供內容相關查找之用。
若內容相關查找成功時,則將在特定尺寸之位置處產生具有與候選元件相同圖案的主要資料元件。例如,若在候選元件中發現該等指紋圖譜二者時,則該樹狀導航處理將從根節點開始而向下到樹狀物之鏈路354。若 候選元件具有圖案“99...3”做為‘尺寸1”以及圖案“7...5”做為‘尺寸2”時,該樹狀導航處理將到達節點334。此到達包含兩個主要資料元件(PDE352及PDE353)的子樹狀物,該兩個主要資料元件可能係用於來歷之目標。額外的分析及篩查係執行(藉由首先檢驗元資料,且視需要地,藉由隨後提取及檢驗實際的主要資料元件),用以決定那一個主要資料元件係最佳地適用於該來歷。因而,在此所敘述之實施例將識別可被使用於篩中的各種樹狀結構。該等結構或其變化例的組合可被採用以組織該等主要資料元件。某些實施例以樹狀形式組織該等主要資料元件,其中元件的整個內容係使用做為該元件的名稱。惟,其中位元組呈現在元件的名稱中之序列無需一定要是其中該等位元組出現在該元件之中的序列。元件的某些欄係提取做為尺寸且被使用以形成名稱的前導位元組,以及元件之剩餘部分的位元組則補足名稱的剩餘部分。使用該等名稱,該等元件可以以樹狀形式排列於篩中。名稱的前導數字係使用以區分樹狀物之較高的分支(或鏈路),以及剩餘部分的數字則被使用以逐步地區分該樹狀物的所有分支(或鏈路)。樹狀物的各節點可具有從該節點所發出之不同數目的鏈路。而且,來自節點之各鏈路可藉由不同數目的位元組而予以區分和表示,以及該等位元組之說明可透過用以表達它們的規格之正規表示及其他有力方式的使用而被完成。所有該等特徵導致精緻的樹狀結構。在樹狀物的葉狀節點處駐存著對個別之主要資料元件的參考資料。
在一實施例中,指紋圖譜的方法可被施加至包含主要資料元件的位元組。駐存在由指紋圖譜所識別之位置處的若干位元組可被使用以組成元件名稱的組件。一或多個組件可結合以提供尺寸。多個指紋圖譜可被使用以識別多個尺寸。該等尺寸係級聯且使用做為元件之名稱的前導位元組,而元件之剩餘部分的位元組構成元件之剩餘部分的名稱。因為該等尺寸係設置在由指紋圖譜所識別之位置處,所以可增加名稱將由來自各元件之一致內容所形成的可能性。在由指紋圖譜所設置的欄處具有相同值之內容的元件,將沿著樹狀物之相同的腿而被組群在一起。在此方式中,相似的元件將在樹狀資料結構中被組群在一起。在它們之中所發現之不具有指紋圖譜的元件可使用它們名稱之替代的制定,而被一起組群在個別的子樹狀物中。
在一實施例中,指紋圖譜的方法可被施加至元件之內容,用以決定元件之內容內的骨幹資料結構(如稍早所敘述)之各種組件(或簽名)的位置。選擇性地,在元件之內容內之某些固定的偏移可被選擇以設置組件。其他的方法亦可被採用以設置元件之骨幹資料結構的組件,包含但未受限於,剖析元件以偵測出某一宣告的結構,且設置組件於該結構之內。元件之骨幹資料結構的各種組件可被視為尺寸,以致使各元件之剩餘部分的內容所跟隨之該等尺寸的級聯被使用以創造出各元件的名稱。該名稱係使用以在樹狀物中排列及組織該等主要資料元件。
在另一實施例中,元件被剖析以便偵測出元件中的某一結構。在此結構中之某些欄係識別做為尺寸。多個該等尺寸係級聯且使用做為名稱的前導位元組,而元件之剩餘部分的位元組構成元件之剩餘部分的名稱。因為該等尺寸係設置在藉由剖析元件及偵測其結構而予以識別的位置處,所以可增加名稱將由來自各元件之一致內容所形成的可能性。在藉由該剖析而予以設置的欄處具有相同值之內容的元件,將沿著樹狀物之相同的腿而被組群在一起。在此方式中,相似的元件將在樹狀資料結構中被組群在一起。
在某些實施例中,在樹狀資料結構中的各節點包含自描述規格。樹狀節點具有一或多個子。各子登錄包含在對該子之鏈路上的不同位元組上的資訊,及對該子節點的參考資料。子節點可係樹狀節點或葉狀節點。第3F圖呈現依據在此所敘述的一些實施例之自描述樹狀節點資料結構。在第3F圖中所示的樹狀節點資料結構指明(A)有關從根節點到此樹狀節點之路徑的資訊,包含所有以下之組件,或以下之組件的子集:用以到達此樹狀節點之來自名稱的實際位元組序列,用以從根節點到達此節點所消耗之名稱的位元組數目,所消耗之此位元組數目是否大於某一預指明臨限值的指示,以及描述對此節點的路徑,且有用於樹狀物之內容相關搜尋及有用於關於樹狀物之結構的決定之其他的元資料;(B)該節點所具有的子數目;(C)對於各子(其中各子對應樹狀物的分支), 將指明(1)子ID,(2)來自名稱以後的位元組所需之不同位元組的數目,以便向下躍遷至樹狀物之此鏈路,(3)用以記下此鏈路之來自名稱的位元組之實際值的規格,以及(4)對該子節點的參考資料。
第3G圖呈現依據在此所敘述的一些實施例之自描述葉狀節點資料結構。葉狀節點具有一或多個子。各子係對主要資料元件之鏈路。各子登錄包含在對該主要資料元件之鏈路上的不同位元組上的資訊,對該主要資料元件的參考資料,以及有關該主要資料元件之複製品和取得物的計數及其他的元資料。在第3G圖中所示的葉狀節點資料結構指明(A)有關從根節點到此葉狀節點之路徑的資訊,包含所有以下之組件,或以下之組件的子集:用以到達此葉狀節點之來自名稱的實際位元組序列,用以從根節點到達此節點所消耗之名稱的位元組數目,所消耗之此位元組數目是否大於某一預指明臨限值的指示,以及描述對此節點的路徑,且有用於樹狀物之內容相關搜尋及有用於關於樹狀物之結構的決定之其他的元資料;(B)該節點所具有的子數目;(C)對於各子(其中各子對應該葉狀節點之下的主要資料元件),將指明(1)子ID,(2)來自名稱以後的位元組所需之不同位元組的數目,以便向下躍遷樹狀物之此鏈路至主要資料元件,(3)用以記下此腿之來自名稱的位元組之實際值的規格,(4)對在樹狀物之此路徑上終止該樹狀物的主要資料元件的參考資料,(5)有多少複製品和取得物正指向此主要資料 元件的計數(此係使用以確定當刪除儲存系統中之資料時,登錄是否可自篩刪除),以及(6)用於該主要資料元件的其他元資料,包含主要資料元件之尺寸,等等。
為了要增加其中新的主要資料元件被安裝至樹狀物之內的效率,某些實施例合併額外的欄至葉狀節點資料結構之內,以供被保存在該樹狀物之該葉狀節點處的各主要資料元件之用。應注意的是,當新的元件必須被插入至樹狀物之內時,在該樹狀物中可能需要該等主要資料元件之各者的名稱或內容之額外的位元組,以便決定要在子樹狀物中的何處插入該新的元件,或者是否要觸發該子樹狀物的進一步分區。對於該等額外位元組的需求,可要求提取該等主要資料元件的若干者,以便相對於該新的元件而提取該等元件的各者之相關聯的不同位元組。為了要降低及最佳化(且在大多數的情況中,完全地消除)此任務所需之IO的數目,在葉狀節點中的資料結構包含來自各主要資料元件的名稱之一定數目的額外位元組於該葉狀節點之下。該等額外的位元組係稱作導航先行位元組,且相對於新的輸入元件而協助排序該等主要資料元件。用於給定之主要資料元件的導航先行位元組係在安裝該主要資料元件至篩內時,被安裝至葉狀節點結構內。將被保留用於此目的之位元組的數目可使用各種準則而予以靜態或動態地選擇,包含,所包含之子樹狀物的深度及在該子樹狀物中之主要資料元件的密度。例如,對於將被安裝在樹狀物中之淺的層次處之主要資料元件,解決方法可添加比用 於駐存在很深的樹狀物中之主要資料元件更長的導航先行欄。而且,當新的元件將被安裝至篩之內,且若已有許多主要資料元件在現有的目標子樹狀物之中時(增加即將來臨之重新分區的可能性),則當新的主要資料元件將被安裝至該子樹狀物之內時,額外的導航先行位元組可被保留用於該新的主要資料元件。
第3H圖呈現用於葉狀節點的葉狀節點資料結構,其包含導航先行欄。此資料結構指明(A)有關從根節點到此葉狀節點之路徑的資訊,包含所有以下之組件,或以下之組件的子集:用以到達此葉狀節點之來自名稱的實際位元組序列,用以從根節點到達此節點所消耗之名稱的位元組數目,所消耗之此位元組數目是否大於某一預指明臨限值的指示,以及描述對此節點的路徑,且有用於樹狀物之內容相關搜尋及有用於關於樹狀物之結構的決定之其他的元資料;(B)該節點所具有的子數目;(C)對於各子(其中各子對應該葉狀節點之下的主要資料元件),將指明(1)子ID,(2)來自名稱以後的位元組所需之不同位元組的數目,以便向下躍遷樹狀物之此鏈路至主要資料元件,(3)用以記下此腿之來自名稱的位元組之實際值的規格,(4)對在樹狀物之此路徑上終止該樹狀物的主要資料元件的參考資料,(5)指明有多少導航先行的位元組被保留用於主要資料元件的導航先行欄,及該等位元組的實際值,(6)有多少複製品和取得物正指向此主要資料元件的計數(此係使用以確定當刪除儲存 系統中之資料時,登錄是否可自篩刪除),以及(7)用於該主要資料元件的其他元資料,包含主要資料元件之尺寸,等等。
在某些實施例中,樹狀物的各種分支係使用以映像各種資料元件成為組群或範圍,該等組群或範圍係藉由解讀沿著鏈路通往子子樹狀物之不同的位元組做為定界符而被形成。在該子子樹狀物中的所有元件將變成,使得元件中之對應位元組的值小於或等於被指明用於對特殊之子子樹狀物的鏈路之不同位元組的值。因此,各子樹狀物現將表示其值落在特定範圍內之元件的組群。在給定的子樹狀物內,樹狀物之各隨後的層次將逐步地劃分元件之組成為較小的範圍。此實施例提供不同的解讀至第3F圖中所示之自描述樹狀節點結構。在第3F圖中之N個子係由樹狀節點資料結構中之它們的不同位元組的值所排列,且表示非重疊範圍的排列順序。對於N個節點,具有N+1個範圍---最低的或第一個範圍包含小於或等於最小的登錄值,以及第N+1個範圍包含大於第N個登錄之值。該第N+1個範圍將被視為超出範圍,以致使N個鏈路通往在下面的N個子樹狀物或範圍。
例如,在第3F圖中,子1界定最低的範圍且使用6個位元組(值abef12d6743a的)以區分其範圍---用於子1的範圍係自00000000至abef12d6743a。若候選元件之對應的6個位元組係落在此範圍之內,包含最終值時,則此子之鏈路將被選定。若候選元件之對應的6個前 導位元組係大於範圍定界符abef12d6743a時,則子1將不被選擇。為了要檢驗該候選者是否落在用於子2的範圍之內,兩種情形必須被滿足---首先,該候選者必須在用於正好前一子(在此實例中之子1)的範圍外面,及其次,在其名稱中之對應位元組必須小於或等於用於子2的範圍定界符。在此實例中,用於子2的範圍定界符係由值dcfa之2個位元組所描述。所以,用於候選元件之2個對應位元組必須小於或等於dcfa。使用此方法,在樹狀節點中之候選元件及所有的子可被檢驗,以檢查該候選元件將落在N+1個範圍中的那一個。針對第3F圖中所示之實例,若候選元件之名稱的4個對應位元組係大於其係f3231929之用於子N的鏈路之不同位元組的值時,則失敗情形將被偵測出。
樹狀導航處理可予以修正,而使此新的範圍節點適應。在到達範圍節點時,為了要選擇從該節點所發出之給定的鏈路,來自候選者之名稱的位元組必須落在被界定用於該特殊之鏈路的範圍內。若來自候選者之名稱的位元組之值大於在所有該等鏈路中的對應位元組之值時,則該候選元件落在由下面之子樹狀物所通過跨越之所有範圍的外面---在此情況中(稱作“超出範圍情形”),失敗情形被偵測出且樹狀導航處理終止。若來自候選元件之名稱的前導位元組落在由沿著通往子子樹狀物之鏈路之對應的不同位元組所決定的範圍內時,則樹狀導航處理繼續到下面的該子樹狀物。除非由於“超出範圍情形”而終止,否則 樹狀導航可逐步向下地繼續到樹狀物之更深處,直至其到達葉狀節點資料結構為止。
此種範圍節點可與第3A至3E圖中所敘述之線索節點結合,而在樹狀結構中被採用。在某些實施例中,樹狀結構的上方節點之一定數目的層次可係線索節點,而樹狀遍歷則根據候選元件之名稱的前導位元組與沿著樹狀物之鏈路的對應位元組之間的精確匹配。隨後的節點可係範圍節點,而樹狀遍歷則由其中候選元件之名稱的前導位元組所落在之範圍而予以支配。在樹狀導航處理之中止時,如稍早在此文件中所敘述地,可使用各種準則以決定應回報何者做為整體之內容相關查找的結果。
僅針對描繪和說明之目的,已提出用以表示及使用樹狀節點及葉狀節點之上述方法和設備的說明。惟,它們並不打算要成為全面的,或限制本發明至所揭示的形式。從而,許多修正例和變化例將呈明顯於熟習本項技藝之業者。
當候選元件被呈現做為輸入時,可遍歷上述之樹狀節點及葉狀節點結構,且可根據該候選元件之內容而執行樹狀物的內容相關查找。候選元件的名稱將由該候選元件之位元組所建構,正如當主要資料元件被安裝於篩之中時,該主要資料元件的名稱係由該主要資料元件的內容所建構一樣。鑒於輸入之候選元件,用於樹狀物之內容相關查找的方法包含使用候選元件的名稱之樹狀結構的導航,其次藉由隨後的分析和篩查以決定應回報何者做為整 體之內容相關查找的結果。換言之,樹狀導航處理回報第一輸出,且然後,分析和篩查被執行於該輸出上,而決定整體之內容相關查找的結果。
若有任何主要資料元件而其具備與候選者之名稱相同的前導位元組(或使得它們落在相同的範圍之內)時,則樹狀物將以由鏈路所表示之元件子集的形式而識別該子集之主要資料元件。一般而言,各樹狀節點或葉狀節點可儲存資訊,而使樹狀導航處理能根據輸入元件之名稱的對應位元組,而決定(若有的話)將選擇那一個外向鏈路以導航至樹狀物中之下一個較低的層次,及當該樹狀物係沿著所選擇的鏈路而被導航時所到達之節點的本體。假如各節點包含此資訊時,則樹狀導航處理可遞歸地向下導航至樹狀物中之各層次,直至沒有匹配被發現(在其中樹狀導航處理可回報存在於被植根在目前節點處之子樹狀物中的一組主要資料元件之點),或到達主要資料元件(在其中樹狀導航處理可回報主要資料元件及任何相關聯的元資料之點)為止。
一旦樹狀導航處理已終止,其他的準則和要求可被使用以分析及篩查樹狀導航處理之輸出,而決定應回報何者做為整體之內容相關查找的結果。首先,可以以來自名稱之與候選元件共有之最多數量的前導位元組挑選主要資料元件。其次,當單一主要資料元件或多個主要資料元件係由樹狀導航處理所回報時,在給予將被回報做為該內容相關查找的結果之資格前,可具有額外的要求,亦 即,它們應與候選元件的名稱共享某一最小數量的位元組(否則,該內容相關查找回報失敗)。篩查要求的另一實例可係其中,若該樹狀導航處理終止而未到達單一的主要資料元件,以致使多個主要資料元件(被植根於其中該樹狀導航終止之節點處)被回報做為樹狀導航處理的輸出時,則除非該等元件的數目小於諸如4至16個元件之某一特定的限制值,該等多個主要資料元件才將被給予回報做為該內容相關查找的結果之資格(否則,該內容相關查找回報失敗)。多個要求的組合可被採用以決定內容相關查找的結果。若多個候選元件仍保持時,則可檢驗導航先行位元組及相關聯的元資料,以決定那些主要資料元件係合適的。若仍無法將選擇縮小至單一的主要資料元件時,則可提供多個主要資料元件至導出函數。在此方式中,查找處理將報告“失敗”或回報單一主要資料元件,或者若非單一的主要資料元件時,則主要資料元件之組可能成為用以取得該候選元件之好的起點。
樹狀物需被設計用於有效率的內容相關存取。均衡的樹狀物將提供用於許多資料之存取的可比較深度。所期望的是,樹狀物之上方幾個層次將經常駐存於處理器快取中,下一幾個層次在快速記憶體中,以及隨後的層次在快閃儲存中。對於非常大的資料組,一或多個層次需駐存在快閃儲存中,且甚至在碟片中,係可能的。
第4圖顯示依據在此所敘述的一些實施例之256TB的主要資料可如何以樹狀形式組織之實例,並呈現 該樹狀物可如何被佈局在記憶體及儲存中。假設每節點64個(其係26個)子的平均扇出,則用於主要資料元件之參考資料可藉由到達葉狀節點資料結構而予以存取(例如,如第3H圖中所敘述),該葉狀節點資料結構係駐存在樹狀物的第6個層次(平均值)處(亦即,在5個鏈路遍歷或躍程之後)。所以,在5個躍程後之樹狀物的第6個層次處之該結構將駐存另外230個該節點在旁邊,各具有平均64個子(該等子係對主要資料元件的參考資料),而藉以容納大約64個十億個主要資料元件。以4KB之元件尺寸計,此容納大約256TB個主要資料元件。
樹狀物可被佈局使得樹狀物的6個層次可被如下地遍歷:3個層次駐存在晶片上快取中(包含大約四千個“上方層次”之樹狀節點資料結構,而指明用於對大約256K個節點之鏈路的躍遷),2個層次在記憶體中(包含16個百萬個“中間層次”之樹狀節點資料結構,而指明用於對大約十億個葉狀節點之鏈路的躍遷),以及第6個層次在快閃儲存中(容納十億個葉狀節點資料結構)。駐存在快閃儲存中之樹狀物的此第6個層次處之該十億個葉狀節點資料結構提供用於該64個十億個主要資料元件的參考資料(每葉狀節點平均64個元件)。
在第4圖中所示的實例中,在第4及第5個層次處,各節點致力於每元件平均16個位元組(例如,1個位元組用於子ID,6個位元組用於對PDE的參考資 料,加上1個位元組用於位元組計數,加上平均8個位元組用以指明實際的躍遷位元組以及一些元資料)。在第6個層次處,各節點致力於每元件平均48個位元組(1個位元組用於子ID,1個位元組用於位元組計數,8個位元組用以指明實際的躍遷位元組,6個位元組用於對主要資料元件的參考資料,1個位元組用於離此主要資料元件之取得物的計數,16個位元組用於導航先行,2個位元組用於主要資料元件的尺寸,以及13個位元組之其他的元資料),因此,在用於樹狀物(包含對主要資料元件的參考資料,及包含任何元資料)所需之快閃儲存中的總容量係大約3萬億個位元組。用於樹狀物之上方節點所需的總容量係此規模的小部分(因為有較少的節點,且需較少的位元組用以指明對子節點之較緊的參考資料,以及每個節點需要較少的元資料)。在該實例中,該等上方樹狀節點致力於每元件平均8個位元組(1個位元組用於子ID,1個位元組用於位元組計數,加上平均3至4個位元組用以指明實際的躍遷位元組,以及2至3個位元組用於對子節點的參考資料)。總體而言,在此實例中,具有256TB之主要資料的合成資料組係使用3TB(或256TB的1.17%)之額外的設備,而被排序成為一10億個組群。
在第4圖中所示的實例中,當256TB的主要資料包含64個十億個各4KB之主要資料元件時,需要少於5個位元組(或36個位元)的位址以完全區分該64個十億個主要資料元件。從內容相關之立場,若資料的混合 係使得進行之名稱的平均4個位元組被消耗在最初3個層次之各者處,以及8個位元組在其次3個層次之各者處,則總計36個位元組(288個位元)之名稱(平均值)將區分所有64個十億個主要資料元件。該等36個位元組將比構成各元件之4KB的1%更小。若4KB之主要資料元件可由其位元組的1%(或甚至5至10%)所識別時,則剩餘部分的位元組(其構成多數的位元組)可忍受擾動,且具有該等擾動的候選元件仍可到達此主要資料元件,並可針對來自它的來歷而予以考慮。
應注意的是,在任一給定鏈路上之位元組的數目(用以區分底下之各種子樹狀物),將由包含資料組之混合元件中的實際資料所支配。同樣地,在給定節點當中之鏈路的數目亦將隨著該資料而變化。自描述樹狀節點及葉狀節點資料結構將宣告用於各鏈路所需之位元組的實際數目和值,以及從任一節點所發出之鏈路的數目。
進一步的控制可被安置用以限制所致力於樹狀物的各種層次處之快取、記憶體、及儲存的數量,而在增量之儲存的預算分配內盡可能地將輸入排序成為許多不同的組群。為了要操縱其中有資料之密度和封包而其需要很深的子樹狀物以充分區分元件之情勢,該等密度可藉由組群較大組之相關的元件成為樹狀物之某一深度(例如,第6個層次)的平面組群,且在該等者之上執行精簡的搜尋和來歷(藉由先檢驗導航先行及元資料以決定最佳的主要資料元件,否則(做為備用)僅針對剩餘部分之資料搜 尋複製品,而非由該方法所給予之充分的來歷),而予以有效率地操縱。此將規避很深之樹狀物的創造。另一替代例則係,只要該等層次適合可用的記憶體,就允許深的樹狀物(具有許多層次)。在較深之層次溢出至快閃或碟片時,可採取步驟而從該層次起弄平樹狀物,用以使得將在其他方面由於對儲存在快閃或碟片中之更深層次樹狀節點的多個連續存取而被引致之潛時最小化。
所期望的是,來自元件之名稱的合計位元組之相對小的部分將經常足以識別各主要資料元件。使用在此所敘述的實施例而在各種真實世界資料集上所執行之研究證實的是,主要資料元件的位元組之小的子集可用以排列多數的元件,而致能解決方法。因此,就用於其操作所需求之儲存的數量而言,該解決方法係有效率的。
就來自第4圖之實例所需的存取而言,一旦用於輸入(或候選元件)之每個進來的4KB資料塊,該方案將需要以下之存取以查詢樹狀結構及到達葉狀節點:三個快取參考資料,兩個記憶體參考資料(或多個記憶體參考資料),加上來自快閃儲存之單一IO以存取葉狀節點資料結構。來自儲存之此單一IO將提取4KB網頁,其將保持用於大約64個元件的組群之葉狀節點資料結構的資訊,該資訊將包含48個位元組以致力於所討論的主要資料元件。該等48個位元組將包含所討論之主要資料元件上的元資料。此將得出樹狀查找處理的結論。之後,所需之IO的數目將根據候選元件是否變成複製品、取得 物、或將被安裝在篩中之新的主要資料元件而定。
其係主要資料元件之複製品的候選元件將需要一個IO用以提取主要資料元件,以便驗証該複製品。一旦該複製品被驗證,就將有再一個IO用以更新樹狀物中的元資料。因此,在該樹狀查找之後,複製品元件的攝取將需要兩個IO,而總計3個IO。
樹狀查找失敗的,以及不是複製品亦非取得物的候選元件需要再一個IO用以儲存該元件於篩中做為新的主要資料元件,和另一個IO用以更新樹狀物中的元資料。因此,在樹狀查找之後,該樹狀查找失敗之候選元件的攝取將需要兩個IO,而導致總計3個IO。惟,對於其中樹狀查找處理終止而無需儲存IO的候選元件,僅需總計2個IO以供攝取該等候選元件之用。
其係取得物(但非複製品)的候選元件將首先需要一個IO以提取用以計算來歷所需之主要資料元件。因為所期望的是,最經常的來歷將離開單一的主要資料元件(而非多個),所以僅需要一個IO以提取主要資料元件。在成功完成來歷之後,將需要再一個IO用以在用於儲存中之元件所創造的登錄中儲存重建程式及來歷細節,和另一個IO用以更新樹狀物中的元資料(諸如計數,等等)而反映新的取得物。因此,在該首先樹狀查找之後,變成取得物之候選元件的攝取需要3個額外的IO,而總計4個IO。
綜上所述,用以攝取候選元件及施加資料提 取(Data DistillationTM)方法至其(同時全面地利用冗餘橫跨很大的資料集),需要大約3至4個IO。與傳統之重複資料刪除技術所需要的相比,此大致地僅係每候選元件多一個IO,而回報的是,冗餘可以以比元件本身更精細的顆粒橫跨很大的資料集而被全面地利用。
提供250,000個隨機IO存取/秒(其意指對4KB網頁之1GB/秒的隨機存取帶寬)之儲存系統可在大約每秒62,500個輸入資料塊(由各平均尺寸4KB之每輸入資料塊4IO除250,000)上攝取及執行資料提取(Data DistillationTM)方法。此在用盡該儲存系統之全部帶寬的同時,致能250MB/秒的攝取速率。若僅使用儲存系統的一半帶寬時(使得另一半可用於對所儲存資料之存取),該重複資料刪除系統仍可交付125MB/秒的攝取速率。因而,當給定足夠的處理功率時,資料提取(Data DistillationTM)系統能在現代儲存系統上以經濟的IO全面地利用冗餘橫跨資料集(以比元件本身更精細的顆粒),且以每秒數百個百萬位元組的攝取速率交付資料縮減。
因此,如測試結果所證實的,在此所敘述之實施例以經濟的IO存取及以用於設備所需的最小增量儲存,達成自大規模儲存之資料而搜尋元件之複雜任務(其中輸入元件可以以指明來歷所需的最小儲存取得)。因而所建構的此框架可使用元件之合計位元組的較小百分比以發現適合於來歷之元件,而留下可用於擾動及來歷之大量 的位元組。解釋此方案為何有效率地作功於許多資料的重要見解在於,樹狀物提供易於使用的,精細顆粒的結構,而允許設置可識別篩中元件之不同的和有區別的位元組,且雖然該等位元組係各自在資料中之不同的深度及位置處,但它們可在樹狀結構中被有效率地隔離和儲存。
第5A至5C圖描繪資料可如何使用在此所敘述之實施例而被組織的實際例子。第5A圖描繪512個位元組的輸入資料,及因子分解的結果(例如,在第2圖中之執行操作202的結果)。在此實例中,指紋圖譜係施加以決定資料中的斷點,以致使連續的斷點識別候選元件。交變的候選元件已使用粗體及常規字體予以顯示。例如,第一候選元件係“b8ac83d9dc7caf18f2f2e3f783a0ec69774bb50bbe1d3ef1ef8a82436ec43283bc1c0f6a82e19c224b22f9b2”,以及下一個候選元件係“ac83d9619ae5571ad2bbcc15d3e493eef62054b05b2dbccce933483a6d3daab3cb19567dedbe33e952a966c49f3297191cf22aa31b98b9dcd0fb54a7f761415e”,等等。第5A圖的輸入係因子分解成為如所示之12個可變尺寸的候選元件。各資料塊的前導位元組係使用以在篩中排列及組織元件。第5B圖描繪第5A圖中所示之12個候選元件可如何使用它們的名稱,及使用第3B圖中所敘述之樹狀結構,而在篩中被以樹狀物組織成為主要資料元件。各元件具有不同的名稱,其係由元件的整個內容所建構。在此實例中,因為 指紋圖譜係施加以決定該12個候選元件之間的斷點,所以各候選元件的前導位元組將已經與定錨指紋圖譜對齊;因此,各名稱的前導位元組將已由被定錨在此指紋圖譜處之內容的第一尺寸所建構。該名稱的該等前導位元組組織各種元件。例如,若在元件的名稱中之第一位元組係等於“0x22”時,則取頂部鏈路而選擇主要資料元件#1。應注意的是,第5B圖中之各種鏈路係使用不同數目的位元組而予以區分,如參照第3B圖中所描繪之樹狀資料結構所解說的。
第5C圖描繪第5A圖中所示之12個候選元件可如何使用參照第3D圖所敘述的樹狀資料結構而予以組織。指紋圖譜係進一步施加至各元件的內容,用以識別元件內容之內的次要指紋圖譜。自第一指紋圖譜(已經存在於各元件的邊界處)及第二指紋圖譜之位置所提取之內容的位元組係級聯以形成名稱的前導位元組,其係使用以組織該等元件。換言之,元件名稱係建構如下:來自兩個尺寸或欄之資料的位元組(由定錨指紋圖譜及次要指紋圖譜所定位)係級聯以形成名稱的前導位元組,其次係剩餘部分之位元組。做為該名稱結構之此選擇的結果,不同序列之位元組導致第5C圖中的各種主要資料元件(與第5B圖相對地)。例如,用以到達主要資料元件#4,樹狀導航處理首先取用對應“46093f9d”(其係在第一尺寸(亦即,第一指紋圖譜)處之欄的前導位元組)之鏈路,且然後,取用對應“c4”(其係在第二尺寸(亦即,第二指紋圖譜) 處之欄的前導位元組)之鏈路。
第6A至6C圖顯示依據在此所敘述的一些實施例之樹狀資料結構可如何使用於參照第1A至1C圖所分別敘述的內容相關映像器121及122。
一旦已解決尋找合適之主要資料元件(企圖要從它來取得候選元件)的困難問題,問題就會變小到檢驗主要資料元件之一者或小的子集,及以用以指名來歷所需之最小儲存自它們最佳地取得候選元件。其他目標包含保持對儲存系統之存取的數目至最小,以及保持來歷時間及重建時間可接受。
提取器必須表示候選元件為被執行在一或多個主要資料元件上之轉變的結果,且必須指明該等轉變為將被使用以在資料檢索時再生取得物的重建程式。各來歷可要求它自己唯一的程式將被建構。提取器的功能在於識別該等轉變,且以最小的足跡創造重建程式。各種轉變可被採用,包含被執行於一或多個主要元件上或各元件的特定欄之上的算術、代數、或邏輯運算。此外,可在一或多個主要元件中使用諸如,位元組的級聯、插入、置換、及刪除的位元組處理轉變。
第7A圖提供依據在此所敘述的一些實施例之可在重建程式中被指明的轉變之實例。在此實例中所指明的詞彙包含在元件中的指明長度之欄上的算數運算,以及在主要資料元件中的指明偏移量處之位元組宣告長度的插入、刪除、附加、及置換。各種技術及運算可由提取器所 採用,用以偵測候選元件與主要資料元件之間的相似度及差異,以及用以建構重建程式。提取器可利用可用於基本硬體中的詞彙以執行它的功能。工作的最終結果在於指明被指明用於重建程式之詞彙中的轉變,且在於使用最小數量的增量儲存及以亦致能快速資料檢索的方式如此進行。
提取器可利用基本機器的處理能力,且在所分配至它的處理預算內工作,而可在系統的成本性能約束內提供最佳的分析。鑒於微處理器核心更立即地可用,且鑒於對儲存之IO存取昂貴,資料提取(Data DistillationTM)解決方法已被設計要利用現代的微處理器,而在少許的主要資料元件上有效率地執行候選元件之內容的局部分析和來歷。所期望的是,資料提取(Data DistillationTM)解決方法的性能(在非常大的資料上)將不受計算的處理,而是受到典型儲存系統的IO帶寬所速率限制。例如,所期望的是,兩個微處理器核心就將足以在支援250,000個IO/秒之典型以快閃為主的儲存系統上,執行用以支援每秒數百個百萬位元組之攝取速率的所需計算和分析。應注意的是,來自諸如Intel Xeon處理器E5-2687W(10核心,3.1GHz,25MB快取)之現代微處理器的兩個該微處理器核心,係可獲自處理器之總計算功率的一小部分(十分之二)。
第7B圖顯示依據在此所敘述的一些實施例之將從主要資料元件得到的候選元件之結果的實例。特別地,資料圖案“Elem”係主要資料元件,其係儲存在主要資 料儲存中,以及資料圖案“Cand”係候選元件,其將取得自該主要資料元件。在“Cand”與“Elem”之間的18個共同的位元組已被凸顯。重建程式702指明資料圖案“Cand”可如何取得自資料圖案“Elem”。如第7B圖中所示,重建程式702描繪如何藉由使用1個位元組置換、6個位元組插入、3個位元組刪除、7個位元組大批置換,而自“Elem”取得“Cand”。用以指明取得物之成本係20個位元組+3個位元組的參考資料=23個位元組,其係原始尺寸的65.71%。應注意的是,所顯示的重建程式702係人類可讀取表示之程式,且並非如何藉由在此所敘述的實施例而予以實際儲存之程式。同樣地,根據諸如乘法及加法之算術運算的其它重建程式亦已在第7B圖中被顯示。例如,若“Elem”係bc1c0f6a790c82e19c224b22f900ac83d9619ae5571ad2bbec152054ffffff83,以及“Cand”係bc1c0f6a790c82e19c224b22f91c4da1aa0369a0461ad2bbec152054ffffff83,則8個位元組差異可使用相乘(00ac83d9619ae557)*2a=〔00〕1c4da1aa0369a046,而被如所示地取得。用以指明取得物之成本:4個位元組+3個位元組的參考資料=7個位元組,其係原始尺寸的20.00%。選擇性地,若“Elem”係bc1c0f6a790c82e19c224b22f9b2ac83ffffffffffffffffffffffffffff283,以及“Cand”係bc1c0f6a790c82e19c224b22f9b2ac830000000000000000000 0000000002426,則16個位元組差異可使用加法而被如所示地取得,例如,藉由相加0x71a3至開始於偏移16之16個位元組區域,且拋棄進位。用以指明取得物之成本係5個位元組+3個位元組的參考資料=8個位元組,其係原始尺寸的22.85%。應注意的是,在第7A圖中之該等取樣編碼僅係選擇用於描繪之目的。在第7B圖中之實例具有32個位元組的資料尺寸,且因此,5個位元滿足元件內之長度及偏移欄。對於大的元件(例如,4KB元件),該等欄的尺寸將需要被增加至12個位元。同樣地,取樣編碼容納3個位元組或24個位元的參考資料尺寸。此應允許16個百萬個主要資料元件將被參考。若參考資料必須能在例如,256TB之資料中定址任何位置,則該參考資料在尺寸上將必須變成6個位元組。當該資料集被因子分解成為4KB元件時,用以指明參考資料所需的6個位元組將係4KB元件之尺寸的一小部分。
用以指明取得物元件(其係取得自一或多個主要資料元件)所需之資訊的尺寸係重建程式之尺寸及用以指明所需之(一或多個)主要資料元件所需的參考資料之尺寸的總和。用以指明候選元件做為取得物元件所需之資訊的尺寸係稱作候選元件距離主要資料元件的距離。當候選元件可切實取得自多組主要資料元件之任一組時,則具有最短距離的主要資料元件之組將被選定做為目標。
當候選元件必須被取得自超過一個的主要資料元件時(藉由組裝所取得自該等者之各者的提取),則 提取器必須考慮對儲存系統的額外存取之成本中的因子,以及對較小重建程式和較小距離之利益的衡量。一旦最佳重建程式已被創造用於候選者,就將其距離與距離臨限值相比;若不超過該臨限值時,則接受來歷。一旦接受該來歷,該候選元件就被重制定做為取得物元件,且由主要資料元件及重建程式的組合所置換。在被創造用於該候選元件的提取之資料中的登錄,係由重建程式加上對相關聯之主要資料元件的一或多個參考資料所置換。若用於最佳來歷之距離超過該距離臨限值時,則該取得物將不被接受。
為了要產生資料縮減,距離臨限值必須一直小於候選元件的尺寸。例如,距離臨限值可被設定為候選元件之尺寸的50%,使得除非來歷的足跡係小於或等於候選元件之足跡的一半,該來歷才將被接受,而藉以確保兩倍或更大的縮減用於其中存在合適來歷的各候選元件。距離臨限值可係根據使用者特定輸入,或由系統所選定之預定的百分比或分數。該距離臨限值可根據系統之靜態或動態的參數,而由系統所決定。
第8A至8E圖描繪依據在此所敘述的一些實施例之資料縮減可如何藉由因子分解輸入資料成為固定尺寸元件,且以參照第3D及3E圖所敘述的樹狀資料結構組織該等元件,而被執行。第8A圖顯示輸入資料如何可被簡單地因子分解成為32個位元組資料塊。特別地,第8A圖顯示最初的10個資料塊,且然後,再多些的資料塊,其呈現例如,42個百萬個資料塊於後。第8B圖顯示 篩中之主要資料元件的組織,其係使用所建構的名稱以致使該名稱的前導位元組包含來自元件內容中之3個尺寸的內容(對應定錨指紋圖譜、次要指紋圖譜、及第三指紋圖譜的位置)。特別地,在第8B圖中,各32個位元組資料塊變成32個位元組(固定尺寸區塊)的候選元件。指紋圖譜的方法係施加至元件的內容。各元件具有名稱,其係建構如下:來自元件的三個尺寸或欄(分別由定錨指紋圖譜、次要指紋圖譜、及第三指紋圖譜所定位)之資料的位元組係級聯以形成名稱的前導位元組,其次係該元件之剩餘部分的位元組。該名稱係使用以組織篩中的元件。如第8B圖中所示,最初的10個資料塊不包含複製品或取得物,且係接連地安裝做為篩中的元件。第8B圖顯示在消耗第10個資料塊之後的篩。第8C圖顯示在消耗資料輸入的額外若干個百萬個元件之後,例如,在呈現接著的42個百萬個資料塊之後的時間中之隨後點處的篩之內容。該篩係檢驗用於複製品或取得物。無法取得自元件的資料塊被安裝在篩中。第8C圖顯示在消耗42個百萬個資料塊之後的篩,包含例如,16,000,010個元件(可以以3個參考位址邏輯地定址),而剩餘的26,000,000個資料塊變成取得物。第8D圖顯示新的輸入之實例,其係隨後提交至篩且被識別為篩中之登錄(被顯示為元件號碼24,789)的複製品。在此實例中,篩識別元件24,789(資料塊9)做為用於資料塊42,000,011之最合適的元件。提取功能決定的是,新的資料塊係精確的複製品,且以對元件24,789的 參考資料置換它。用以表示該取得物的成本係與35B原始相對的3個位元組,其係原始尺寸的8.57%。第8D圖顯示輸入的第二個實例(資料塊42,000,012),其係轉換成為篩中之登錄(被顯示為元件號碼187,126)的取得物。在此實例中,篩決定的是,並沒有精確的匹配。其識別元件187,125及187,126(資料塊8及1)做為最合適的元件。新的元件係取得自最合適的元件。來歷對元件187,125及來歷對元件187,126係描繪於第8D圖中。用以表示來歷對元件187,125之成本係39個位元組+3個位元組的參考資料=42個位元組,其係原始尺寸的120.00%。用以表示來歷對元件187,126之成本係:12個位元組+3個位元組的參考資料=15個位元組,其係原始尺寸的42.85%。最佳的來歷(對元件187,126)被選定。重建尺寸係與臨限值相比。例如,若臨限值係50%,則此取得物(42.85%)被接受。第8E圖提供從主要資料元件所取得的資料塊之兩個額外的實例,包含其中取得物係藉由取得自兩個主要資料元件而予以實際地創造的一實例。在第一實例中,資料塊42,000,013被提出。篩識別元件9,299,998(資料塊10)做為最合適的元件。來歷對元件9,299,998係描繪於第8E圖中。用以表示該取得物之成本係4個位元組+3個位元組的參考資料=7個位元組,其係原始尺寸的20.00%。重建尺寸係與臨限值相比。例如,若臨限值係50%,則此取得物(20.00%)被接受。在第二實例中,資料塊42,000,014被提出。在此實例中,資料塊 42,000,014係使得資料塊的一半可最佳地取得自元件9,299,997,而資料塊的另一半可最佳地取得自元件9,299,998。因此,多個元件之取得物被創造出,而產生進一步的資料縮減。多個元件之來歷係顯示於第8E圖中。用以表示此多個元件之取得物的成本係3個位元組的參考資料+3個位元組+3個位元組的參考資料=9個位元組,其係原始尺寸的25.71%。重建尺寸係與臨限值相比,例如,若臨限值係50%,則此取得物(25.71%)被接受。應注意的是,來自單一元件取得物的最佳輸出將係45.71%。
第8A至8E圖描繪資料提取(Data DistillationTM)系統的重要優點:可在執行資料縮減之同時,有效消耗及產生固定尺寸的區塊。應注意的是,固定尺寸的區塊係在高性能儲存系統中高度所欲的。使用資料提取(Data DistillationTM)設備,包含許多固定尺寸區塊之大的引入之輸入檔案可被因子分解成為許多固定尺寸的元件,以致使所有的主要資料元件固定尺寸。用於各取得物元件之潛在可變尺寸的重建程式可被包裝在一起,且被直列保持在提取的資料檔案中,而可被隨後組塊成為固定尺寸的區塊。因此,針對所有實用之目的,可執行有力的資料縮減,且同時在儲存系統中消耗及產生固定尺寸的區塊。
第9A至9C圖描繪其係最初顯示於第1C圖中之資料提取(Data DistillationTM)方案的實例:此方案 採用個別的主要重建程式儲存,其可以以內容相關方式存取。該結構致能取得物的偵測,其建構已經存在於主要重建程式儲存中的重建程式。該取得物可被重制定以參考現有的重建程式。此致能重建程式中之冗餘的偵測。在第9A圖中,輸入資料被攝取。指紋圖譜的方法係施加至該資料,以及資料塊邊界係設定在指紋圖譜位置處。該輸入係因子分解成為如所顯示之8個候選元件(交變的資料塊以粗體及常規字體顯示於第9A圖中)。在第9B圖中,該8個候選元件係如在篩中所組織地顯示。各元件具有不同的名稱,其係由該元件的整個內容所建構。在此實例中,元件名稱係建構如下:來自兩個尺寸或欄之資料的位元組(分別由定錨指紋圖譜及次要指紋圖譜所定位)係級聯以形成名稱的前導位元組,其次係剩餘部分之位元組。該名稱係使用以在篩中排列元件,且亦透過樹狀結構而提供內容相關存取。第9B圖亦提供第二內容相關結構,其包含主要重建程式。第9C圖描繪複製品重建。假定並非任一主要資料元件之複製品的55個位元組候選元件(第9C圖中所示)到達。元件3係選擇做為最合適的元件---對於PDE2及3,最初的兩個尺寸係相同的,但以88a7開始之剩餘部分的位元組匹配元件3。新的輸入係以12個位元組重建程式(RP)取得自元件3。編碼係如第7A圖中所示。應注意的是,用於此實例,最大元件尺寸係64位元,以及例如,與第7A圖中所示之5位元的長度和偏移相對地,所有的偏移和長度係編碼為6位元的值。該 RP儲存被搜尋,且此新的RP並未被發現。此RP係插入至主要RP儲存內,而根據其值予以排列。新的元件係重制定為對主要資料元件3的參考資料,及對在RP儲存中之參考資料4處的新創造之主要重建程式的參考資料。用於此取得之元件的總儲存尺寸係:3個位元組的PDE參考資料、3個位元組的RP參考資料、12個位元組的RP=18個位元組,其係與儲存它為PDE相對之尺寸的31.0%。之後,假定55個位元組候選元件的拷貝到達。如之前一樣地,12個位元組RP係根據元件3而被創造出。RP儲存被搜尋,且具有主要RP ID=3,RP參考資料=4的RP被發現。此候選元件係表示於系統中做為對主要資料元件3的參考資料,及對重建程式4的參考資料。所添加用於此取得之元件的總儲存尺寸現在係:3個位元組的PDE參考資料、3個位元組的RP參考資料=6個位元組,其係與儲存它為PDE相對之尺寸的10.3%。
第10A圖提供依據在此所敘述的一些實施例之在重建程式中所指明的轉變如何施加至主要資料元件以產生取得物元件之實例。該實例顯示被指明將由編號187,126之主要資料元件(此主要資料元件亦被顯示於第8C圖中的篩之中)所產生(藉由施加如所示之重建程式所指明的四種轉變(插入、置換、刪除、及附加)至它)的取得物元件。如第10A圖中所示,元件187,126係載入自篩,且重建程式被執行以自元件187,126取得資料塊42,000,012。第10B至10C圖描繪依據在此所敘述的一些 實施例之資料檢索處理。各資料檢索請求本質地採取所提取的資料中之元件的形式,以無損縮減格式提交至搜尋引擎。用於各元件的無損縮減格式包含對相關聯之主要資料元件及重建程式的參考資料。資料提取(Data DistillationTM)設備的檢索器提取主要資料元件及重建程式,且提供該等者至用於重建的重建器。在已提取用於所提取的資料之元件的有關聯主要資料元件及重建程式之後,重建器執行重建程式,而以元件之原始未縮減形式產生元件。資料檢索處理所需之用以執行重建的努力係線性相對於重建程式的尺寸和主要資料元件的尺寸。因此,高的資料檢索速率可藉由系統而予以達成。
顯而易見的是,用以自所提取的資料中之無損縮減形式重建元件至其原始未縮減形式,僅需提取被指明用於該元件的主要資料元件及重建程式。因此,為了要重建給定的元件,並不需要存取或重建其它的元件。此使得該資料提取(Data DistillationTM)設備有效率,即使當服務用於重建及檢索之隨機的請求序列時。應注意的是,諸如Lempel-Ziv方法之傳統的壓縮方法必須提取及解壓縮包含所欲區塊之整個窗口的資料。例如,若儲存系統採用Lempel-Ziv方法而使用32KB之窗口以壓縮4KB區塊的資料時,為了要提取及解壓縮給定的4KB區塊,則必須提取及解壓縮32KB的整個窗口。此會帶來性能上的損失,因為為了要交付所欲之資料,更多的帶寬會被消耗,且更多的資料需被解壓縮。該資料提取(Data DistillationTM)設備並不會招致該損失。
資料提取(Data DistillationTM)設備可以以各種方式被整合至電腦系統內,而以可在系統中之整個資料的範圍有效率地全面揭露和利用冗餘之方式,組織及儲存資料。第11A至11G圖描繪依據在此所敘述的一些實施例之包含資料提取(Data DistillationTM)機制(其可使用軟體、硬體、或它們的組合而予以實施)的系統。第11A圖呈現具有軟體應用的通用型計算平台,該軟體應用運轉於系統軟體上,該系統軟體執行於包含處理器、記憶體、及資料儲存組件的硬體平台上。第11B圖顯示被整合至平台之應用層內的資料提取(Data DistillationTM)設備,而各特定之應用使用該設備以利用用於該應用的資料集內之冗餘。第11C圖顯示被採用以提供資料虛擬層或服務於被運轉於其上之所有應用的資料提取(Data DistillationTM)設備。第11D及11E圖顯示具有取樣計算平台的操作系統、檔案系統、及資料管理服務之資料提取(Data DistillationTM)設備的兩種不同形式的整合。其他的整合方法包含(但並未受限於)與在如第11F圖中所示之諸如,被採用於以快閃為主之資料儲存子系統中之硬體平台中的嵌入式計算堆疊之整合。
第11G圖呈現與第11D圖中所示之取樣計算平台的資料提取(Data DistillationTM)設備之整合的額外細節。第11G圖顯示資料提取(Data DistillationTM)設備的組件,其具有在通用型處理器上被執行為軟體的剖析器 和因子分解器、提取器、檢索器、及重建器,以及駐存在儲存階層的幾個層次之範圍的內容相關映像結構。主要資料儲存可駐存在儲存媒體(諸如以快閃為主的儲存裝置)中。
第11H圖顯示依據在此所敘述的一些實施例之資料提取(Data DistillationTM)設備可如何與取樣通用型計算平台介面。
檔案系統(或filesystem)使檔案(例如,正文文獻、電子表格、可執行的、多媒體的檔案、等等)與識別符(例如,檔名、檔案處置代碼、等等)相關聯,且使操作(例如,讀取、寫入、插入、附加、刪除、等等)能藉由使用與檔案相關聯的識別符而在檔案上被執行。由檔案系統所實施的命名空間可係平面的或階層的。此外,命名空間可被分層,例如,頂部層之識別符可在接連的下方層被解析成為一或多個識別符,直至該頂部層之識別符被完全地解析為止。在此方式中,檔案系統提供實體地儲存檔案的內容之實體資料儲存裝置及/或儲存媒體(例如,電腦記憶體、快閃驅動器、碟片驅動器、網路儲存裝置、CD-ROM、DVD、等等)的抽象概念。
用以在檔案系統中儲存資訊所使用的實體資料儲存裝置及/或儲存媒體可使用一或多個儲存技術,且可被設置在相同的網路位置處或可被分配在不同網路位置的範圍。鑒於與檔案相關聯的識別符及被請求要在該檔案上執行的一或多個操作,檔案系統可(1)識別一或多個 實體資料儲存裝置及/或儲存媒體,以及(2)致使由該檔案系統所識別的該等實體資料儲存裝置及/或儲存媒體,實行所被請求要在與該識別符相關聯之檔案上執行的操作。
不論何時只要讀取或寫入操作被執行於系統之中,就可包含不同的軟體及/或硬體組件。“讀取器”之用語可意指系統中之軟體及/或硬體組件的集合,其係當給定的讀取操作被執行於該系統之中時包含,以及“寫入器”之用語可意指系統中之軟體及/或硬體組件的集合,其係當給定的寫入操作被執行於該系統之中時包含。在此所敘述之用於資料縮減的方法及設備之一些實施例可藉由當執行給定的讀取或寫入操作時所包含之系統的一或多個軟體及/或硬體組件,而予以使用,或可被結合至當執行給定的讀取或寫入操作時所包含之系統的一或多個軟體及/或硬體組件內。不同的讀取器和寫入器可使用或結合不同的資料縮減實施。惟,使用或結合特殊之資料縮減實施的各寫入器將對應亦使用或結合相同之資料縮減實施的讀取器。應注意的是,在系統中所執行的某些讀取和寫入操作可不一定要使用或結合資料縮減設備。例如,當資料提取(Data DistillationTM)設備或資料縮減設備103檢索主要資料元件,或添加新的主要資料元件至主要資料儲存時,其可直接執行讀取和寫入操作,而無需資料縮減。
特別地,在第11H圖中,寫入器150W可大致地意指系統之軟體及/或硬體組件,其係當執行給定的 寫入操作時包含,以及讀取器150R可大致地意指系統之軟體及/或硬體組件,其係當執行給定的讀取操作時包含。如第11H圖中所示,寫入器150W提供輸入資料至資料提取(Data DistillationTM)設備或資料縮減設備103,且自資料提取(Data DistillationTM)設備或資料縮減設備103接收提取的資料108。讀取器150R提供檢索請求109至資料提取(Data DistillationTM)設備或資料縮減設備103,且自資料提取(Data DistillationTM)設備或資料縮減設備103接收檢索的資料輸出113。
用於第11H圖的實施實例包含,但未受限於結合或使用資料提取(Data DistillationTM)設備或資料縮減設備103於應用、操作系統核心、檔案系統、資料管理模組、裝置驅動器、或快閃或碟片驅動器的韌體中。此橫跨第11B至11F圖中所敘述之各種組態和使用。
第12A圖顯示依據在此所敘述的一些實施例之用於跨越帶寬約束通訊媒體的資料通訊之資料提取(Data DistillationTM)設備的使用。在所示之裝備中,通訊節點A創造出將被傳送至通訊節點B的一組檔案。節點A採用資料提取(Data DistillationTM)設備以轉變該等輸入檔案成為提取的資料或提取的檔案,其包含對被安裝在主要資料儲存中之主要資料元件的參考資料,以及用於取得物元件的重建程式。然後,節點A傳送連同主要資料儲存之提取的檔案至節點B(主要資料儲存可在傳送提取的檔案之前,之同時,或之後被傳送;此外,主要資料儲 存可在與被使用以傳送提取的檔案之通訊頻道相同的通訊頻道上,或不同的通訊頻道上被傳送)。節點B安裝主要資料儲存於其端點之對應結構中,且隨後,透過駐存在節點B之資料提取(Data DistillationTM)設備中的檢索器和重建器而饋送提取的檔案,用以產生由節點A所創造出之原始組的檔案。因此,更有效率的使用係,藉由採用資料提取(Data DistillationTM)設備於帶寬約束通訊媒體的兩端點處以僅傳送縮減之資料,而由該帶寬約束通訊媒體所做成。應注意的是,使用資料提取(Data DistillationTM)將致能橫跨較大範圍之冗餘的利用(超過使用諸如Lempel-Ziv之習知技術所可看到的),以致使即使是大型的檔案或成組群的檔案均可被有效率地傳輸。
我們現在討論資料提取(Data DistillationTM)設備在其中工作小組協作地共享被傳播在多個節點的範圍之資料的寬域網路設施中之使用。當資料係最初地創造出時,其可被如第12A圖中所描繪地縮減和通訊。寬域網路在各地點保持資料的拷貝,用以致能對該資料的快速本地存取。資料提取(Data DistillationTM)設備的使用可減少各地點的足跡。再者,在任一地點之新的資料之隨後的攝取時,在該新的資料與現有的主要資料儲存之內容間的任何冗餘可被利用以縮減該新的資料。
在該設施中,對任一地點處之資料的任何修正必須被通訊至所有其他的地點,使得在各地點處之主要資料儲存保持一致。因此,如第12B圖中所示,諸如主要 資料元件之安裝及刪除的更新,以及元資料更新,可依據在此所敘述的一些實施例而被通訊至各地點處之主要資料儲存。例如,在安裝新的主要資料元件至給定地點處的篩之內時,該主要資料元件必須被通訊至所有其他的地點。各地點可使用該主要資料元件的值,而以內容相關方式存取該篩,以及決定新的登錄需被添加在該篩的何處。同樣地,在從給定地點處的篩刪除主要資料元件時,所有其他的地點必須被更新以反映該刪除。此可被完成的一方式係藉由通訊主要資料元件至所有的地點,使得各地點可使用該主要資料元件而內容相關地存取篩,以及決定葉狀節點中的那一個登錄需被刪除,連同對樹狀物中之相關鏈路的必要更新,及自儲存之該主要資料元件的刪除。另一方法在於通訊參考資料至所有的地點,該參考資料係針對其中該主要資料元件所駐存的葉狀節點中之用於該主要資料元件的登錄。
因此,資料提取(Data DistillationTM)設備可被使用以縮減在寬域網路之各種地點的範圍所儲存之資料的足跡,以即使網路之通訊鏈路的使用有效率。
第12C至12K圖描繪依據在此所敘述的一些實施例之藉由用於各種使用模型的資料提取(Data DistillationTM)設備而產生之縮減資料的種種組件。
第12C圖描繪資料提取(Data DistillationTM)設備1203如何攝取一組輸入的檔案1201,以及在完成提取處理之後,如何產生一組提取的檔 案1205及主要資料篩或主要資料儲存1206。第12C圖本身之主要資料篩或主要資料儲存1206係由兩個組件所構成,亦即,如第12D圖中所示之映像器1207及主要資料元件(或PDE)1208。
映像器1207本身具有兩個組件於內,亦即,樹狀節點資料結構之組及葉狀節點資料結構之組,其界定整體樹狀物。樹狀節點資料結構之組可被放置至一或多個檔案之內。同樣地,葉狀節點資料結構之組可被放置至一或多個檔案之內。在某些實施例中,所謂樹狀節點檔案之單一檔案保持被創造用於給定資料集(輸入的檔案1201)的主要資料元件之樹狀物的整組樹狀節點資料結構,以及所謂葉狀節點檔案之另外的單一檔案保持被創造用於該資料集的主要資料元件之樹狀物的整組葉狀節點資料結構。
在第12D圖中,主要資料元件1208包含被創造用於給定之資料集(輸入的檔案1201)的主要資料元件之組。該主要資料元件之組可被放置至一或多個檔案之內。在某些實施例中,所謂PDE檔案之單一檔案保持被創造用於給定資料集之整組主要資料元件。
在樹狀節點檔案中之樹狀節點將包含對該樹狀節點檔案內之其他樹狀節點的參考資料。在樹狀節點檔案中之最深層(或最下方層次)的樹狀節點將包含對該葉狀節點檔案中的葉狀節點資料結構中之登錄的參考資料。在葉狀節點檔案中的葉狀節點資料結構中之登錄將包含對 PDE檔案中之主要資料元件的參考資料。
該樹狀節點檔案、葉狀節點檔案、及PDE檔案係描繪在第12E圖中,其顯示由該設備所創造出之所有組件的細節。第12E圖顯示一組輸入的檔案1201,包含命名為檔案1、檔案2、檔案3、...、檔案N之N個檔案,其係由資料提取(Data DistillationTM)設備所縮減,而產生一組提取的檔案1205和主要資料篩之各種組件,亦即,樹狀節點檔案1209、葉狀節點檔案1210、及PDE檔案1211。提取的檔案1205包含命名為file1.dist(檔案1.提取)、file2.dist(檔案2.提取)、file3.dist(檔案3.提取)、...、fileN.dist(檔案N.提取)之N個檔案。資料提取(Data DistillationTM)設備因子分解輸入的資料成為它的構成物元件,以及創造出兩種類別的資料元件---主要資料元件及取得物元件。該等提取的檔案包含以無損縮減格式之資料元件的說明,且包含對PDE檔案中之主要資料元件的參考資料。在輸入的檔案1201中之各檔案具有在提取的檔案1205中之對應提取的檔案1205。例如,在輸入的檔案1201中之檔案1212對應提取的檔案1205中之命名為file1.dist 1213之提取的檔案。
應注意的是,第12E圖顯示依據第1A圖之根據提取的檔案及主要資料儲存之組織而由資料提取(Data DistillationTM)設備所產生的各種組件,其中重建程式係放置在提取的檔案中之無損縮減表示的元件之中。應注意的是,某些實施例(依據第1B圖)可放置重建程式於主 要資料儲存中,且對待它們就像主要資料元件一樣。在提取的檔案中之無損縮減表示的元件將包含對重建程式的參考資料於主要資料儲存中(而非包含重建程式本身)。在該等實施例中,重建程式將如主要資料元件一樣地被處理,以及被產生於PDE檔案中1211中。在又一實施例中,依據第1C圖,重建程式係與主要資料元件分離地儲存在所謂重建程式儲存的結構中。在該等實施例中,在提取的檔案中之無損縮減表示的元件將包含對重建程式的參考資料於主要資料儲存中。在該等實施例中,如第12F圖所描繪地,除了產生用於主要資料元件之樹狀組織的樹狀節點檔案1209、葉狀節點檔案1210、及PDE檔案1211之外,該設備亦將產生第二組之樹狀及葉狀節點檔案(稱作重建樹狀節點檔案1219及重建葉狀節點檔案1220),連同包含所有重建程式的檔案(稱作RP檔案1221)。
在第12E圖中所示之資料提取(Data DistillationTM)設備亦儲存組態及控制資訊,用以支配樹狀節點檔案1209、葉狀節點檔案1210、PDE檔案1211、及提取的檔案1205之一或多者中之其操作。選擇性地,包含此資訊的第五組件可被產生。相似地,對於第12F圖中所示之設備,組態及控制資訊可被儲存在第12F圖中所示之各種組件的一或多者中,或可被儲存在用於此目的所產生的另一組件中。
第12G圖描繪資料提取(Data DistillationTM)設備之用法的概觀,其中給定之資料集(輸入的資料集 1221)係饋送至資料提取(Data DistillationTM)設備1203並處理,用以產生無損縮減之資料集(無損縮減資料集1224)。輸入的資料集1221可由來自資料流之檔案、物件、區塊、資料塊、或提取的集合所構成。應注意的是,第12E圖描繪其中資料集係由檔案所構成的實例。第12G圖的輸入資料集1221對應第12E圖的輸入檔案1201,而第12G圖的無損縮減資料集1224包含第12E圖中所示之四個組件,亦即,第12E圖之提取的檔案1205、樹狀節點檔案1209、葉狀節點檔案1210、及PDE檔案1211。在第12G圖中,資料提取(Data DistillationTM)設備利用橫跨所提交至其之輸入資料集的整個範圍之內容元件中的冗餘。
資料提取(Data DistillationTM)設備可被組構以利用輸入資料集的子集之範圍的冗餘,且交付用於所提交至其之資料集的各子集之無損縮減。例如,如第12H圖中所示,輸入資料集1221可被分區成為許多較小的資料之集合,各集合係在此發明中稱作“批量”、或“資料之批量”、或“資料批量”。第12H圖顯示被組構以攝取輸入資料批量1224及產生無損縮減資料批量1225的資料提取(Data DistillationTM)設備。第12H圖顯示輸入資料集1221,其係由許多資料集合所構成,該等資料集合係資料批量1、...、資料批量i、...、資料批量n。資料係每次提交一個資料批量至資料提取(Data DistillationTM)設備,且冗餘係橫跨各資料批量的範圍而被利用,用以產生無損 縮減資料批量。例如,來自輸入資料集1221的資料批量i 1226係饋送至設備,以及無損縮減資料批量i 1228係交付至無損縮減資料集1227。來自輸入資料集1221的各資料批量係饋送至設備,以及對應的無損縮減資料批量係交付至無損縮減資料集1227。一旦消耗及縮減所有的資料批量1、...、資料批量i、...、資料批量n,輸入資料集1221就可被縮減成無損縮減資料集1227。
雖然資料提取(Data DistillationTM)設備係藉由在利用橫跨資料的全盤範圍之冗餘已見效率的設計,但上述技術可被使用以進一步加速資料縮減處理,且進一步增進其效率。資料縮減處理的輸貫量可藉由限制資料批量之尺寸成為能適合系統的可用記憶體,而予以增加。例如,其在尺寸上係許多萬億個位元組或甚至千兆個位元組的輸入資料集可被拆散成例如,256GB之各尺寸的許多個資料批量,且各資料批量可被快速地縮減。使用具有256GB之記憶體的單一處理器核心(Intel Xeon E5-1650 V3,Haswell 3.5Ghz處理器),利用橫跨256GB的範圍之該解決方法已被實施於我們的實驗室中,而產生每秒數百個百萬位元組的攝取速率,且同時交付2至3倍的縮減層次於各種資料集之上。應注意的是,256GB的範圍係大於32KB許多個百萬倍,該32KB係窗口的尺寸,其中Lempel Ziv方法在該尺寸交付10MB/秒至200MB/秒之間的攝取性能於當代的處理器上。因此,藉由適當地限制冗餘的範圍,在資料提取處理之速度中的增進可藉由潛在地 犧牲某一縮減而予以達成。
第12I圖描繪第12H圖中之設置的變化例,且顯示運轉在多個處理器上之多個資料提取處理,用以大大地提高輸入資料集之資料縮減(並且,資料重建/檢索)的輸貫量。第12I圖顯示被分區成為x數目之資料批量的輸入資料集1201,且該x個獨立的資料批量係饋送至運轉在獨立的處理器核心上之j個獨立的處理之內(各處理係分配足夠的記憶體以容納將被饋送至它的任一資料批量),用以並聯地執行且產生大約j倍的加速用於資料縮減以及重建/檢索二者。第12J圖描繪由資料提取(Data DistillationTM)設備所產生之用於使用模型之所縮減資料的各種組件,其中在輸入資料的縮減之後,映像器無需再被保持。該等使用模型的實例係某些種類之資料備份及資料歸檔的應用。所縮減資料之隨後的使用僅係從所縮減之資料集的輸入資料集之重建和檢索。在該設想情況中,所縮減資料的足跡可藉由在完成資料縮減之後不儲存映像器而予以進一步減少。第12J圖顯示被饋送至設備的輸入檔案1201,其產生提取的檔案1205和PDE檔案1211---在此設想情況中,該等組件包含縮減之資料。應注意的是,輸入檔案1201可僅使用提取的檔案1205和PDE檔案1211而被完全地再生和恢復。記得的是,在提取的檔案中之用於各元件之無損縮減表示包含在該處所需的重建程式,以及對PDE檔案中之主要資料元件的參考資料。再加上該PDE檔案,此係用以執行重建所需的所有資訊。
應注意的是,第12J圖顯示依據第1A圖之根據提取的檔案及主要資料儲存之組織而由資料提取(Data DistillationTM)設備所產生的各種組件,其中重建程式係放置在提取的檔案中之無損縮減表示的元件之中。應注意的是,某些實施例(依據第1B圖)可放置重建程式於主要資料儲存中,且對待它們就像主要資料元件一樣。在提取的檔案中之無損縮減表示的元件將包含對重建程式的參考資料於主要資料儲存中(而非包含重建程式本身)。在該等實施例中,重建程式將如主要資料元件一樣地被處理,以及被產生於PDE檔案1211中。在又一實施例中,依據第1C圖,重建程式係與主要資料元件分離地儲存在所謂重建程式儲存的結構中。在該等實施例中,在提取的檔案中之無損縮減表示的元件將包含對重建程式的參考資料於主要資料儲存中。在該等實施例中,除了產生用於主要資料元件之PDE檔案之外,該設備亦將產生包含所有重建程式的檔案(稱作RP檔案1221)。此係顯示於第12K圖中,其顯示用於使用模型之所縮減資料的組件,其中映像器無需再被保持。第12K圖顯示該等所縮減之資料組件,包含提取的檔案1205、PDE檔案中1211、及RP檔案1221。
資料縮減係使用在此所敘述之實施例而被執行於各種真實世界的資料集上,用以決定該等實施例的效用。所研究之真實世界的資料集包含安隆電子郵件、各種美國政府記錄及文獻、進入至MongoDB NOSQL資料庫之 美國運輸部門記錄、及提供給公眾的PowerPoint演講稿。使用在此所敘述之實施例,且因子分解輸入的資料成為平均4KB之可變尺寸的元件(具有由指紋圖譜所決定的邊界),3.23倍之平均資料縮減係在該等資料集的範圍取得。3.23倍之縮減意指的是,所縮減資料之尺寸係等於原始資料的尺寸除以3.23倍,而導致具有31%的壓縮比之縮減的足跡。傳統的重複資料刪除技術被發現使用等效的參數而在該等資料集上交付1.487倍之資料縮減。使用在此所敘述之實施例,且因子分解輸入的資料成為平均4KB之固定尺寸的元件,1.86倍之平均資料縮減係在該等資料集的範圍取得。傳統的重複資料刪除技術被發現使用等效的參數而在該等資料集上交付1.08倍之資料縮減。因此,資料提取(Data DistillationTM)解決方法被發現比傳統重複資料刪除解決方法交付顯著更佳的資料縮減。
測試運轉亦證實的是,主要資料元件之小的子集之位元組用以排列多數的元件於篩之中,而藉以致能用於其操作所需之最小增量儲存的解決方法。
結果證實的是,資料提取(Data DistillationTM)設備有效率地致能以比元件本身更細的粒度,全盤地利用整個資料集的範圍之資料元件中的冗餘。由此方法所交付的無損資料縮減係以經濟的資料存取和IO,採用其本身所需之最小增量儲存的資料結構,以及使用可用於現代多核心微處理器之總計算處理功率的一部分達成。在之前的段落中所敘述之實施例賦予系統及技術之 特徵,該等系統及技術之特徵在於,執行無損資料縮減於大且極大的資料集之上,且同時提供高速率的資料攝取和資料檢索,而不會遭遇到習知技術的缺點及限制。
上述說明係提出以使熟習本項技藝之任何人士能做成及使用該等實施例。對所揭示之實施例的各種修正將立即呈明顯於熟習本項技藝的該等人士,且在此所界定的一般原則可應用至其他的實施例及應用,而不會背離本發明之精神和範疇。因此,本發明不應受限於所顯示之實施例,而是應依據與在此所揭示的原理及特徵一致之最廣義的範圍。
在此發明中所敘述之該等資料結構及代碼可被部分地,或完全地儲存在電腦可讀取之儲存媒體及/或硬體模組及/或硬體設備上。電腦可讀取之儲存媒體包含,但並未受限於揮發性記憶體、非揮發性記憶體、諸如碟片驅動器之磁性及光學儲存裝置、磁帶、CD(小型光碟)、DVD(數位多功能碟片或數位視頻碟片)、揮發性記憶體、或目前所已知或爾後將發展之能儲存代碼及/或資料的其他媒體。在此發明中所敘述之硬體模組或設備包含,但並未受限於應用特定積體電路(ASIC)、可場編程之閘陣列(FPGA)、專用或共享之處理器、及/或目前所已知或爾後將發展之其他的硬體模組或設備。
在此發明中所敘述之該等方法及處理可被部分地,或完全地實施為被儲存在電腦可讀取之儲存媒體或裝置中的代碼及/或資料,使得當電腦系統讀取及執行該 代碼及/或資料時,該電腦系統可執行相關聯的方法及處理。該等方法及處理亦可被部分地,或完全地實施於硬體模組或設備中,使得當該等硬體模組或設備被啟用時,它們可執行相關聯的方法及處理。應注意的是,該等方法及處理可使用代碼、資料、及硬體模組或設備的組合而實施。
本發明之實施例的上述說明僅被呈現以供描繪及說明的目的之用。它們並不打算要變成包羅無遺的,或要限制本發明至所揭示的形式。因而,許多修正和變化將呈明顯於熟習本項技藝之從業者。此外,上述之揭示並不打算要限制本發明。

Claims (14)

  1. 一種用以執行無損資料縮減之方法,該方法包含:根據資料塊而識別一或多個主要資料元件,其中該識別包含使用該資料塊的內容以透過資料結構導航,該資料結構根據主要資料元件的內容而組織主要資料元件;根據該資料塊及該一或多個主要資料元件而決定重建程式,以致使該資料塊可藉由施加該重建程式至該一或多個主要資料元件而被重建;以及產生該資料塊的無損縮減表示,其中該無損縮減表示包含對該一或多個主要資料元件中之各主要資料元件的參考資料,及該重建程式的說明,其中當被施加至該一或多個主要資料元件時,該重建程式之該說明指明轉變的序列,而造成該資料塊。
  2. 如申請專利範圍第1項之方法,其中該資料結構係樹狀資料結構,其中透過該資料結構導航包含在該樹狀資料結構中遍歷邊緣之序列,其中在該等邊緣之序列中的各邊緣對應根據該資料塊的該等內容所決定之名稱的一部分,以及其中被使用以導航至該樹狀資料結構中之節點的該名稱之各部分,對應被植根於該節點處的子樹狀物內之所有主要資料元件中所存在的內容。
  3. 如申請專利範圍第1項之方法,其中該使用該資料塊的內容以透過組織該等主要資料元件的該資料結構導航包含:根據該資料塊的該等內容而決定名稱;以及藉由使用該名稱的連續部分而透過該資料結構導航。
  4. 如申請專利範圍第1項之方法,其中該產生該資料塊的該無損減少表示係回應於決定以下而執行:(i)對該一或多個主要資料元件之參考資料的尺寸,與(ii)該重建程式之該說明的尺寸之總和係小於該資料塊的尺寸之臨限值部分;以及其中該方法進一步包含回應於決定以下:(i)對該一或多個主要資料元件之參考資料的尺寸,與(ii)該重建程式之該說明的尺寸之總和係大於或等於該資料塊的尺寸之臨限值部分,而在組織該等主要資料元件的該資料結構中添加該資料塊,做為新的主要資料元件,且產生該資料塊的第二無損縮減表示,其中該第二無損縮減表示包含對該新的主要資料元件之參考資料。
  5. 如申請專利範圍第1項之方法,其中轉變的該序列包含對重建程式儲存器中所儲存之第二重建程式的參考資料,其中當被施加至該一或多個主要資料元件時,該第二重建程式指明轉變的序列,而造成該資料塊。
  6. 如申請專利範圍第1項之方法,其中轉變的該序列包含:對重建程式儲存器中所儲存之第二重建程式的參考資料;及第三重建程式的說明,當被施加至該第二重建程式時,導致轉變的序列,而當該轉變的序列被施加至該一或多個主要資料元件時,造成該資料塊。
  7. 如申請專利範圍第1項之方法,該方法進一步包含:儲存該資料塊的該無損縮減表示於儲存裝置中;自該儲存裝置接收該資料塊的該無損縮減表示,其中該無損縮減表示包含對該一或多個主要資料元件的參考資料,及該重建程式的該說明;根據對該一或多個主要資料元件的參考資料而自該資料結構接收該一或多個主要資料元件;以及藉由施加該重建程式至該一或多個主要資料元件而產生該資料塊。
  8. 如申請專利範圍第1項之方法,該方法進一步包含因子分解輸入資料成為固定尺寸資料塊。
  9. 如申請專利範圍第1項之方法,該方法進一步包含因子分解輸入資料成為可變尺寸資料塊。
  10. 如申請專利範圍第9項之方法,其中該等可變尺寸資料塊的邊界係藉由施加指紋圖譜處理至該輸入資料而決定。
  11. 如申請專利範圍第1項之方法,進一步包含:在網路上傳送該資料塊的該無損縮減表示;以及在該網路上傳送該資料結構,其中該資料結構係在傳送該資料塊的該無損縮減表示之前、之同時、或之後傳送,該資料結構根據主要資料元件的內容而組織主要資料元件。
  12. 一種用以執行無損資料縮減之設備,包含:識別裝置,用以根據資料塊而識別一或多個主要資料元件,其中該識別裝置使用該資料塊的內容以透過資料結構導航,該資料結構根據主要資料元件的內容而組織主要資料元件;決定裝置,用以根據該資料塊及該一或多個主要資料元件而決定重建程式,以致使該資料塊可藉由施加該重建程式至該一或多個主要資料元件而被重建;以及產生裝置,用以產生該資料塊的無損縮減表示,其中該無損縮減表示包含對該一或多個主要資料元件中之各主要資料元件的參考資料,及該重建程式的說明,其中當被施加至該一或多個主要資料元件時,該重建程式之該說明指明轉變的序列,而造成該資料塊。
  13. 如申請專利範圍第12項之設備,其中該資料結構係樹狀資料結構,其中透過該資料結構導航包含在該樹狀資料結構中遍歷邊緣之序列,其中在該等邊緣之序列中的各邊緣對應根據該資料塊的該等內容所決定之名稱的一部分,以及其中被使用以導航至該樹狀資料結構中之節點的該名稱之各部分,對應被植根於該節點處的子樹狀物內之所有主要資料元件中所存在的內容。
  14. 如申請專利範圍第12項之設備,進一步包含:用以在網路上傳送該資料塊的該無損縮減表示之裝置;以及用以在該網路上傳送該資料結構之裝置,其中該資料結構係在傳送該資料塊的該無損縮減表示之前、之同時、或之後傳送,該資料結構根據主要資料元件的內容而組織主要資料元件。
TW104143878A 2014-12-27 2015-12-25 藉由從駐存在內容相關篩中之主要資料元件取得資料的資料之無損縮減 TWI676903B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201462097070P 2014-12-27 2014-12-27
US62/097,070 2014-12-27
US14/685,199 2015-04-13
US14/685,191 US9292584B1 (en) 2014-12-27 2015-04-13 Efficient data communication based on lossless reduction of data by deriving data from prime data elements resident in a content-associative sieve
US14/685,191 2015-04-13
US14/685,199 US9286313B1 (en) 2014-12-27 2015-04-13 Efficient lossless reduction of data by deriving data from prime data elements resident in a content-associative sieve

Publications (2)

Publication Number Publication Date
TW201635173A TW201635173A (zh) 2016-10-01
TWI676903B true TWI676903B (zh) 2019-11-11

Family

ID=55450138

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104143878A TWI676903B (zh) 2014-12-27 2015-12-25 藉由從駐存在內容相關篩中之主要資料元件取得資料的資料之無損縮減

Country Status (7)

Country Link
US (2) US9292584B1 (zh)
EP (1) EP3238344B1 (zh)
JP (1) JP6596102B2 (zh)
KR (1) KR102496954B1 (zh)
CN (1) CN107210753B (zh)
TW (1) TWI676903B (zh)
WO (1) WO2016106397A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108633B2 (en) 2014-12-27 2018-10-23 Ascava, Inc. Using a distributed prime data sieve for efficient lossless reduction, search, and retrieval of data
US10387374B2 (en) 2015-02-27 2019-08-20 Exagrid Systems, Inc. Scalable grid deduplication
US10073855B2 (en) * 2015-05-21 2018-09-11 Exagrid Systems, Inc. Dynamic and optimized management of grid system resources
EP3311494B1 (en) * 2015-06-15 2021-12-22 Ascava, Inc. Performing multidimensional search, content-associative retrieval, and keyword-based search and retrieval on data that has been losslessly reduced using a prime data sieve
US10303656B2 (en) 2015-08-13 2019-05-28 Exagrid Systems, Inc. Parallelizing and deduplicating backup data
US11150997B2 (en) 2015-08-19 2021-10-19 Exagrid Systems, Inc. Adaptive bandwidth management of a replication process
CN107153647B (zh) * 2016-03-02 2021-12-07 北京字节跳动网络技术有限公司 进行数据压缩的方法、装置、系统和计算机程序产品
US10509780B2 (en) * 2016-06-03 2019-12-17 Dell Products L.P. Maintaining I/O transaction metadata in log-with-index structure
US10303402B2 (en) 2016-08-02 2019-05-28 Seagate Technology Llc Data compression using partial statistics
JP6857068B2 (ja) * 2017-03-31 2021-04-14 アズビル株式会社 時系列データ記録方法および装置
US11363296B2 (en) 2017-04-28 2022-06-14 Ascava, Inc. Lossless reduction of data by using a prime data sieve and performing multidimensional search and content-associative retrieval on data that has been losslessly reduced using a prime data sieve
KR102557384B1 (ko) * 2018-02-14 2023-07-19 삼성전자주식회사 전자장치 및 그 제어방법
CN110610450B (zh) * 2018-06-15 2023-05-05 伊姆西Ip控股有限责任公司 数据处理方法、电子设备和计算机可读存储介质
US10866928B2 (en) 2018-09-10 2020-12-15 Netapp, Inc. Methods for optimized variable-size deduplication using two stage content-defined chunking and devices thereof
KR102208364B1 (ko) * 2018-10-19 2021-01-28 펌킨네트웍스(주) 트래픽 최적화 장치 및 그 방법
US20220066994A1 (en) * 2018-12-13 2022-03-03 Ascava, Inc. Efficient retrieval of data that has been losslessly reduced using a prime data sieve
US11263116B2 (en) 2019-01-24 2022-03-01 International Business Machines Corporation Champion test case generation
US11010285B2 (en) 2019-01-24 2021-05-18 International Business Machines Corporation Fault detection and localization to generate failing test cases using combinatorial test design techniques
US11106567B2 (en) 2019-01-24 2021-08-31 International Business Machines Corporation Combinatoric set completion through unique test case generation
US11099975B2 (en) 2019-01-24 2021-08-24 International Business Machines Corporation Test space analysis across multiple combinatoric models
US11010282B2 (en) 2019-01-24 2021-05-18 International Business Machines Corporation Fault detection and localization using combinatorial test design techniques while adhering to architectural restrictions
US11422924B2 (en) 2019-06-13 2022-08-23 International Business Machines Corporation Customizable test set selection using code flow trees
US11232020B2 (en) 2019-06-13 2022-01-25 International Business Machines Corporation Fault detection using breakpoint value-based fingerprints of failing regression test cases
US11036624B2 (en) 2019-06-13 2021-06-15 International Business Machines Corporation Self healing software utilizing regression test fingerprints
US10970197B2 (en) 2019-06-13 2021-04-06 International Business Machines Corporation Breakpoint value-based version control
US10970195B2 (en) 2019-06-13 2021-04-06 International Business Machines Corporation Reduction of test infrastructure
US10963366B2 (en) 2019-06-13 2021-03-30 International Business Machines Corporation Regression test fingerprints based on breakpoint values
US10990510B2 (en) 2019-06-13 2021-04-27 International Business Machines Corporation Associating attribute seeds of regression test cases with breakpoint value-based fingerprints
JP2023525791A (ja) * 2020-05-11 2023-06-19 アスカバ・インコーポレイテッド 基本データシーブを使用して無損失削減されたデータの効率的な取出しのための基本データの局所性の利用
US20230315606A1 (en) * 2022-03-30 2023-10-05 Vast Data Ltd. File systems capacity estimation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412384A (en) * 1993-04-16 1995-05-02 International Business Machines Corporation Method and system for adaptively building a static Ziv-Lempel dictionary for database compression
TW449997B (en) * 1995-04-28 2001-08-11 Canon Kk Character processing apparatus, character processing method and memory
TWI224457B (en) * 2000-12-28 2004-11-21 Media Do Inc Content relay service device for relay transferring web content on internet while reducing data amount
TWI293533B (en) * 2001-09-26 2008-02-11 Jodie Lynn Reynolds System and method for communication media signals
US20130185267A1 (en) * 2004-11-08 2013-07-18 Mitotech, Llc Methods and systems for compressing and comparing genomic data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100354531B1 (ko) * 1998-05-06 2005-12-21 삼성전자 주식회사 실시간 복호화를 위한 무손실 부호화 및 복호화 시스템
CA2396369A1 (en) * 2000-01-03 2001-07-12 Caleb Avery Efficient and lossless conversion for transmission or storage of data
US7599434B2 (en) * 2001-09-26 2009-10-06 Reynolds Jodie L System and method for compressing portions of a media signal using different codecs
US7365658B2 (en) * 2006-02-28 2008-04-29 The Board Of Trustees Of The University Of Arkansas Method and apparatus for lossless run-length data encoding
EP1852848A1 (en) * 2006-05-05 2007-11-07 Deutsche Thomson-Brandt GmbH Method and apparatus for lossless encoding of a source signal using a lossy encoded data stream and a lossless extension data stream
US7885988B2 (en) * 2006-08-24 2011-02-08 Dell Products L.P. Methods and apparatus for reducing storage size
JP2011508497A (ja) * 2007-12-21 2011-03-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 画像データの効率的な伝送の方法及び装置
US8751462B2 (en) * 2008-11-14 2014-06-10 Emc Corporation Delta compression after identity deduplication
US8522125B1 (en) * 2010-04-09 2013-08-27 The Research Foundation Of State University Of New York System and method for efficient horizontal maximum distance separable raid
US8694703B2 (en) * 2010-06-09 2014-04-08 Brocade Communications Systems, Inc. Hardware-accelerated lossless data compression
CN102360381B (zh) * 2011-09-29 2014-03-12 深圳众为兴技术股份有限公司 一种对嵌入式程序进行无损压制的装置和方法
US9703796B2 (en) * 2011-12-06 2017-07-11 Brocade Communications Systems, Inc. Shared dictionary between devices
US8868505B1 (en) * 2012-03-20 2014-10-21 Emc Corporation Systems and methods for protecting data in a network host environment
US9384254B2 (en) * 2012-06-18 2016-07-05 Actifio, Inc. System and method for providing intra-process communication for an application programming interface
US20140006536A1 (en) * 2012-06-29 2014-01-02 Intel Corporation Techniques to accelerate lossless compression
CN103746702B (zh) * 2013-12-17 2017-01-11 记忆科技(深圳)有限公司 数据的无损压缩方法与装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412384A (en) * 1993-04-16 1995-05-02 International Business Machines Corporation Method and system for adaptively building a static Ziv-Lempel dictionary for database compression
TW449997B (en) * 1995-04-28 2001-08-11 Canon Kk Character processing apparatus, character processing method and memory
TWI224457B (en) * 2000-12-28 2004-11-21 Media Do Inc Content relay service device for relay transferring web content on internet while reducing data amount
TWI293533B (en) * 2001-09-26 2008-02-11 Jodie Lynn Reynolds System and method for communication media signals
US20130185267A1 (en) * 2004-11-08 2013-07-18 Mitotech, Llc Methods and systems for compressing and comparing genomic data

Also Published As

Publication number Publication date
CN107210753A (zh) 2017-09-26
EP3238344B1 (en) 2022-03-09
KR102496954B1 (ko) 2023-02-08
WO2016106397A1 (en) 2016-06-30
EP3238344A1 (en) 2017-11-01
KR20170104509A (ko) 2017-09-15
TW201635173A (zh) 2016-10-01
EP3238344A4 (en) 2018-05-16
CN107210753B (zh) 2021-03-09
US9286313B1 (en) 2016-03-15
US9292584B1 (en) 2016-03-22
JP2018501752A (ja) 2018-01-18
JP6596102B2 (ja) 2019-10-23

Similar Documents

Publication Publication Date Title
TWI676903B (zh) 藉由從駐存在內容相關篩中之主要資料元件取得資料的資料之無損縮減
US11947494B2 (en) Organizing prime data elements using a tree data structure
TWI789392B (zh) 藉由使用主要資料篩的資料無損縮減及對於已經使用主要資料篩來無損地縮減的資料進行多維度搜索和內容關聯的檢索
TWI720086B (zh) 儲存在區塊處理儲存系統上的音頻資料和資料的縮減
TWI709047B (zh) 對其已使用主要資料篩而被無損減少的資料履行多維搜尋、內容相關擷取、及關鍵字為基的搜尋和擷取
TW202147787A (zh) 利用主要資料的局部性來有效率檢索已使用主要資料篩而被無損地縮減的資料
TWI816954B (zh) 用於重建無損地縮減的資料塊的序列的方法和設備,用於確定主要資料元件的元資料的方法和設備,及儲存媒體