專利名稱:根據(jù)數(shù)據(jù)歷史優(yōu)化不同數(shù)字式數(shù)據(jù)的存儲(chǔ)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于根據(jù)數(shù)據(jù)歷史優(yōu)化數(shù)字式存儲(chǔ)器中的數(shù)據(jù)的存儲(chǔ)的方法和系統(tǒng)。
背景技術(shù):
最近幾十年用于數(shù)據(jù)壓縮、數(shù)據(jù)庫(kù)的算法、硬件,以及在用于數(shù)字式信
息的優(yōu)化存儲(chǔ)的專用硬件出現(xiàn)了迅i^L^。
壓縮算法和標(biāo)準(zhǔn)化數(shù)據(jù)庫(kù)(normalized database)( —種數(shù)據(jù)庫(kù),其中相同的數(shù)據(jù)出現(xiàn)(occurrence)用引用地址或者其它標(biāo)識(shí)數(shù)據(jù)代替)的共同特點(diǎn)是僅能夠選出格式和大小(magnitude)相同的重復(fù)數(shù)據(jù)。因此,盡管數(shù)據(jù)在其實(shí)際應(yīng)用中是相同或者類似的,但是如果數(shù)據(jù)僅在最小程度上不同,就不能完全地選出不同格式的相同數(shù)據(jù)的重復(fù)。這個(gè)缺陷也存在于已有的按照標(biāo)準(zhǔn)化數(shù)據(jù)庫(kù)構(gòu)建的存儲(chǔ)系統(tǒng)和文件系統(tǒng)。
具有共同歷史的相互不類似的數(shù)據(jù)出現(xiàn)的示例是以其它方式壓縮、加密或者處理導(dǎo)致完全或者部分地改變文件的數(shù)據(jù)文件的多個(gè)副本。在4艮多情況下,盡管文件已經(jīng)改變,但是文件的實(shí)際應(yīng)用不變。如果文件不能在改變之后直接使用,通常能夠重建文件的更早的版本,并且接著使用重建的版本。在某些存儲(chǔ)系統(tǒng)中,存儲(chǔ)這些重復(fù)的數(shù)據(jù)出現(xiàn)將會(huì)造成存儲(chǔ)容量的明顯損失。
發(fā)明內(nèi)容
本發(fā)明的目的是優(yōu)化數(shù)字式存儲(chǔ)器的存儲(chǔ)能力的使用。該目的是通過(guò)選出具有共同歷史的數(shù)據(jù)的重復(fù)出現(xiàn),而不管該數(shù)據(jù)在實(shí)質(zhì)上是否完全不同來(lái)實(shí)現(xiàn)的。
當(dāng)數(shù)據(jù)的格式或者大小改變但實(shí)際應(yīng)用相同時(shí),以及當(dāng)能夠從改變后的數(shù)據(jù)重建數(shù)扭的更早版本時(shí),這種分選是可能的。
在標(biāo)識(shí)信息輔助下,能夠?qū)?shù)據(jù)序列進(jìn)行區(qū)分,該標(biāo)識(shí)信息例如名稱、 時(shí)間、更早的存儲(chǔ)地址、校驗(yàn)和(由不同數(shù)學(xué)算法創(chuàng)建的針對(duì)數(shù)據(jù)的數(shù)字式 "指紋")或者此類信息的組合。當(dāng)改變了所存儲(chǔ)的數(shù)據(jù)的系統(tǒng)還更新版本 歷史作為對(duì)改變的響應(yīng)時(shí),能夠識(shí)別并避免重復(fù)的出現(xiàn),而不管數(shù)據(jù)出現(xiàn)之 間的不相似性。
當(dāng)文件的內(nèi)容發(fā)生了巨大改變以至于認(rèn)為創(chuàng)建了新的第一代時(shí),通常不 適宜將例如數(shù)據(jù)文件的兩個(gè)版M儲(chǔ)為單一實(shí)體。但許多數(shù)據(jù)改變是數(shù)據(jù)的 格式改變而不是其內(nèi)容或者所述內(nèi)容的實(shí)際應(yīng)用改變。例如,包含聲音波形
形式的數(shù)字式描述的所謂WAVE數(shù)據(jù)文件可用不同方式壓縮、用不同方式加 密以及進(jìn)行調(diào)節(jié)音量,而其內(nèi)容通常不曾經(jīng)歷改變。
此外,更小的數(shù)據(jù)序列根據(jù)其歷史在一些點(diǎn)可能是相同的,盡管作為這 些序列的來(lái)源的更大的計(jì)算機(jī)單元作為整體在任何一點(diǎn)都不同。
由此,盡管這些序列來(lái)源于作為整體缺少共同歷史的更大的數(shù)據(jù)單元, 并且盡管所述序列能夠作為所述更大單元的一部分讀回,更小的數(shù)據(jù)序列在 多數(shù)情況下能夠存儲(chǔ)為單一序列。
這使得在能夠根據(jù)其歷史區(qū)分相同數(shù)據(jù)的不同版本的存儲(chǔ)系統(tǒng)的輔助 下,能夠節(jié)省大量的存儲(chǔ)空間。
當(dāng)系統(tǒng)在包括例如測(cè)量設(shè)備、電信設(shè)備、計(jì)算機(jī)服務(wù)器或者個(gè)人計(jì)算機(jī) 的一個(gè)或者更多個(gè)通信網(wǎng)絡(luò)中用作存儲(chǔ)單元時(shí),其中多個(gè)外部單元通常共享 大量的具有共同歷史的數(shù)據(jù),系統(tǒng)效率通常特別顯著。
更具體地,根據(jù)以下描述,本發(fā)明使得能夠更有效地存儲(chǔ)數(shù)字式數(shù)據(jù)
1. 如果正被分選的數(shù)字式數(shù)據(jù)的序列小于以便捷的方式對(duì)所存儲(chǔ)的數(shù) 據(jù)重新讀取而要求的單位時(shí),在數(shù)字式存儲(chǔ)器中存儲(chǔ)信息,該信息涉及構(gòu)成 方便的完整數(shù)據(jù)單元的數(shù)據(jù)序列和數(shù)據(jù)序列應(yīng)該如何連接在一起的順序。
2. 在數(shù)字式存儲(chǔ)器中存儲(chǔ)涉及每個(gè)存儲(chǔ)的數(shù)據(jù)序列的至少一個(gè)更早版 本的標(biāo)識(shí)信息。數(shù)據(jù)序列和標(biāo)識(shí)可具有固定或可變的長(zhǎng)度。還能夠使用涉及 實(shí)際存儲(chǔ)在系統(tǒng)中的數(shù)據(jù)的版本的標(biāo)識(shí)信息,例如以判斷當(dāng)在數(shù)字式存儲(chǔ)器 寫入或讀取時(shí)是否發(fā)生了餘溪。然而,這一點(diǎn)對(duì)于在本發(fā)明的根據(jù)數(shù)據(jù)歷史 選出重復(fù)的數(shù)據(jù)的出現(xiàn)不十分重要。
3. 當(dāng)要存儲(chǔ)新的數(shù)據(jù)序列時(shí),所述數(shù)據(jù)的版本歷史中的標(biāo)識(shí)信息與更早
5存儲(chǔ)的數(shù)據(jù)序列的版本歷史申的標(biāo)識(shí)信息相比較。所述比較包括通過(guò)誄存的 標(biāo)識(shí)信息的媒介比較新序列的更早的版本和存儲(chǔ)的序列的多個(gè)更早的版本。 如果在一些點(diǎn)新序列的歷史與更早存儲(chǔ)的序列的歷史一致,不保存新數(shù)據(jù)序 列。代替的,存儲(chǔ)針對(duì)更早存儲(chǔ)的數(shù)據(jù)序列的引用。
4. 然而,通常在點(diǎn)3中存儲(chǔ)這個(gè)新數(shù)據(jù)序列的歷史,盡管序列實(shí)質(zhì)上沒(méi)
有存儲(chǔ)。這僅是為了使系統(tǒng)更有效以;5U^從系統(tǒng)重新讀取數(shù)據(jù)的簡(jiǎn)化。
5. 如果新數(shù)據(jù)序列的歷史標(biāo)識(shí)信息在任何點(diǎn)不能與涉及更早存儲(chǔ)的數(shù) 據(jù)序列的歷史信息一致,則在數(shù)字式存儲(chǔ)器中存,數(shù)據(jù)序列。新數(shù)據(jù)序列 的歷史也被存儲(chǔ)。
6. 當(dāng)從系統(tǒng)讀取更小的數(shù)據(jù)序列時(shí),選擇基于歷史標(biāo)識(shí)信息。系統(tǒng)接著 試圖識(shí)別存儲(chǔ)的組成相關(guān)的在后版本的所需要的數(shù)據(jù)的序列。接著從數(shù)字式 存儲(chǔ)器中讀出所M列。
7. 當(dāng)讀取由多個(gè)更小的序列組成的更大的數(shù)據(jù)單元時(shí),首先讀M儲(chǔ)了 更大單元的歷史的數(shù)字式存儲(chǔ)器。所述歷史示出能夠一起重建單元的序列以 及所述序列組合時(shí)必須采用的順序。接著讀料目關(guān)的更小的數(shù)據(jù)序列,并合 并為更大的數(shù)據(jù)單元。
8. 當(dāng)希望時(shí)(例如在多種形式的數(shù)據(jù)壓縮和加密的情況下),在4艮多情 況下能夠?qū)崿F(xiàn)從之后的數(shù)據(jù)版本恢復(fù)更早的數(shù)據(jù)版本。例如,相關(guān)的算法或 硬件能夠以分步的方式從之后的版本重建更早的數(shù)據(jù)版本,之后涉及所期望 的更早版本的標(biāo)識(shí)信息與當(dāng)前重建版本的標(biāo)識(shí)信息比較。如果標(biāo)識(shí)信息一 致,則能夠認(rèn)為已經(jīng)重建了更早的數(shù)據(jù)版本。
本發(fā)明方法還具備其它優(yōu)點(diǎn)。例如,存儲(chǔ)系統(tǒng)能夠隨后對(duì)已經(jīng)存儲(chǔ)的數(shù) 據(jù)進(jìn)行壓縮,或者對(duì)已經(jīng)存儲(chǔ)的數(shù)據(jù)進(jìn)行解壓縮并且按照比之前的情形更有 效的方法再次壓縮,而無(wú)需改變涉及此數(shù)據(jù)的更早的標(biāo)識(shí)信息,并且無(wú)需使 信息的重新讀取復(fù)雜化。
當(dāng)使用本發(fā)明作為介質(zhì)時(shí),例如用于一個(gè)或更多個(gè)外部磁盤(多M)的 數(shù)據(jù)備除復(fù)制,系統(tǒng)能夠存儲(chǔ)針對(duì)數(shù)據(jù)序列的更早版本的地址信息,例如扇 區(qū)信息,這也支持根據(jù)本發(fā)明的簡(jiǎn)單的讀取或恢復(fù)。更早的數(shù)據(jù)版本的地址 信息接著優(yōu)選地存儲(chǔ)在單獨(dú)的數(shù)字式存儲(chǔ)器中,其中涉及更小的數(shù)據(jù)序列的 標(biāo)識(shí)信息與所述地址信息耦合。
6下面將參照附圖
詳細(xì)描述根據(jù)本發(fā)明的方法,其中
圖l是示出如何生成數(shù)據(jù)的版本標(biāo)識(shí)信息的示意和筒化圖2是示出如何根據(jù)歷史信息選出重復(fù)的數(shù)據(jù)的出現(xiàn)的示意和簡(jiǎn)化圖;
以及
圖3示出在數(shù)字式磁盤單元的控制卡中實(shí)施的方法。
具體實(shí)施例方式
圖l示出如何生成數(shù)據(jù)的版本標(biāo)識(shí)信息。更大的數(shù)據(jù)單元由存儲(chǔ)在數(shù)字 式存儲(chǔ)器(11)中的多個(gè)數(shù)據(jù)序列組成。為每個(gè)更小的數(shù)據(jù)序列創(chuàng)建(12) 與涉及序列的當(dāng)前版本的信息一起存儲(chǔ)在另一數(shù)字式存儲(chǔ)器(112)中的標(biāo) 識(shí)信息。在更大的完整數(shù)據(jù)單元的這一版本中包括的較小數(shù)據(jù)序列的編譯列 表(13 )保存在數(shù)字式存儲(chǔ)器(111)中。在點(diǎn)(14 )改變整個(gè)或者部分?jǐn)?shù)據(jù) 單元,結(jié)果產(chǎn)生新的完全不同的數(shù)據(jù)單元(15)。對(duì)這個(gè)新的更大的數(shù)據(jù)單 元重復(fù)上述處理,包括在相應(yīng)的數(shù)字式存儲(chǔ)器(112)和(111)中創(chuàng)建和存 儲(chǔ)標(biāo)識(shí)信息(16 )和編^"信息(17 )。
當(dāng)在數(shù)據(jù)單元中進(jìn)行進(jìn)一步改變(18)時(shí),每個(gè)數(shù)據(jù)序列的長(zhǎng)度和數(shù) 據(jù)單元作為奮本的長(zhǎng)度(19)也改變。當(dāng)數(shù)據(jù)的大小縮小時(shí),為了不使用不 必要數(shù)量的存儲(chǔ)空間,當(dāng)在磁盤(110)上存儲(chǔ)時(shí),數(shù)據(jù)序列打包在一起以 形成更短的連續(xù)數(shù)據(jù)單元。
當(dāng)讀取存儲(chǔ)的數(shù)據(jù)時(shí),可以首先在存儲(chǔ)器(111)中搜索涉及數(shù)據(jù)單元的 期望版本的信息。所述信息可以接著用于在存儲(chǔ)器(112)中搜索(113)涉 及在作為整體的單元中包括的相關(guān)的更小數(shù)據(jù)序列的信息。
接著通過(guò)獲取的相關(guān)序列的列表(114)讀取數(shù)據(jù)序列以提供完整的數(shù) 據(jù)單元(U5)。在讀取這些數(shù)據(jù)序列之后,外部系統(tǒng)確定對(duì)此數(shù)據(jù)的正確的 后續(xù)處理,其中所述數(shù)據(jù)可能被解碼、從壓縮狀態(tài)解包或者不做修改直接使 用。
圖2示出如何根據(jù)歷史信息選出多個(gè)數(shù)據(jù)出現(xiàn)。在此示例中,僅使用了 具有永久和預(yù)定長(zhǎng)度的數(shù)據(jù)單元和數(shù)據(jù)序列。向系統(tǒng)給出數(shù)據(jù)單元(21)、 (22)和(23)以進(jìn)行存儲(chǔ)。
這三個(gè)數(shù)據(jù)單元彼此完全不同,并且每一個(gè)由三個(gè)更小的數(shù)據(jù)序列組 成。除了這些數(shù)據(jù)單元外,可得到外部創(chuàng)建的歷史版本信息,所述歷史版本信息提供針對(duì)所述數(shù)據(jù)單元的更早版本的標(biāo)識(shí)信息和針對(duì)單元中包括的各
個(gè)較小的數(shù)據(jù)序列的標(biāo)識(shí)信息。數(shù)據(jù)單元(21)的更早版本分別用(24)和 (27)標(biāo)明,數(shù)據(jù)單元(22)的更早版本分別用(25)和(28)標(biāo)明,并且 數(shù)據(jù)單元(23)的單一的更早版本用(26)標(biāo)明。
當(dāng)系統(tǒng)分析歷史版本信息時(shí)發(fā)現(xiàn)更早的數(shù)據(jù)單元(24)和(25)之間中 的數(shù)據(jù)序列相同,以及更早的數(shù)據(jù)單元(25)中的數(shù)據(jù)序列與數(shù)據(jù)單元(26) 的序列相同。
此外,更早的數(shù)據(jù)單元(27)中的全部序列與數(shù)據(jù)單元(28)中的序列 相同,意味,這些予元整體上也相同。對(duì),據(jù)單元的不同版本之間的,目,度
基于上述比較并且基于一種信息,系統(tǒng)選出具有一些共同歷史的數(shù)據(jù)序 列,其中該信息表示數(shù)據(jù)能夠用于重建更早的版本,或者表示數(shù)據(jù)是屬于一 種使得來(lái)自不同版本的數(shù)據(jù)序列能夠編譯進(jìn)相關(guān)的整體的類型。由此,在磁 盤(29)上僅僅M數(shù)據(jù)單元(22)和來(lái)自數(shù)據(jù)單元(23)的數(shù)據(jù)序列。
圖3示出在用于計(jì)算機(jī)服務(wù)器或者類似的數(shù)據(jù)存儲(chǔ)單元的數(shù)字式磁盤單 元(石更盤)的控制卡中實(shí)施的方法。
處理單元(31)在數(shù)字式工作存儲(chǔ)器(32)的輔助下對(duì)存儲(chǔ)在數(shù)字式存 儲(chǔ)器(33)的更大的數(shù)據(jù)單元的信息進(jìn)行分選,由此能夠找到和讀M儲(chǔ)在 存儲(chǔ)器(34)中的針對(duì)更小的數(shù)據(jù)序列的相關(guān)的歷史標(biāo)識(shí)信息。在從存儲(chǔ)器 (34)獲取的信息的輔助下,系統(tǒng)能夠接著通過(guò)其控制邏輯器件(35)從盤 單元(36)找到、讀取并編譯相關(guān)的較小數(shù)據(jù)序列。圖中還標(biāo)出了為了使系 統(tǒng)發(fā)揮功能而要求的硬件、驅(qū)動(dòng)軟件等(37),盡管這些超出本發(fā)明的保護(hù) 范圍。
權(quán)利要求
1. 一種用于優(yōu)化數(shù)字式信息的存儲(chǔ)的方法和系統(tǒng),其特征在于基于具有全部或者部分共同版本歷史的數(shù)據(jù)選出這種數(shù)據(jù)的過(guò)多出現(xiàn);其中甚至在數(shù)據(jù)完全或者部分不同時(shí),如果在已經(jīng)創(chuàng)建了存儲(chǔ)版本的所述數(shù)據(jù)的更早版本中發(fā)現(xiàn)相似性,也能夠選出所述數(shù)據(jù)的出現(xiàn);其中通過(guò)處理和保持具有固定或者可變長(zhǎng)度的歷史列表選出數(shù)據(jù)的冗余出現(xiàn),在所述歷史列表中存儲(chǔ)針對(duì)所存儲(chǔ)的數(shù)據(jù)的更早版本的標(biāo)識(shí)信息;其中如果涉及數(shù)據(jù)的出現(xiàn)的歷史中的一個(gè)或者更多個(gè)點(diǎn)與一個(gè)或者更多個(gè)其它數(shù)據(jù)出現(xiàn)的歷史中的一個(gè)或者更多個(gè)點(diǎn)一致,則僅僅存儲(chǔ)第一出現(xiàn);以及其中針對(duì)分類為冗余的數(shù)據(jù)的出現(xiàn),保存對(duì)對(duì)應(yīng)存儲(chǔ)的數(shù)據(jù)的引用。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,冗余數(shù)據(jù)的選出或者信息的確定^:置來(lái)處理的。
3. 根據(jù)權(quán)利要求1所述的方法和系統(tǒng),其特征在于,數(shù)據(jù)的重讀取 基于涉及所述數(shù)據(jù)的一個(gè)或者更多個(gè)更早版本的標(biāo)識(shí)信息。
4. 根據(jù)權(quán)利要求1所述的方法和系統(tǒng),其特征在于,在數(shù)字式存儲(chǔ) 器中存儲(chǔ)更大的數(shù)據(jù)單元的版本歷史,并利用所述數(shù)據(jù)找到、讀取和合并 小的數(shù)據(jù)序列為更大量的數(shù)據(jù)的更早版本。
5. 根據(jù)權(quán)利要求1和4所述的方法和系統(tǒng),其特征在于,數(shù)據(jù)單元 或者能夠一起重建更大的數(shù)據(jù)單元的較小數(shù)據(jù)序列的長(zhǎng)度整體上具有固 定或者可變的長(zhǎng)度。
6. 根據(jù)權(quán)利要求1所述的方法和系統(tǒng),其特征在于,對(duì)從數(shù)字式存數(shù)據(jù)的出現(xiàn)來(lái)實(shí)現(xiàn)。
7. 才艮據(jù)權(quán)利要求1所述的方法和系統(tǒng),其特征在于,對(duì)類似或者相 同的數(shù)據(jù)出現(xiàn)的選出基于出現(xiàn)數(shù)據(jù)的更早歷史。
8. 根據(jù)權(quán)利要求1所述的方法和系統(tǒng),其特征在于,對(duì)類似或者相 同的數(shù)據(jù)出現(xiàn)的分離基于出現(xiàn)數(shù)據(jù)的更早歷史。
9. 根據(jù)權(quán)利要求1所述的方法和系統(tǒng),其特征在于,在存儲(chǔ)數(shù)據(jù)之 后能夠改變數(shù)據(jù),例如通過(guò)隨后的壓縮,而無(wú)需改變更早的已存在的涉及 所述數(shù)據(jù)的標(biāo)識(shí)信息。
10.根據(jù)權(quán)刮要求l所述的方法和系統(tǒng),其特征在于,針對(duì)存儲(chǔ)的數(shù)據(jù)的一個(gè)或者更多個(gè)版本,所述系統(tǒng)在外部數(shù)字式存儲(chǔ)介質(zhì)中保存并允許 讀取數(shù)據(jù)單元的或者更小的數(shù)據(jù)序列的對(duì)應(yīng)地址。
全文摘要
本發(fā)明涉及對(duì)諸如磁盤(硬盤)的數(shù)字式存儲(chǔ)器(11)中的數(shù)據(jù)的存儲(chǔ)的優(yōu)化。這是可行的,因?yàn)楸M管數(shù)據(jù)的格式或大小已經(jīng)改變,但是不同版本的數(shù)據(jù)通常具有相同或類似的內(nèi)容。能夠選出在一些點(diǎn)具有相同歷史的數(shù)據(jù)重復(fù)的出現(xiàn),以允許更有效地利用數(shù)字式存儲(chǔ)器的存儲(chǔ)容量。
文檔編號(hào)G06F7/06GK101467126SQ200780022195
公開日2009年6月24日 申請(qǐng)日期2007年6月15日 優(yōu)先權(quán)日2006年6月16日
發(fā)明者托比亞斯·??瞬寄?申請(qǐng)人:托比亞斯·??瞬寄?br>