將數(shù)據(jù)塊分離成多個流以用于壓縮的制作方法
【專利摘要】本發(fā)明提供了用于數(shù)據(jù)塊的在線分離以用于壓縮的示例性方法、系統(tǒng)以及計算機(jī)程序產(chǎn)品實施方式。在一個實施方式中,僅以示例的方式,基于各種屬性對不相關(guān)數(shù)據(jù)塊進(jìn)行分類。已分類數(shù)據(jù)塊被發(fā)送到至少一個可用壓縮上下文。已分類數(shù)據(jù)塊是相關(guān)的。已分類數(shù)據(jù)塊被至少一個壓縮操作編碼。實現(xiàn)壓縮比并包括為反饋。公開了附加系統(tǒng)和計算機(jī)系統(tǒng)產(chǎn)品實施方式且其提供相關(guān)優(yōu)點。
【專利說明】將數(shù)據(jù)塊分離成多個流以用于壓縮
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般地涉及計算機(jī),并且更具體地涉及在計算中將數(shù)據(jù)塊(chunk)分離成多個流以用于壓縮。
【背景技術(shù)】
[0002]在當(dāng)今社會中,計算機(jī)系統(tǒng)是普遍的。在工作地點、家中或者在學(xué)??烧业接嬎銠C(jī)系統(tǒng)。計算機(jī)系統(tǒng)可包括數(shù)據(jù)存儲系統(tǒng)或磁盤存儲系統(tǒng)以處理和存儲數(shù)據(jù)。近年來,軟件和硬件技術(shù)兩者都已經(jīng)歷令人驚異的進(jìn)步。利用新技術(shù),添加了越來越多的功能,并且為了與這些電子設(shè)備一起使用而提供了更大的方便性。由最近計算機(jī)技術(shù)引入的最顯著變化中的一個是包括圖像、視頻以及音頻以增強(qiáng)計算機(jī)和電子設(shè)備的能力。在多媒體年代,要處理的信息量大大增加。處理大數(shù)據(jù)文件的一個普遍方法是壓縮數(shù)據(jù)以用于存儲或傳輸。處理非常大量的信息是要解決的關(guān)鍵問題,并且因此需要改善用于存儲或傳輸?shù)臄?shù)據(jù)壓縮。
【發(fā)明內(nèi)容】
[0003]隨著對更快、更強(qiáng)大且更高效的存儲信息的方式的日益增加的需要,存儲技術(shù)的優(yōu)化正在變成關(guān)鍵的挑戰(zhàn)??蓪⑦壿嫈?shù)據(jù)對象(數(shù)據(jù)文件、圖像文件、數(shù)據(jù)塊等)壓縮以用于傳輸和/或存儲。數(shù)據(jù)壓縮技術(shù)用來減少要存儲和/或發(fā)射的數(shù)據(jù)的量,以便分別地減少存儲容量和/或傳輸時間??赏ㄟ^使用不同的壓縮算法來實現(xiàn)壓縮,例如通過順序數(shù)據(jù)壓縮,其將數(shù)據(jù)流取做輸入并生成通常較短的輸出流,從該輸出流能夠恢復(fù)原始數(shù)據(jù)??赏ㄟ^采用各種寫模式來使用計算存儲系統(tǒng)。在一個模式中,可存在獨有地在存儲系統(tǒng)上操作的單個活動事務(wù)。在另一存儲系統(tǒng)中,可存在同時地寫入不相關(guān)數(shù)據(jù)的多個事務(wù)。
[0004]相應(yīng)地,并且鑒于前述內(nèi)容,提供了用于數(shù)據(jù)塊的在線分離以用于壓縮的各種示例性方法、系統(tǒng)以及計算機(jī)程序產(chǎn)品實施方式。在一個實施方式中,僅以示例的方式,基于各種屬性對不相關(guān)數(shù)據(jù)塊進(jìn)行分類。已分類數(shù)據(jù)塊被發(fā)送到至少一個可用壓縮上下文。已分類數(shù)據(jù)塊是相關(guān)的。已分類數(shù)據(jù)塊被至少一個壓縮操作編碼。實現(xiàn)壓縮比并包括為反饋。公開了附加系統(tǒng)和計算機(jī)系統(tǒng)產(chǎn)品實施方式且其提供相關(guān)優(yōu)點。
[0005]除前述示例性方法實施方式之外,還提供了其他示例性系統(tǒng)和計算機(jī)產(chǎn)品實施方式且其提供相關(guān)優(yōu)點。提供前述
【發(fā)明內(nèi)容】
是以簡化形式來介紹下面將在【具體實施方式】中進(jìn)一步描述的概念的選擇。本
【發(fā)明內(nèi)容】
并不意圖識別要求保護(hù)的主體的關(guān)鍵特征或本質(zhì)特征,其也不意圖被用作確定要求保護(hù)的主題的范圍的輔助。要求保護(hù)的主題不限于解決在【背景技術(shù)】中所述的任何或全部缺點的實施方式。
【專利附圖】
【附圖說明】
[0006]為了將容易地理解本發(fā)明的優(yōu)點,將參考在附圖中舉例說明的特定實施方式來提供上文簡要描述的本發(fā)明的更特別描述。應(yīng)當(dāng)了解到,附圖描述本發(fā)明的實施方式且因此不應(yīng)認(rèn)為限制其范圍,將通過使用附圖以附加的特殊性和細(xì)節(jié)來描述和解釋本發(fā)明,在所述附圖中:
[0007]圖1圖示出其中可實現(xiàn)本發(fā)明的各方面的具有示例性存儲設(shè)備的計算機(jī)存儲環(huán)境;
[0008]圖2圖示出示出了其中可實現(xiàn)本發(fā)明的各方面的計算機(jī)系統(tǒng)中的數(shù)據(jù)存儲系統(tǒng)的硬件結(jié)構(gòu)的示例性框圖;
[0009]圖3圖示出被發(fā)送以用于壓縮的不相關(guān)數(shù)據(jù)的示例性框圖;
[0010]圖4是圖示出用于將不相關(guān)數(shù)據(jù)塊分離成已分類數(shù)據(jù)塊以用于壓縮的示例性方法的流程圖;
[0011]圖5圖示出用于將不相關(guān)數(shù)據(jù)分離成已分類數(shù)據(jù)塊以用于壓縮的示例性框圖;以及
[0012]圖6圖示出用于使用反饋將不相關(guān)數(shù)據(jù)塊分離成已分類數(shù)據(jù)塊以用于壓縮的示例性圖。
【具體實施方式】
[0013]如前所述,隨著對更快、更強(qiáng)大且更高效的存儲信息的方式的日益增加的需要,存儲技術(shù)的優(yōu)化正在變成關(guān)鍵的挑戰(zhàn)。計算存儲系統(tǒng)可使用各種寫模式以便寫入數(shù)據(jù)塊。在一個模式中,可存在獨有地在存儲系統(tǒng)上操作的單個活動事務(wù)。在另一存儲系統(tǒng)中,可存在同時地寫入不相關(guān)數(shù)據(jù)的多個事務(wù)。在典型壓縮中,整體對象或文件正在被連續(xù)地饋送到對數(shù)據(jù)進(jìn)行編碼的壓縮流中。可使用用于生成已壓縮輸出的最近輸入數(shù)據(jù)的有界“窗口 ”。在時間壓縮中,數(shù)據(jù)正在按照時間順序、通常是被寫入存儲設(shè)備的順序而傳遞至壓縮流。在單個用戶向存儲設(shè)備寫入的情況下,時間壓縮實現(xiàn)與連續(xù)壓縮類似或較高的壓縮比。然而,在多個用戶或多個同時事務(wù)的情況下,不同組的數(shù)據(jù)實體正在被時間壓縮機(jī)制寫入并處理。結(jié)果,壓縮計算所使用的最近輸入的有界窗口可包含各段不相關(guān)數(shù)據(jù)塊(例如,數(shù)據(jù)片),其導(dǎo)致總壓縮比的減小。
[0014]相反地且為了解決前述效率低下,所示實施方式的機(jī)制基于數(shù)據(jù)(包括元數(shù)據(jù),如果有的話)的各種性質(zhì)將不相關(guān)數(shù)據(jù)片的壓縮分離。檢查(例如由分類器部件)以壓縮為目的地的每個數(shù)據(jù)片,其可選擇現(xiàn)有壓縮上下文或創(chuàng)建新的壓縮上下文。每個壓縮上下文可提供對所實現(xiàn)的壓縮比的反饋。壓縮上下文的機(jī)制可使用不同的壓縮算法。
[0015]轉(zhuǎn)到圖1,描述了其中可實現(xiàn)本發(fā)明的各方面的示例性計算機(jī)系統(tǒng)10。計算機(jī)系統(tǒng)10包括中央處理單元(CPU) 12,其被連接到大容量存儲設(shè)備14和存儲設(shè)備16。大容量存儲設(shè)備可包括硬盤驅(qū)動器(HDD)設(shè)備,其可以以獨立磁盤冗余陣列(RAID)來配置。存儲器設(shè)備16可包括諸如電可擦可編程只讀存儲器(EEPROM)或相關(guān)設(shè)備的主機(jī)之類的存儲器。存儲設(shè)備16和大容量存儲設(shè)備14經(jīng)由信號承載介質(zhì)被連接到CPU12。另外,CPU12通過通信端口 18被連接到通信網(wǎng)絡(luò)20,其具有附接的多個附加計算機(jī)系統(tǒng)22和24。計算機(jī)系統(tǒng)10可包括一個或多個處理設(shè)備(例如,CPU12)和用于計算機(jī)系統(tǒng)10的每個單獨部件的附加存儲設(shè)備16。
[0016]圖2是示出了根據(jù)本發(fā)明的計算機(jī)系統(tǒng)中的數(shù)據(jù)存儲系統(tǒng)的硬件架構(gòu)的示例性框圖200。示出了主機(jī)計算機(jī)210、220、225,每個充當(dāng)用于作為數(shù)據(jù)存儲系統(tǒng)200的一部分而執(zhí)行數(shù)據(jù)處理的中央處理單元。集群主機(jī)/節(jié)點(物理或虛擬設(shè)備)210、220和225可以是一個或多個新物理設(shè)備或邏輯設(shè)備,以在數(shù)據(jù)存儲系統(tǒng)200中實現(xiàn)本發(fā)明的目的。網(wǎng)絡(luò)(例如,存儲結(jié)構(gòu))連接260可以是光纖信道結(jié)構(gòu)、光纖信道點到點鏈路、通過以太網(wǎng)結(jié)構(gòu)或點到點鏈路的光纖信道、FICON或ESCON I/O接口。主機(jī)210、220和225可以是本地的或者分布在一個或多個位置之間,并且可裝配有到存儲控制器240的任何類型的結(jié)構(gòu)(或結(jié)構(gòu)信道)(圖2中未示出)或網(wǎng)絡(luò)適配器260,諸如光纖信道、FIC0N、ESC0N、以太網(wǎng)、光纖、無線或同軸適配器。數(shù)據(jù)存儲系統(tǒng)200相應(yīng)地裝配有適當(dāng)?shù)慕Y(jié)構(gòu)(圖2中未示出)或網(wǎng)絡(luò)適配器260以進(jìn)行通信。在圖2中描述了存儲控制器240和集群主機(jī)210、220和225的數(shù)據(jù)存儲系統(tǒng)200。集群主機(jī)210、220以及225可包括集群節(jié)點。
[0017]為了使得本文所述方法的更清楚理解,在圖2中將存儲控制器240示為單個處理單元,包括微處理器242、系統(tǒng)存儲器243和非易失性儲存器(“NVS”) 216,將在下面更詳細(xì)地描述。應(yīng)注意的是在某些實施方式中,存儲控制器240由多個處理單元組成,每個具有其自己的處理器復(fù)合體和系統(tǒng)存儲器,并被數(shù)據(jù)存儲系統(tǒng)200內(nèi)的專用網(wǎng)絡(luò)互連。此外,給定存儲結(jié)構(gòu)網(wǎng)絡(luò)連接260的使用,可通過使用存儲結(jié)構(gòu)260來將多個存儲控制器240連同被連接至每個存儲控制器240的一個或多個集群主機(jī)210、220和225 —起連接,來采用附加架構(gòu)配置。
[0018]在某些實施方式中,存儲控制器240的系統(tǒng)存儲器243包括操作軟件250,并且存儲處理器242可訪問以便執(zhí)行與執(zhí)行本發(fā)明的步驟和方法相關(guān)聯(lián)的功能和方法步驟的程序指令和數(shù)據(jù)。如圖2中所示,系統(tǒng)存儲器243還可包括用于緩存“寫數(shù)據(jù)”和“讀數(shù)據(jù)”(其分別指的是寫/讀請求及其關(guān)聯(lián)數(shù)據(jù))的高速緩沖存儲器(在本文中也稱為“高速緩沖存儲器”)或與之通信。在一個實施方式中,在系統(tǒng)存儲器243外部的設(shè)備中分配高速緩存器245,其仍可是微處理器242可訪問的,并且除執(zhí)行如本文所述的操作之外,還可提供針對數(shù)據(jù)丟失的附加安全。
[0019]在某些實施方式中,可用易失性存儲器和非易失性存儲器來實現(xiàn)高速緩存器245,并經(jīng)由本地總線(圖2中未示出)而耦合到微處理器242以獲得數(shù)據(jù)存儲系統(tǒng)200的增強(qiáng)性能。包括在數(shù)據(jù)存儲控制器中的NVS216是微處理器242可訪問的,并且為如其他圖中所述的操作和執(zhí)行提供附加支持。NVS216也可稱為“持久性”高速緩存器或“高速緩沖存儲器”,并且用可利用也可不利用電功率來保持存儲在其中的數(shù)據(jù)的非易失性存儲器來實現(xiàn)??沙鲇谶m合于實現(xiàn)本發(fā)明的目標(biāo)的任何目的將NVS存儲在高速緩存器245中并用其來存儲。在某些實施方式中,諸如電池之類的備用電源(圖2中未示出)為NVS216供應(yīng)足夠的功率以在到數(shù)據(jù)存儲系統(tǒng)200的功率損失的情況下保持存儲在其中的數(shù)據(jù)。在某些實施方式中,NVS216的容量小于或等于高速緩存器245的總?cè)萘俊?br>
[0020]存儲控制器240可包括數(shù)據(jù)分類模塊255和壓縮上下文模塊257。數(shù)據(jù)分類模塊255和壓縮上下文模塊257可以是同時地運(yùn)行的一個完整模塊、或單獨模塊。數(shù)據(jù)分類模塊255和壓縮上下文模塊257可具有某個內(nèi)部存儲器(未示出),其中壓縮算法可存儲未處理、已處理或“半處理”數(shù)據(jù)。數(shù)據(jù)分類模塊255和壓縮上下文模塊257可結(jié)合存儲控制器240、主機(jī)210、220、225以及可經(jīng)由存儲結(jié)構(gòu)260而遠(yuǎn)程連接的其他存儲控制器240和主機(jī)210、220和225的每個部件進(jìn)行工作。數(shù)據(jù)分類模塊255和壓縮上下文模塊257可以在結(jié)構(gòu)上是一個完整模塊,或者可與其他單獨模塊相關(guān)聯(lián)和/或被其他單獨模塊包括。數(shù)據(jù)分類模塊255和壓縮上下文模塊257還可位于高速緩存器256或存儲控制器240的其他部件中。
[0021]存儲控制器240包括:用于控制到主機(jī)計算機(jī)210、220、225的光纖信道協(xié)議的控制交換機(jī)241,用于控制所有存儲控制器240的微處理器242,用于存儲用于控制存儲控制器240的操作的微程序(操作軟件)250的非易失性控制存儲器243,用于臨時地存儲(緩沖)數(shù)據(jù)的高速緩存器245,以及用于幫助高速緩存器245讀和寫數(shù)據(jù)的緩沖器244,控制交換機(jī)241用于控制協(xié)議以控制到或來自數(shù)據(jù)分類模塊255和其中可設(shè)定信息的壓縮上下文模塊257的數(shù)據(jù)傳輸??蓪崿F(xiàn)多個緩沖器244以輔助如本文所述的方法和步驟。
[0022]在一個實施方式中,集群主機(jī)/節(jié)點210、220、225和存儲控制器240通過作為接口的網(wǎng)絡(luò)適配器(這可以是光纖信道)260、即經(jīng)由稱為“結(jié)構(gòu)”的交換機(jī)而被連接。在一個實施方式中,可如下描述圖2中所示的系統(tǒng)的操作。微處理器242可控制存儲器243以存儲來自集群主機(jī)/節(jié)點設(shè)備(物理或虛擬)210的命令信息和用于識別集群主機(jī)/節(jié)點設(shè)備(物理或虛擬)210的信息。控制交換機(jī)241、緩沖器244、高速緩存器245、操作軟件250、微處理器242、存儲器243、NVS216、數(shù)據(jù)分類模塊255以及壓縮上下文模塊257相互通信且可以是單獨或一個單獨部件。并且,存儲器243可以包括多個(如果不是全部的話)部件,諸如操作軟件250??蓪⑺驹O(shè)備內(nèi)的每個部件鏈接在一起且其可出于適合于本發(fā)明的目的而相互通信。
[0023]圖3圖示出被發(fā)送以用于壓縮的不相關(guān)數(shù)據(jù)的示例性框圖300。在圖3中,多個事務(wù)正在同時地寫入不相關(guān)數(shù)據(jù)。多個用戶302(被示為302A-C)正在同時地寫入數(shù)據(jù)304和306 (例如,示為304和306以指示不相關(guān)數(shù)據(jù)塊)。整個對象或文件正在被連續(xù)地饋送到對數(shù)據(jù)進(jìn)行編碼的壓縮流中。壓縮算法308使用最新輸入數(shù)據(jù)304和306的有界窗口 312以便生成壓縮數(shù)據(jù)310的壓縮輸出。結(jié)果,壓縮算法308所使用的最新輸入數(shù)據(jù)304和306的有界窗口 312可包含不相關(guān)數(shù)據(jù)片304和306的各段。
[0024]僅以示例的方式,本發(fā)明的機(jī)制提供用于壓縮的數(shù)據(jù)塊的在線分離。基于各種屬性將不相關(guān)數(shù)據(jù)塊分類。已分類數(shù)據(jù)塊被發(fā)送到至少一個可用壓縮上下文。已分類數(shù)據(jù)塊是相關(guān)的。已分類數(shù)據(jù)塊被至少一個壓縮操作編碼。實現(xiàn)用于包括在反饋中的壓縮比。轉(zhuǎn)到圖4,描述了圖示出用于將不相關(guān)數(shù)據(jù)塊分離成已分類數(shù)據(jù)塊以用于壓縮的示例性方法400的流程圖。方法400開始(步驟402)。不相關(guān)數(shù)據(jù)快基于一個或多個屬性而被分類和/或分離(步驟404)。該分類和/或分離數(shù)據(jù)塊被發(fā)送到至少一個壓縮上下文(步驟406)。被發(fā)送到壓縮上下文中的一個的已分類數(shù)據(jù)是相關(guān)的。該已分類數(shù)據(jù)被壓縮上下文操作中的一個編碼(步驟408)。該方法400結(jié)束(步驟410)。
[0025]圖5圖示出用于將不相關(guān)數(shù)據(jù)塊分離成已分類數(shù)據(jù)塊以用于壓縮的示例性框圖。分類器部件504接收可能伴隨有元數(shù)據(jù)514的數(shù)據(jù)塊502 (示為502A-B)。在接收到數(shù)據(jù)塊502時,分類器504基于各種屬性而將不相關(guān)數(shù)據(jù)塊502分類和/或分離成相關(guān)數(shù)據(jù)506。分類器504將相關(guān)數(shù)據(jù)506發(fā)送到壓縮上下文部件508中的一個或多個(示為508A-C)。壓縮上下文部件508接收數(shù)據(jù)塊作為輸入并生成壓縮數(shù)據(jù)(例如,相關(guān)壓縮數(shù)據(jù))作為輸出。壓縮上下文部件508還使用所選壓縮算法將相關(guān)數(shù)據(jù)506編碼。壓縮上下文部件508可將統(tǒng)計信息(或分類器504所需的其他必要信息)作為反饋512報告給分類器504。
[0026]已將相關(guān)數(shù)據(jù)(例如,相關(guān)的分類/分離數(shù)據(jù))506發(fā)送到壓縮上下文部件508中的一個,分類器504可判定將相關(guān)數(shù)據(jù)506重新發(fā)送到替換壓縮上下文508。如果相關(guān)數(shù)據(jù)506被重新發(fā)送到另一壓縮上下文部件508 (例如,從508A重新發(fā)送到508C),則分類器504可向首先接收到相關(guān)、已分類/數(shù)據(jù)506的壓縮上下文部件(例如508A)發(fā)送通知,以便指示某些壓縮上下文部件508的輸入數(shù)據(jù)(例如,相關(guān)數(shù)據(jù)506)現(xiàn)在正在被其他壓縮上下文508(例如,508C)處理。
[0027]如上所述,在接收到數(shù)據(jù)塊502時,分類器504基于各種屬性將不相關(guān)數(shù)據(jù)塊502分類和/或分離成相關(guān)數(shù)據(jù)506。分類判定可基于以下數(shù)據(jù)屬性中的一個或多個:1)已知格式-指紋識別:通過檢測已知格式、諸如已知報頭來將數(shù)據(jù)類型分類;2)字符分布(例如,ASCI1、二進(jìn)制、專用語言等):通過分析數(shù)據(jù)塊的統(tǒng)計特性來將數(shù)據(jù)塊分類-例如,如果僅存在英語文本字符的話,則數(shù)據(jù)塊將被發(fā)送到可能正在處理英語文本數(shù)據(jù)的同一壓縮上下文;3)先前分類數(shù)據(jù)與當(dāng)前正在被分類的數(shù)據(jù)之間的相似性;以及4)使用來自壓縮上下文的反饋,并選擇生成用于被同樣地分類/分離的數(shù)據(jù)的最佳壓縮比的壓縮上下文。利用第四屬性,可通過使用來自從先前分類數(shù)據(jù)塊實現(xiàn)的壓縮上下文的反饋且然后選擇生成關(guān)于類似數(shù)據(jù)的最佳壓縮比的壓縮上下文用此屬性,來實現(xiàn)新的不相關(guān)數(shù)據(jù)塊的分類。例如,如果數(shù)據(jù)塊具有按字符分布或按相同子串而類似于被發(fā)送到特定壓縮上下文的另一數(shù)據(jù)塊的部分,則在不理解數(shù)據(jù)類型的情況下,該機(jī)制可向同一壓縮上下文發(fā)送新的數(shù)據(jù)塊。
[0028]此外,如前所述,不相關(guān)數(shù)據(jù)塊可包括元數(shù)據(jù)。作為將不相關(guān)數(shù)據(jù)塊分類和分離成相關(guān)數(shù)據(jù)的一部分,分類判定可基于以下元數(shù)據(jù)屬性中的一個或多個:1)源標(biāo)識符(例如,識別從其接收到和/或發(fā)起不相關(guān)數(shù)據(jù)塊的用戶和/或服務(wù)器),如果可用的話;2)數(shù)據(jù)塊的尺寸,類似尺寸指示可能的數(shù)據(jù)相似性;3)數(shù)據(jù)塊的偏移位置(例如,具有相鄰位置的數(shù)據(jù)塊指示數(shù)據(jù)相似性,因為被寫入塊設(shè)備中的相鄰位置的數(shù)據(jù)塊很可能是由同一實體寫入的,因此在壓縮相鄰數(shù)據(jù)塊時導(dǎo)致增加的壓縮);以及4)從各種層傳遞的事務(wù)令牌。例如,某些應(yīng)用和通信層允許將元數(shù)據(jù)與數(shù)據(jù)塊一起傳遞,其在壓縮增強(qiáng)層處可以是可見的。元數(shù)據(jù)可指示數(shù)據(jù)塊之間的關(guān)系。另外,分類和分離判定可基于由壓縮上下文提供的反饋。
[0029]為了進(jìn)一步圖示出圖4-5的過程,圖6圖示出其中可實現(xiàn)本發(fā)明的各方面的用于使用反饋來將數(shù)據(jù)塊分離成多個流以用于壓縮的示例性圖。首先,由分類器604接收數(shù)據(jù)塊602 (與元數(shù)據(jù)一起)。分類器604將不相關(guān)數(shù)據(jù)分類成相關(guān)數(shù)據(jù)。分類器發(fā)送與所選壓縮上下文610和12有關(guān)的兩個單獨已分類數(shù)據(jù)塊。壓縮上下文610和612向分類器604返回反饋614和616。在接收到包括實現(xiàn)的壓縮比的各種統(tǒng)計信息(和/或其他反饋)時,分類器604可判定將已分類數(shù)據(jù)塊中的一個重新發(fā)送到替換壓縮上下文,且然后向壓縮上下文部件610發(fā)送通知618,即已分類數(shù)據(jù)塊中的一個應(yīng)被忽略,并通知壓縮上下文部件610的輸入數(shù)據(jù)現(xiàn)在正在被其他壓縮上下文處理。
[0030]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施方式中,本發(fā)明的各個方面還可以實現(xiàn)為在一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含計算機(jī)可讀的程序代碼。
[0031]可以采用一個或多個計算機(jī)可讀介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或設(shè)備,或者任意以上的組合。計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲設(shè)備、磁存儲設(shè)備、或者上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用或者與其結(jié)合使用。計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0032]可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計語言一諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0033]下面將參照根據(jù)本發(fā)明實施方式的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通用計算機(jī)、專用計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計算機(jī)程序指令在通過計算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0034]也可以把這些計算機(jī)程序指令存儲在計算機(jī)可讀介質(zhì)中,這些指令使得計算機(jī)、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令的制造品(article of manufacture)。也可以把計算機(jī)程序指令加載到計算機(jī)、其他可編程數(shù)據(jù)處理裝置、或其他設(shè)備上,使得在計算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其他可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0035]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施方式的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
[0036]雖然已詳細(xì)地圖示出本發(fā)明的一個或多個實施方式,本領(lǐng)域的技術(shù)人員將認(rèn)識到在不脫離如在以下權(quán)利要求中闡述的本發(fā)明的范圍的情況下可以對那些實施方式進(jìn)行變更和修改。
【權(quán)利要求】
1.一種用于在計算存儲環(huán)境中由處理器設(shè)備進(jìn)行數(shù)據(jù)塊的在線分離以用于壓縮的方法,所述方法包括: 基于多個屬性中的至少一個屬性將不相關(guān)數(shù)據(jù)塊分類以便將已分類數(shù)據(jù)塊發(fā)送到多個可用壓縮上下文中的至少一個可用壓縮上下文,其中已分類的所述數(shù)據(jù)塊是相關(guān)的;以及 由多個壓縮操作中的至少一個壓縮操作將已分類的所述數(shù)據(jù)塊編碼,其中壓縮比被實現(xiàn)并作為反饋而被包括。
2.根據(jù)權(quán)利要求1所述的方法,還包括:結(jié)合所述分類,選擇所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的現(xiàn)有的一個可用壓縮上下文,并創(chuàng)建所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的一個新的可用壓縮上下文。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述多個屬性中的所述至少一個屬性包括多個數(shù)據(jù)屬性和多個元數(shù)據(jù)屬性中的至少一個。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述多個數(shù)據(jù)屬性中的所述至少一個屬性包括已知數(shù)據(jù)格式、字符分布以及從所述反饋提供的先前分類的數(shù)據(jù)塊與當(dāng)前正在被分析以用于所述分類的所述不相關(guān)數(shù)據(jù)塊之間的相似性中的至少一個。
5.根據(jù)權(quán)利要求3所述的方法,其中,所述多個元數(shù)據(jù)屬性包括所述不相關(guān)數(shù)據(jù)塊的源的標(biāo)識、所述不相關(guān)數(shù)據(jù)塊的尺寸、所述不相關(guān)數(shù)據(jù)塊的偏移、以及從多個層中的一個層傳遞的事務(wù)令牌中的至少一個。
6.根據(jù)權(quán)利要求1所述的方法,還包括:結(jié)合所述發(fā)送來執(zhí)行以下各項中的至少一個: 將已分類的所述數(shù)據(jù)塊重新發(fā)送到所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的一個替換的可用壓縮上下文,以便處理已分類的所述數(shù)據(jù)塊。
7.根據(jù)權(quán)利要求6所述的方法,還包括:結(jié)合所述重新發(fā)送,向所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文發(fā)送通知以忽略已分類的所述數(shù)據(jù)塊。
8.根據(jù)權(quán)利要求1所述的方法,還包括:在所述發(fā)送之后,對已分類的所述數(shù)據(jù)塊使用多個可用壓縮操作中的一個可用壓縮操作。
9.一種用于在計算環(huán)境中對數(shù)據(jù)塊進(jìn)行在線分離以用于壓縮的系統(tǒng),包括: 處理器設(shè)備,在所述計算環(huán)境中可操作,其中所述處理器設(shè)備適合于: 基于多個屬性中的至少一個屬性將不相關(guān)數(shù)據(jù)塊分類以便將已分類的所述數(shù)據(jù)塊發(fā)送到多個可用壓縮上下文中的至少一個可用壓縮上下文,其中已分類的所述數(shù)據(jù)塊是相關(guān)的;以及 由多個壓縮操作中的至少一個壓縮操作將已分類的所述數(shù)據(jù)塊編碼,其中壓縮比被實現(xiàn)并作為反饋而被包括。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述處理器設(shè)備還適合于結(jié)合所述分類來選擇所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的現(xiàn)有的一個可用壓縮上下文,并創(chuàng)建所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的一個新的可用壓縮上下文。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述多個屬性中的所述至少一個屬性包括多個數(shù)據(jù)屬性和多個元數(shù)據(jù)屬性中的至少一個。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述多個數(shù)據(jù)屬性中的所述至少一個屬性包括已知數(shù)據(jù)格式、字符分布以及從反饋提供的先前分類數(shù)據(jù)塊與當(dāng)前正在被分析以用于所述分類的所述不相關(guān)數(shù)據(jù)塊之間的相似性中的至少一個。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述多個元數(shù)據(jù)屬性包括所述不相關(guān)數(shù)據(jù)塊的源的標(biāo)識、所述不相關(guān)數(shù)據(jù)塊的尺寸、所述不相關(guān)數(shù)據(jù)塊的偏移、以及從多個層中的一個層傳遞的事務(wù)令牌中的至少一個。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述處理器設(shè)備還適合于結(jié)合所述發(fā)送執(zhí)行以下各項中的至少一個: 將已分類的所述數(shù)據(jù)塊重新發(fā)送到所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的一個替換的可用壓縮上下文,以便處理已分類數(shù)據(jù)塊。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中,所述處理器設(shè)備還適合于結(jié)合所述重新發(fā)送而向所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文發(fā)送通知以忽略已分類的所述數(shù)據(jù)塊。
16.根據(jù)權(quán)利要求9所述的方法,還包括:在所述發(fā)送之后,對已分類的所述數(shù)據(jù)塊使用多個可用壓縮操作中的一個可用壓縮操作。
17.一種用于在計算環(huán)境中由處理器設(shè)備進(jìn)行數(shù)據(jù)塊的在線分離以用于壓縮的計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括具有存儲在其中的計算機(jī)可讀程序代碼部分的非瞬態(tài)計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀程序代碼部分包括: 第一可執(zhí)行部分,用于基于多個屬性中的至少一個屬性將不相關(guān)數(shù)據(jù)塊分類以便將已分類的所述數(shù)據(jù)塊發(fā)送到多個可用壓縮上下文中的至少一個可用壓縮上下文,其中已分類的所述數(shù)據(jù)塊是相關(guān)的;以及 第二可執(zhí)行部分,用于由多個壓縮操作中的至少一個壓縮操作將已分類的所述數(shù)據(jù)塊編碼,其中壓縮比被實現(xiàn)并作為反饋而被包括。
18.根據(jù)權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,還包括:第三可執(zhí)行部分,用于結(jié)合所述分類來選擇所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的現(xiàn)有的一個可用壓縮上下文,并創(chuàng)建所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的一個新的可用壓縮上下文。
19.根據(jù)權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,其中,所述多個屬性中的所述至少一個屬性包括多個數(shù)據(jù)屬性和多個元數(shù)據(jù)屬性中的至少一個。
20.根據(jù)權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,其中,所述多個數(shù)據(jù)屬性中的所述至少一個屬性包括已知數(shù)據(jù)格式、字符分布以及從所述反饋提供的先前分類的數(shù)據(jù)塊與當(dāng)前正在被分析以用于所述分類的所述不相關(guān)數(shù)據(jù)塊之間的相似性中的至少一個。
21.根據(jù)權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,其中,所述多個元數(shù)據(jù)屬性包括所述不相關(guān)數(shù)據(jù)塊的源的標(biāo)識、所述不相關(guān)數(shù)據(jù)塊的尺寸、所述不相關(guān)數(shù)據(jù)塊的偏移、以及從多個層中的一個層傳遞的事務(wù)令牌中的至少一個。
22.根據(jù)權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,還包括:第三可執(zhí)行部分,用于結(jié)合所述發(fā)送而執(zhí)行以下各項中的至少一個: 將已分類的所述數(shù)據(jù)塊重新發(fā)送到所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文中的一個替換的可用壓縮上下文,以便處理已分類的所述數(shù)據(jù)塊。
23.根據(jù)權(quán)利要求22所述的計算機(jī)程序產(chǎn)品,還包括:第四可執(zhí)行部分,用于結(jié)合所述重新發(fā)送而向所述多個可用壓縮上下文中的所述至少一個可用壓縮上下文發(fā)送通知以忽略已分類的所述數(shù)據(jù)塊。
24.根據(jù)權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,還包括:第三可執(zhí)行部分,用于在所述發(fā)送之后,對已分類的所述數(shù)據(jù)塊使用多個可用壓縮操作中的一個可用壓縮操作。
【文檔編號】G06F17/30GK104025088SQ201280064659
【公開日】2014年9月3日 申請日期:2012年12月19日 優(yōu)先權(quán)日:2012年1月6日
【發(fā)明者】O·沙勒夫, J·阿米特 申請人:國際商業(yè)機(jī)器公司