用于列表數(shù)據(jù)壓縮的多重分類的制作方法
【專利摘要】對(duì)于用于列表數(shù)據(jù)的列壓縮的多重分類,將相似類型的數(shù)據(jù)段分類成各類別,用于將數(shù)據(jù)段分組成與這些類別中的每個(gè)類別關(guān)聯(lián)的壓縮流?;陬悇e特定的優(yōu)化編碼操作對(duì)壓縮流進(jìn)行編碼。壓縮流進(jìn)入一個(gè)輸出緩沖器,其中壓縮流被提取。
【專利說明】用于列表數(shù)據(jù)壓縮的多重分類
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般地涉及計(jì)算機(jī),并且更具體地涉及計(jì)算環(huán)境中的用于列表數(shù)據(jù)壓縮的多重分類。
【背景技術(shù)】
[0002]在如今的社會(huì)中,計(jì)算機(jī)系統(tǒng)司空見慣。可以在工作地點(diǎn)、在家里或者在學(xué)校找到計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)可以包括用于處理和存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)系統(tǒng)或者盤存儲(chǔ)系統(tǒng)。利用數(shù)據(jù)存儲(chǔ)系統(tǒng)或者盤存儲(chǔ)系統(tǒng)以處理和存儲(chǔ)數(shù)據(jù)。存儲(chǔ)系統(tǒng)可以包括一個(gè)或者多個(gè)盤驅(qū)動(dòng)。這些數(shù)據(jù)處理系統(tǒng)通常需要大量數(shù)據(jù)存儲(chǔ)??蛻魯?shù)據(jù)或者用戶在數(shù)據(jù)處理系統(tǒng)內(nèi)生成的數(shù)據(jù)占用該數(shù)據(jù)存儲(chǔ)的大部分。這些計(jì)算機(jī)系統(tǒng)中的許多計(jì)算機(jī)系統(tǒng)包括虛擬存儲(chǔ)部件。
[0003]計(jì)算系統(tǒng)用來存儲(chǔ)和管理各種類型的數(shù)據(jù),諸如列表數(shù)據(jù)(Tabular data)。列表數(shù)據(jù)通常被組織成行和列以形成例如如在關(guān)系表、字處理文檔、電子表格或者電子表格式結(jié)構(gòu)或者相似數(shù)據(jù)庫結(jié)構(gòu)中使用的常見表。這些表的形成包括用于行和列的多種組織的陣列和排列。然而,列表數(shù)據(jù)的實(shí)際物理存儲(chǔ)可以采用多種形式。例如,雖然列表數(shù)據(jù)的邏輯結(jié)構(gòu)可以是多維的,但是列表數(shù)據(jù)可以在物理上按線性格式來存儲(chǔ),諸如按照以行為主或者以列為主的格式。按以行為主的格式,來自表式結(jié)構(gòu)的行的列值鄰接地被存儲(chǔ)于持久存儲(chǔ)裝置中。對(duì)照而言,按以列為主的格式,對(duì)于給定的列的多個(gè)行,鄰接地存儲(chǔ)該列的列值。
[0004]數(shù)據(jù)壓縮廣泛地用來減少為了處理、傳輸或者存儲(chǔ)給定數(shù)量的信息而需要的數(shù)據(jù)數(shù)量。數(shù)據(jù)壓縮是對(duì)數(shù)據(jù)進(jìn)行編碼以最小化它的表示。壓縮可以例如用來減少用于文件的存儲(chǔ)要求、增加通過信道的通信速率或者在加密之前減少冗余性以求更大安全性。列表數(shù)據(jù)結(jié)構(gòu)也將從數(shù)據(jù)壓縮中受益,因?yàn)閿?shù)據(jù)壓縮對(duì)減少昂貴資源、諸如硬盤空間或者傳輸帶寬的消耗是有用的。
【發(fā)明內(nèi)容】
[0005]技術(shù)問題
[0006]由于數(shù)據(jù)存儲(chǔ)昂貴,所以明顯地希望最小化為了存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)而需要的存儲(chǔ)數(shù)量。此外,在存儲(chǔ)位置之間復(fù)制或者傳送數(shù)據(jù)序列時(shí),希望最小化在數(shù)據(jù)庫字段內(nèi)在CPU周期、網(wǎng)絡(luò)使用等方面的開銷,已經(jīng)對(duì)用于維護(hù)數(shù)據(jù)副本的技術(shù)進(jìn)行了大量研究。在列表數(shù)據(jù)中,獨(dú)立地壓縮每列將提供比用一個(gè)流壓縮整個(gè)表更高的壓縮比。壓縮比增加的原因在于每列中的數(shù)據(jù)相對(duì)地同質(zhì)。然而,存儲(chǔ)控制器不了解列表結(jié)構(gòu),因?yàn)樗鼈儾荒軕?yīng)用列壓縮算法并且不能從增加的壓縮比中受益。作為結(jié)果,可能降低效率和生產(chǎn)率。
[0007]對(duì)問題的解決方案
[0008]因而并且鑒于前文,提供用于列表數(shù)據(jù)壓縮的多重分類的各種示例方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品實(shí)施例。在一個(gè)實(shí)施例中,將相似類型的數(shù)據(jù)段分類成各類別,用于將數(shù)據(jù)段分組成與這些類別中的每個(gè)類別關(guān)聯(lián)的壓縮流?;陬惲刑囟ǖ膬?yōu)化編碼操作對(duì)壓縮流進(jìn)行編碼。壓縮流進(jìn)入一個(gè)輸出緩沖器,其中該壓縮流被提取。
[0009]除了前述示例方法實(shí)施例之外,還提供其它示例系統(tǒng)和計(jì)算機(jī)產(chǎn)品實(shí)施例,并且這些其它示例系統(tǒng)和計(jì)算機(jī)產(chǎn)品實(shí)施例提供有關(guān)優(yōu)點(diǎn)。已經(jīng)提供了前述
【發(fā)明內(nèi)容】
以用簡(jiǎn)化形式介紹以下在【具體實(shí)施方式】中進(jìn)一步描述的概念的選集。本
【發(fā)明內(nèi)容】
不旨在于標(biāo)識(shí)要求保護(hù)的主題內(nèi)容的關(guān)鍵特征或者必需特征,它也不旨在于用作輔助確定要求保護(hù)的主題內(nèi)容的范圍。要求保護(hù)的主題內(nèi)容不限于解決在【背景技術(shù)】中指出的任何或者所有缺點(diǎn)的實(shí)現(xiàn)方式。
[0010]為了容易理解本發(fā)明的優(yōu)點(diǎn),將通過參照在附圖中圖示的具體實(shí)施例來表現(xiàn)以上簡(jiǎn)要地描述的本發(fā)明的更具體描述。將理解這些附圖描繪本發(fā)明的實(shí)施例,并因此不被視為限制其范圍,將通過使用附圖、利用附加特點(diǎn)和細(xì)節(jié)來描述和解釋本發(fā)明。
【專利附圖】
【附圖說明】
[0011]圖1圖示計(jì)算機(jī)存儲(chǔ)環(huán)境,該計(jì)算機(jī)存儲(chǔ)環(huán)境具有其中可以實(shí)現(xiàn)本發(fā)明的方面的示例存儲(chǔ)設(shè)備。
[0012]圖2圖示示出在其中可以實(shí)現(xiàn)本發(fā)明的方面的計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)存儲(chǔ)系統(tǒng)的硬件結(jié)構(gòu)的示例框圖。
[0013]圖3是圖示用于列表數(shù)據(jù)壓縮的多重分類的示例方法的流程圖。
[0014]圖4圖示示出多重分類基本壓縮的示例框圖。
[0015]圖5圖示示出其中可以實(shí)現(xiàn)本發(fā)明的方面的復(fù)用輸出緩沖器的示例框圖。
[0016]圖6圖示示出用于其中可以實(shí)現(xiàn)本發(fā)明的方面的列表數(shù)據(jù)壓縮緩沖器的多重分類的示例框圖。
[0017]圖7是圖示用于對(duì)用于列表數(shù)據(jù)壓縮的多重分類進(jìn)行編碼的示例方法的流程圖。
[0018]圖8是圖示用于將多重分類數(shù)據(jù)提取回原有的處理前輸入數(shù)據(jù)塊的示例方法的流程圖。
【具體實(shí)施方式】
[0019]如先前提到的那樣,由于數(shù)據(jù)存儲(chǔ)所需要的開支和資源,希望最小化為了存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)而需要的存儲(chǔ)數(shù)量。此外,在存儲(chǔ)位置之間復(fù)制或者傳送數(shù)據(jù)序列時(shí),希望最小化在數(shù)據(jù)庫字段內(nèi)在CPU周期、網(wǎng)絡(luò)使用等方面的開銷。在列表數(shù)據(jù)中,獨(dú)立地壓縮每列將提供比用一個(gè)流壓縮整個(gè)表更高的壓縮比。壓縮比增加的原因在于每列中的數(shù)據(jù)相對(duì)地同質(zhì)。然而,存儲(chǔ)控制器不了解列表結(jié)構(gòu),因?yàn)樗鼈儾荒軕?yīng)用列壓縮算法并且不能從增加的壓縮比中受益。作為結(jié)果,可能降低效率和生產(chǎn)率。
[0020]對(duì)照而言,并且為了解決先前描述的低效率和性能問題,舉例說明的實(shí)施例提供用于通過為每列處理選擇唯一流式器(streamer)來實(shí)現(xiàn)用于列表數(shù)據(jù)壓縮的多重分類從而產(chǎn)生存儲(chǔ)陣列的更高壓縮比的機(jī)制。在一個(gè)實(shí)施例中,該機(jī)制提供一種新的塊陣列輸出緩沖器容器格式,其支持具有若干內(nèi)部塊原型的多用途塊,包括:利用唯一流式器的列壓縮、普通壓縮、原始?jí)K和利用一個(gè)流式器的列壓縮。
[0021]在一個(gè)實(shí)施例中,僅舉例而言,本發(fā)明的機(jī)制將相似類型的數(shù)據(jù)段分類成各類別,用于將數(shù)據(jù)段分組成與這些類別中的每個(gè)類別關(guān)聯(lián)的壓縮流?;陬悇e特定的優(yōu)化編碼操作對(duì)壓縮流進(jìn)行編碼。將壓縮流組合到一個(gè)輸出緩沖器中,并且提取該壓縮流。
[0022]現(xiàn)在轉(zhuǎn)向圖1,描繪在計(jì)算環(huán)境中的數(shù)據(jù)存儲(chǔ)系統(tǒng)(例如,虛擬帶系統(tǒng))的示例架構(gòu)10。計(jì)算機(jī)系統(tǒng)10包括連接到海量存儲(chǔ)設(shè)備14和存儲(chǔ)器設(shè)備16的中央處理單元(CPU) 12。海量存儲(chǔ)設(shè)備可以包括可以按照獨(dú)立盤冗余陣列(RAID)配置的硬盤驅(qū)動(dòng)(HDD)設(shè)備、固態(tài)設(shè)備(SSD)等??梢栽谖挥谙到y(tǒng)10中或者別處的設(shè)備14上執(zhí)行進(jìn)一步描述的備份操作。存儲(chǔ)器設(shè)備16可以包括諸如電可擦除可編程只讀存儲(chǔ)器(EEPROM)這樣的存儲(chǔ)器或者許多有關(guān)設(shè)備。存儲(chǔ)器設(shè)備16和海量存儲(chǔ)設(shè)備14經(jīng)由信號(hào)承載介質(zhì)連接到CPU 12。此外,CPU 12通過通信端口 18連接到具有附著的多個(gè)附加計(jì)算機(jī)系統(tǒng)22和24的通信網(wǎng)絡(luò)20。
[0023]圖2是示出根據(jù)本發(fā)明的計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)存儲(chǔ)系統(tǒng)的硬件結(jié)構(gòu)的示例框圖200。參照?qǐng)D2,示出有主機(jī)計(jì)算機(jī)210、220、225,每個(gè)主機(jī)計(jì)算機(jī)充當(dāng)中央處理單元,用于執(zhí)行對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)200的一部分的數(shù)據(jù)處理。主機(jī)(物理或者虛擬設(shè)備)210、220和225可以是用于在數(shù)據(jù)存儲(chǔ)系統(tǒng)200中實(shí)現(xiàn)本發(fā)明的目的的一個(gè)或者多個(gè)新物理設(shè)備或者邏輯設(shè)備。在一個(gè)實(shí)施例中,僅舉例而言,可以將數(shù)據(jù)存儲(chǔ)系統(tǒng)200實(shí)施為IBM(注冊(cè)商標(biāo))系統(tǒng)存儲(chǔ)裝置?DS8000tm。網(wǎng)絡(luò)連接260可以是光纖信道、光纖信道點(diǎn)到點(diǎn)鏈路、在以太網(wǎng)之上的光纖信道交換結(jié)構(gòu)或者點(diǎn)到點(diǎn)鏈路、FICON或者ESCON I/O接口、任何其它I/O接口類型、無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)、LAN、WAN、異構(gòu)、同構(gòu)、公共(即,因特網(wǎng))、專用或者其任何組合。主機(jī)210、220和225可以在本地或者分布于一個(gè)或者多個(gè)位置之中并且可以被配備有針對(duì)存儲(chǔ)控制器240的任何類型的交換結(jié)構(gòu)(或者交換結(jié)構(gòu)信道)(在圖2中未示出)或者網(wǎng)絡(luò)適配器260、諸如光纖信道、FIC0N、ESC0N、以太網(wǎng)、光纖、無線或者同軸適配器。數(shù)據(jù)存儲(chǔ)系統(tǒng)200被相應(yīng)地配備用于通信的適當(dāng)交換結(jié)構(gòu)(在圖2中未示出)或者網(wǎng)絡(luò)適配器260。在圖1中描繪數(shù)據(jù)存儲(chǔ)系統(tǒng)200,包括存儲(chǔ)控制器240和存儲(chǔ)裝置230。
[0024]為了有助于更清楚理解這里描述的方法,在圖2中示出存儲(chǔ)控制器240為如以下將更具體描述的包括微處理器242、系統(tǒng)存儲(chǔ)器243和非易失性存儲(chǔ)裝置(“NVS”)216的單個(gè)處理單元。注意,在一些實(shí)施例中,存儲(chǔ)控制器240由多個(gè)處理單元組成,每個(gè)處理單元具有它們自己的處理器綜合體和系統(tǒng)存儲(chǔ)器并且由數(shù)據(jù)存儲(chǔ)系統(tǒng)200內(nèi)的專用網(wǎng)絡(luò)互連。存儲(chǔ)裝置230可以由通過存儲(chǔ)網(wǎng)絡(luò)連接到存儲(chǔ)控制器240的一個(gè)或者多個(gè)存儲(chǔ)設(shè)備、諸如存儲(chǔ)陣列組成。
[0025]在一些實(shí)施例中,可以在回路架構(gòu)中連接存儲(chǔ)裝置230中包括的設(shè)備。存儲(chǔ)控制器240管理存儲(chǔ)裝置230并且促進(jìn)對(duì)針對(duì)存儲(chǔ)裝置230的寫入和讀取請(qǐng)求的處理。存儲(chǔ)控制器240的系統(tǒng)存儲(chǔ)器243存儲(chǔ)程序指令和數(shù)據(jù),處理器242可以訪問這些程序指令和數(shù)據(jù)用于執(zhí)行與管理存儲(chǔ)裝置230關(guān)聯(lián)的功能和方法步驟并且執(zhí)行本發(fā)明的用于在計(jì)算環(huán)境中的列表數(shù)據(jù)的復(fù)用器列壓縮的步驟和方法。在一個(gè)實(shí)施例中,系統(tǒng)存儲(chǔ)器243包括用于在計(jì)算機(jī)存儲(chǔ)環(huán)境中的列表數(shù)據(jù)的復(fù)用器列壓縮、包括這里描述的方法和步驟的操作軟件250、與該操作軟件250關(guān)聯(lián)或者與該操作軟件250通信。如圖2中所示,系統(tǒng)存儲(chǔ)器243也可以包括這里也被稱為“高速緩存存儲(chǔ)器”的用于存儲(chǔ)裝置230的高速緩存245或者與該高速緩存245通信,該高速緩存用于緩沖分別指寫入/讀取請(qǐng)求及其關(guān)聯(lián)數(shù)據(jù)的“寫入數(shù)據(jù)”和“讀取數(shù)據(jù)”。在一個(gè)實(shí)施例中,高速緩存245在系統(tǒng)存儲(chǔ)器232外部的設(shè)備中被分配、仍然保持可由微處理器242訪問并且除了執(zhí)行如這里描述的操作之外還可以進(jìn)行服務(wù)以提供防范數(shù)據(jù)丟失的附加安全性。
[0026]在一些實(shí)施例中,高速緩存245用易失性存儲(chǔ)器和非易失性存儲(chǔ)器來實(shí)施并且經(jīng)由本地總線(在圖2中未示出)耦合到微處理器242用于增強(qiáng)數(shù)據(jù)存儲(chǔ)系統(tǒng)200的性能。在數(shù)據(jù)存儲(chǔ)控制器中包括的NVS 216可由微處理器242訪問并且進(jìn)行服務(wù)以為如在其它圖中描述的本發(fā)明的操作和執(zhí)行提供附加支持。NVS 216也可以被稱為“持久”高速緩存或者“高速緩存存儲(chǔ)器”并且用可以利用或者可以不利用外部功率以保持其中存儲(chǔ)的數(shù)據(jù)的非易失性存儲(chǔ)器來實(shí)施。NVS可以被存儲(chǔ)于高速緩存245中和與高速緩存245存儲(chǔ)用于與實(shí)現(xiàn)本發(fā)明的目的相適合的任何目的。在一些實(shí)施例中,備用功率源(在圖2中未示出)、諸如電池向NVS 216供應(yīng)充分功率以在失去對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)200的功率的情況下保持其中存儲(chǔ)的數(shù)據(jù)。在某些實(shí)施例中,NVS 216的容量小于或者等于高速緩存245的總?cè)萘俊?br>
[0027]存儲(chǔ)裝置230可以物理上由一個(gè)或者多個(gè)存儲(chǔ)設(shè)備、諸如存儲(chǔ)陣列組成。存儲(chǔ)陣列是個(gè)別存儲(chǔ)設(shè)備的邏輯分組、諸如硬盤。在某些實(shí)施例中,存儲(chǔ)裝置230由JBOD (簡(jiǎn)單盤簇)陣列或者RAID(獨(dú)立盤冗余陣列)陣列組成??梢赃M(jìn)一步組合物理存儲(chǔ)陣列的匯集以形成將物理存儲(chǔ)裝置與邏輯配置去關(guān)聯(lián)的等級(jí)(rank)??梢詫⒌燃?jí)中的存儲(chǔ)空間分配成邏輯卷,這些邏輯卷定義在寫入/讀取請(qǐng)求中指定的存儲(chǔ)位置。
[0028]在一個(gè)實(shí)施例中,僅舉例而言,如圖2中所示的存儲(chǔ)系統(tǒng)可以包括邏輯卷或者簡(jiǎn)稱為“卷”、可以具有不同種類的分配。存儲(chǔ)裝置230a、230b和230η被示出為數(shù)據(jù)存儲(chǔ)系統(tǒng)200中的等級(jí)并且這里被稱為等級(jí)230a、230b和230η。等級(jí)可以在數(shù)據(jù)存儲(chǔ)系統(tǒng)200本地或者可以位于物理上的遠(yuǎn)程位置。換而言之,本地存儲(chǔ)控制器可以與遠(yuǎn)程存儲(chǔ)控制器連接并且管理在遠(yuǎn)程位置處的存儲(chǔ)裝置。等級(jí)230a被示出為配置有兩個(gè)整卷234和236以及一個(gè)部分卷232a。等級(jí)230b被示出為具有另一部分卷232b。因此,跨越等級(jí)230a和230b分配卷232。等級(jí)230η被示出為完全被分配給卷238——也就是說,等級(jí)230η指用于卷238的整個(gè)物理存儲(chǔ)裝置。從以上示例將認(rèn)識(shí)到等級(jí)可以被配置為包括一個(gè)或者多個(gè)部分和/或全部卷。卷和等級(jí)可以被進(jìn)一步劃分成所謂“軌道”,這些軌道代表固定的存儲(chǔ)塊。軌道因此與給定的卷關(guān)聯(lián)并且可以被給予給定的等級(jí)。
[0029]存儲(chǔ)控制器240可以包括分類器模塊255、類別特定的編碼模塊257、列欄壓縮模塊259和解碼模塊260以輔助計(jì)算環(huán)境中的列表數(shù)據(jù)的復(fù)用器列壓縮。分類器模塊255、類別特定的編碼模塊257、列欄壓縮模塊259和解碼模塊260可以與存儲(chǔ)控制器240、主機(jī)210、220、225和存儲(chǔ)設(shè)備230的每個(gè)部件結(jié)合工作。分類器模塊255、類別特定的編碼模塊257、列欄壓縮模塊259和解碼模塊260均可以在結(jié)構(gòu)上是用于在計(jì)算環(huán)境中與列表數(shù)據(jù)的復(fù)用器列壓縮一起工作和結(jié)合工作的一個(gè)完整模塊或者可以是獨(dú)立模塊。分類器模塊255、類別特定的編碼模塊257、列欄壓縮模塊259和解碼模塊260也可以位于高速緩存245或者存儲(chǔ)控制器240的其它部件中以實(shí)現(xiàn)本發(fā)明的目的。
[0030]存儲(chǔ)控制器240可以通過下述各項(xiàng)來構(gòu)造:用于控制針對(duì)主機(jī)計(jì)算機(jī)210、220、225的光纖信道協(xié)議的控制交換機(jī)241、用于控制所有存儲(chǔ)控制器240的微處理器242、用于存儲(chǔ)用于控制存儲(chǔ)控制器240的操作的微程序(操作軟件)250、用于控制的數(shù)據(jù)和以下描述的每個(gè)表的非易失性控制存儲(chǔ)器243、用于暫時(shí)地存儲(chǔ)(緩沖)數(shù)據(jù)的高速緩存245以及用于輔助高速緩存245讀取和寫入數(shù)據(jù)的緩沖器244,用于控制協(xié)議的控制交換機(jī)241,用于控制向或者從可以在其上設(shè)置信息的存儲(chǔ)設(shè)備230、分類器模塊255、類別特定的編碼模塊257、列欄壓縮模塊259和解碼模塊260的數(shù)據(jù)傳送。多個(gè)緩沖器244可以用本發(fā)明來實(shí)施以輔助計(jì)算機(jī)存儲(chǔ)環(huán)境中的列表數(shù)據(jù)的復(fù)用器列壓縮。
[0031]在一個(gè)實(shí)施例中,僅舉例而言,通過作為接口的網(wǎng)絡(luò)適配器(這可以是光纖信道)260、即經(jīng)由稱為“交換結(jié)構(gòu)(Fabric) ”的交換機(jī)連接主機(jī)計(jì)算機(jī)或者一個(gè)或者多個(gè)物理或虛擬設(shè)備210、220、225和存儲(chǔ)控制器240。在一個(gè)實(shí)施例中,僅舉例而言,將描述圖2中所示的系統(tǒng)的操作。微處理器242可以控制存儲(chǔ)器243以存儲(chǔ)來自主機(jī)設(shè)備(物理或者虛擬)210的命令信息和用于標(biāo)識(shí)主機(jī)設(shè)備(物理或者虛擬)210的信息??刂平粨Q機(jī)241、緩沖器244、高速緩存245、操作軟件250、微處理器242、存儲(chǔ)器243、NVS 216、分類器模塊255、類別特定的編碼模塊257、列欄壓縮模塊259和解碼模塊260相互通信并且可以是分離的或者是一個(gè)單獨(dú)部件。另外,如果并非所有部件,則若干部件、諸如操作軟件245可以由存儲(chǔ)器243包括以用于計(jì)算機(jī)存儲(chǔ)環(huán)境中的列表數(shù)據(jù)的復(fù)用器列壓縮。存儲(chǔ)設(shè)備內(nèi)的部件中的每個(gè)部件可以被鏈接在一起并且可以相互通信以用于與本發(fā)明相適合的目的。
[0032]如以下將描述的那樣,在一個(gè)實(shí)施例中,所示實(shí)施例的機(jī)制尋求提供用于列表數(shù)據(jù)的實(shí)時(shí)壓縮的能力。在一個(gè)實(shí)施例中,該機(jī)制檢測(cè)存儲(chǔ)控制器中的數(shù)據(jù)的列表結(jié)構(gòu)。該機(jī)制通過使用列壓縮組合來檢測(cè)列表結(jié)構(gòu)以在存儲(chǔ)控制器上實(shí)現(xiàn)更高壓縮比。該機(jī)制使用壓縮反饋、公共定界符和/或公共單元填充模式和/或公共定界符和/或公共單元模式的組合用于檢測(cè)即將到來的列表數(shù)據(jù)結(jié)構(gòu)。
[0033]圖3是圖示用于列表數(shù)據(jù)壓縮的多重分類的示例方法300的流程圖。方法300通過將相似類型的數(shù)據(jù)段分類成各類別以用于將數(shù)據(jù)段分組成與這些類別中的每個(gè)類別關(guān)聯(lián)的壓縮流(步驟304)來開始(步驟302)。基于類別特定的優(yōu)化編碼操作對(duì)壓縮流進(jìn)行編碼(步驟306)。壓縮流被組合到一個(gè)輸出緩沖器中(步驟308)。壓縮流被提取(步驟310)。方法300結(jié)束(步驟312)。
[0034]圖4圖示示例框圖400,該框圖示出多重分類基本壓縮。如圖4中所示,向分類器404發(fā)送傳入數(shù)據(jù)402 (例如,I/O操作、諸如寫入操作)。分類器404通過對(duì)在相同壓縮流中的相似類型的數(shù)據(jù)進(jìn)行分類而將數(shù)據(jù)分組在一起。如圖4中所示,可以根據(jù)數(shù)據(jù)是否為文本406A、數(shù)字406B、406C、二進(jìn)制數(shù)406D和/或附加類別406N對(duì)分類406進(jìn)行分類和排序,然后將這些分類相應(yīng)地排序成這些類別406。用于列壓縮操作的多重分類實(shí)現(xiàn)將在相同壓縮流中的相似類型的數(shù)據(jù)分組在一起并且也以保持更小字母占有的方式對(duì)數(shù)據(jù)進(jìn)行分類。每個(gè)分類保持顯著地更大壓縮窗,這允許標(biāo)識(shí)進(jìn)一步隔開的重復(fù)(例如,通過使用字典)。分類可以在單次通過中被執(zhí)行而不限于硬性格式?;诜诸惖膲嚎s支持固定和可變數(shù)據(jù)長(zhǎng)度二者(例如,JAS0N、XML等)并且跨列地壓縮數(shù)據(jù)。由于標(biāo)準(zhǔn)壓縮操作未高效地壓縮短權(quán)標(biāo)(token),所以分類使用小詞典(dict1nary)以輔助短權(quán)標(biāo)壓縮。對(duì)于每個(gè)類別406,該機(jī)制應(yīng)用類別特定的優(yōu)化編碼操作、然后將所有壓縮的類別特定的編碼方法組合到用于實(shí)時(shí)壓縮408的一個(gè)輸出緩沖器中。也需要將所有類別一起打包到一個(gè)輸出緩沖器中以便提供從存儲(chǔ)裝置的隨機(jī)訪問讀取操作。應(yīng)當(dāng)認(rèn)識(shí)到,多種列欄壓縮操作可以應(yīng)用于壓縮流中的每個(gè)流以用于產(chǎn)生增加的壓縮比。然后,可以提取并且在多種存儲(chǔ)部件410中存儲(chǔ)數(shù)據(jù)。
[0035]圖5圖示示例框圖,該框圖示出其中可以實(shí)現(xiàn)本發(fā)明的方面的復(fù)用輸出緩沖器。在一個(gè)實(shí)施例中,復(fù)用輸出緩沖器可以包含3種類型的編碼流。I)列壓縮壓縮緩沖器一用于特定列(例如,所使用的列壓縮流式器數(shù)目并且可以具有唯一列壓縮流式器)。2)列壓縮普通壓縮一其可以包含通過一個(gè)壓縮流式器(例如,一個(gè)ZLIB壓縮流式器)針對(duì)所有列串而壓縮的級(jí)聯(lián)的列串(例如,利用一個(gè)壓縮流式器的普通列壓縮)。3)普通壓縮緩沖器——在未使用列壓縮方法時(shí)使用該緩沖器。列壓縮流可以在一個(gè)實(shí)施例中旨在于指作為用于特定列的唯一列壓縮流式器的列壓縮流。列壓縮普通壓縮流(例如,“普通列壓縮”)可以在一個(gè)實(shí)施例中旨在于指利用一個(gè)壓縮流式器壓縮的級(jí)聯(lián)的列串的普通列壓縮(例如,利用一個(gè)流式器的普通列壓縮)。普通壓縮流可以在一個(gè)實(shí)施例中旨在于指在未使用列壓縮方法/技術(shù)時(shí)使用的普通壓縮緩沖器/流(例如,普通ZLIB壓縮緩沖器)。
[0036]如圖5中所示,在輸出緩沖器中描繪填充首部502( “PH”)、利用流式器I的列壓縮504( “0:1”)、普通列壓縮506( “%1”)、普通列壓縮508(與在1^1中相同的流式器)(RC2)、標(biāo)注為510的利用流式器2的列壓縮(“CC2”)和普通壓縮緩沖器512 (RZl)。
[0037]圖6描繪示出用于其中可以實(shí)現(xiàn)本發(fā)明的方面的列表數(shù)據(jù)壓縮緩沖器的多重分類的示例框圖。在圖6中,描繪具有32千字節(jié)(KB)X N列的多Hib反向引用詞典602。在輸入數(shù)據(jù)流604內(nèi)是分類的數(shù)據(jù)列606 (在圖6中圖示為606A-606N而每列被壓縮成1KB)。分類的列606中的每列被放入圖示為32KB的輸出塊620中。在輸出塊內(nèi),以下塊順序可能出現(xiàn)。在輸出緩沖器中的前20比特是填充首部608。接下來I字節(jié)610指示O用于壓縮(例如,Hib壓縮)或者I用于列壓縮。7個(gè)比特代表總列數(shù)目610。接著,接下來I字節(jié)612指定總數(shù)中的全部壓縮列數(shù)目是否小于和/或等于總列數(shù)目612。列I壓縮緩沖器614示出每個(gè)壓縮列由3字節(jié)的提取長(zhǎng)度和用于表中的列位置的I字節(jié)來代表并且重復(fù)直至列N壓縮緩沖器612。在N小于總列數(shù)616的情況下,壓縮剩余數(shù)據(jù)(按列級(jí)聯(lián))。該級(jí)聯(lián)的緩沖器由相同格式的列表示構(gòu)成。I字節(jié)用于列的位置而4字節(jié)用于列緩沖器長(zhǎng)度。最后,相同結(jié)構(gòu)對(duì)于下一數(shù)據(jù)塊重復(fù)(具有相同列間距或者具有新列間距定義)618。
[0038]圖7是圖示用于對(duì)用于列表數(shù)據(jù)壓縮的多重分類進(jìn)行編碼的示例方法700的流程圖。方法700分配填充首部(步驟702)。方法700確定壓縮流的壓縮類型(步驟704)。如果檢測(cè)到的壓縮類型是普通壓縮,則方法700可以設(shè)置普通壓縮類型(步驟706)、設(shè)置未壓縮大小(步驟708)并且寫入壓縮的數(shù)據(jù)(步驟710)。然而,如果檢測(cè)到的壓縮類型是列壓縮,則方法700寫入用于列壓縮的流式器數(shù)目(步驟712)。流式器數(shù)目是之前的數(shù)據(jù)處理所需要的。方法700然后可以寫入正被處理的列編號(hào)(步驟714)、寫入未壓縮的數(shù)據(jù)大小(步驟716)并且寫入列壓縮的數(shù)據(jù)(步驟718)。
[0039]如果檢測(cè)到的壓縮類型是普通列壓縮,則方法700可以寫入用于普通列壓縮的流式器數(shù)目并且寫入正被處理的列編號(hào)(步驟720)。流式器數(shù)目是之前的數(shù)據(jù)處理所需要的。方法700可以寫入列壓縮的數(shù)據(jù)大小(步驟722)并且寫入列壓縮的數(shù)據(jù)(步驟724)。方法700重復(fù)步驟720、722和724、例如寫入流式器數(shù)目、列編號(hào)和列壓縮的數(shù)據(jù)直至所有普通列壓縮流被處理。
[0040]圖8是圖示用于將多重分類數(shù)據(jù)提取回成原來的處理前輸入數(shù)據(jù)塊的示例方法800的流程圖。方法800讀取填充首部并且提取總壓縮大小(步驟802)。方法800確定壓縮流的提取壓縮類型(步驟804)。如果檢測(cè)到的壓縮類型是普通壓縮,則方法800可以提取普通壓縮類型(步驟806)、提取未壓縮大小(步驟808)并且提取壓縮的數(shù)據(jù)(步驟810)。然而,如果檢測(cè)到的壓縮類型是列壓縮,則方法800提取用于列壓縮的流式器數(shù)目(步驟812)。流式器數(shù)目是之前的數(shù)據(jù)處理所需要的。方法800然后可以提取正被處理的列編號(hào)(步驟814)、提取未壓縮的數(shù)據(jù)大小(步驟816)并且提取列壓縮的數(shù)據(jù)(步驟818)。應(yīng)當(dāng)注意普通壓縮可以包括普通Zlib壓縮。
[0041]如果檢測(cè)到的壓縮類型是普通列壓縮,則方法800可以提取用于普通列壓縮的流式器數(shù)目并且提取正被處理的列編號(hào)(步驟820)。流式器數(shù)目是之前的數(shù)據(jù)處理所需要的。方法800可以提取未壓縮的數(shù)據(jù)大小(步驟822)并且提取列壓縮的數(shù)據(jù)(步驟824)。方法800重復(fù)步驟820、822和824、例如提取流式器數(shù)目、列編號(hào)和列壓縮的數(shù)據(jù)直至所有普通列壓縮流被提取。
[0042]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可用的程序代碼。
[0043]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置、器件或者任意以上的適當(dāng)組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的示例(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0044]計(jì)算機(jī)可讀介質(zhì)上包含的計(jì)算機(jī)代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于——無線、有線、光纜、射頻(RF)等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設(shè)計(jì)語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語言一諸如“C”語言或類似的程序設(shè)計(jì)語言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0045]以上將參照根據(jù)本發(fā)明示例實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0046]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)。也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的過程。
[0047]以上附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
[0048]盡管已經(jīng)具體舉例說明本發(fā)明的一個(gè)或者多個(gè)實(shí)施例,但是本領(lǐng)域普通技術(shù)人員將理解在不脫離如在所附權(quán)利要求中闡述的本發(fā)明的范圍的前提下可以進(jìn)行對(duì)那些實(shí)施例的修改和調(diào)整。
【權(quán)利要求】
1.一種在計(jì)算環(huán)境中由處理器設(shè)備進(jìn)行的用于列表數(shù)據(jù)壓縮的多重分類的方法,所述方法包括: 將相似類型的數(shù)據(jù)段分類到多個(gè)類別之一,以用于將所述數(shù)據(jù)段分組成與所述多個(gè)類別中的每個(gè)類別關(guān)聯(lián)的壓縮流,其中所述壓縮流基于類別特定的優(yōu)化編碼操作而被編碼;以及 將所述壓縮流組合到一個(gè)輸出緩沖器中,其中所述壓縮流被提取。
2.根據(jù)權(quán)利要求1所述的方法,其中所述多個(gè)類別至少包括文本、數(shù)字、日期、二進(jìn)制數(shù)、XML/HTML標(biāo)簽和電子郵件地址類別的分類。
3.根據(jù)權(quán)利要求2所述的方法,其中所述一個(gè)輸出緩沖器至少包含列壓縮、普通列壓縮和普通壓縮流。
4.根據(jù)權(quán)利要求1所述的方法,還包括與對(duì)所述壓縮流進(jìn)行編碼結(jié)合地執(zhí)行以下各項(xiàng)中的至少一項(xiàng): 分配填充首部, 檢測(cè)所述壓縮流的壓縮類型, 如果檢測(cè)到的所述壓縮類型是普通壓縮,則 設(shè)置所述普通壓縮, 設(shè)置未壓縮大小,并且 寫入壓縮的數(shù)據(jù), 如果檢測(cè)到的所述壓縮類型是列壓縮,則 寫入用于所述列壓縮的流式器數(shù)目,并且 寫入正被處理的列編號(hào), 寫入未壓縮的數(shù)據(jù)大小,并且 寫入列壓縮的數(shù)據(jù),并且 如果檢測(cè)到的所述壓縮類型是普通列壓縮,則 寫入用于所述普通列壓縮的流式器數(shù)目, 寫入正被處理的列編號(hào), 寫入未壓縮的數(shù)據(jù)大小, 寫入列壓縮的數(shù)據(jù),并且 重復(fù)寫入所述流式器數(shù)目、所述列編號(hào)和所述列壓縮的數(shù)據(jù)直至所有普通列壓縮流被處理。
5.根據(jù)權(quán)利要求1所述的方法,還包括與提取所述壓縮流結(jié)合地執(zhí)行以下各項(xiàng)中的至少一項(xiàng): 讀取填充首部并且提取總壓縮大小, 提取壓縮類型, 如果所述壓縮類型是普通壓縮,則 讀取未壓縮大小,并且 提取壓縮的數(shù)據(jù), 如果所述壓縮類型是列壓縮,則 提取用于所述列壓縮的流式器數(shù)目,并且 提取正被處理的列編號(hào), 提取未壓縮的數(shù)據(jù)大小,并且 提取列壓縮的數(shù)據(jù),并且 如果所述壓縮類型是普通列壓縮,則 提取用于所述普通列壓縮的流式器數(shù)目, 提取正被處理的列編號(hào), 提取未壓縮的數(shù)據(jù)大小, 提取列壓縮的數(shù)據(jù),并且 提取所述流式器數(shù)目、所述列編號(hào)和所述列壓縮的數(shù)據(jù)直至所有普通列壓縮流被提取。
6.根據(jù)權(quán)利要求1所述的方法,其中所述分類使用多個(gè)小詞典以輔助短權(quán)標(biāo)壓縮。
7.根據(jù)權(quán)利要求1所述的方法,其中所述分類保持較大壓縮窗,允許對(duì)重復(fù)的識(shí)別。
8.根據(jù)權(quán)利要求1所述的方法,還包括將多個(gè)列欄壓縮操作中的至少一個(gè)列欄壓縮操作應(yīng)用于所述壓縮流中的每個(gè)壓縮流以用于產(chǎn)生增加的壓縮比。
9.一種在計(jì)算環(huán)境中用于列表數(shù)據(jù)壓縮的多重分類的系統(tǒng),包括: 可在所述計(jì)算環(huán)境中操作的至少一個(gè)處理器設(shè)備,其中所述至少一個(gè)處理器設(shè)備:將相似類型的數(shù)據(jù)段分類到多個(gè)類別之一,以用于將所述數(shù)據(jù)段分組成與所述多個(gè)類別中的每個(gè)類別關(guān)聯(lián)的壓縮流,其中所述壓縮流基于類別特定的優(yōu)化編碼操作而被編碼,并且 將所述壓縮流組合到一個(gè)輸出緩沖器中,其中所述壓縮流被提取。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述多個(gè)類別至少包括文本、數(shù)字、日期、二進(jìn)制數(shù)、XML/HTML標(biāo)簽和電子郵件地址類別的分類。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述一個(gè)輸出緩沖器至少包含列壓縮、普通列壓縮和普通壓縮流。
12.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述至少一個(gè)處理器設(shè)備用于與對(duì)所述壓縮流進(jìn)行編碼結(jié)合地執(zhí)行以下各項(xiàng)中的至少一項(xiàng): 分配填充首部, 檢測(cè)所述壓縮流的壓縮類型, 如果檢測(cè)到的所述壓縮類型是普通壓縮,則 設(shè)置所述普通壓縮, 設(shè)置未壓縮大小,并且 寫入壓縮的數(shù)據(jù), 如果檢測(cè)到的所述壓縮類型是列壓縮,則 寫入用于所述列壓縮的流式器數(shù)目,并且 寫入正被處理的列編號(hào), 寫入未壓縮的數(shù)據(jù)大小,并且 寫入列壓縮的數(shù)據(jù),并且 如果檢測(cè)到的所述壓縮類型是普通列壓縮,則 寫入用于所述普通列壓縮的流式器數(shù)目, 寫入正被處理的列編號(hào), 寫入未壓縮的數(shù)據(jù)大小, 寫入列壓縮的數(shù)據(jù),并且 重復(fù)寫入所述流式器數(shù)目、所述列編號(hào)和所述列壓縮的數(shù)據(jù)直至所有普通列壓縮流被處理。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述至少一個(gè)處理器設(shè)備用于與提取所述壓縮流結(jié)合地執(zhí)行以下各項(xiàng)中的至少一項(xiàng): 讀取填充首部并且提取總壓縮大小, 提取壓縮類型, 如果所述壓縮類型是普通壓縮,則 讀取未壓縮大小,并且 提取壓縮的數(shù)據(jù), 如果所述壓縮類型是列壓縮,則 提取用于所述列壓縮的流式器數(shù)目,并且 提取正被處理的列編號(hào), 提取未壓縮的數(shù)據(jù)大小,并且 提取列壓縮的數(shù)據(jù),并且 如果所述壓縮類型是普通列壓縮,則 提取用于所述普通列壓縮的流式器數(shù)目, 提取正被處理的列編號(hào), 提取未壓縮的數(shù)據(jù)大小, 提取列壓縮的數(shù)據(jù),并且 提取所述流式器數(shù)目、所述列編號(hào)和所述列壓縮的數(shù)據(jù)直至所有普通列壓縮流被提取。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述分類使用多個(gè)小詞典以輔助短權(quán)標(biāo)壓縮。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述分類保持較大壓縮窗,允許對(duì)重復(fù)的識(shí)別。
16.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述至少一個(gè)處理器設(shè)備將多個(gè)列欄壓縮操作中的至少一個(gè)列欄壓縮操作應(yīng)用于所述壓縮流中的每個(gè)壓縮流,以用于產(chǎn)生增加的壓縮比。
17.—種通過處理器設(shè)備對(duì)列表數(shù)據(jù)壓縮進(jìn)行多重分類的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有在其中存儲(chǔ)的計(jì)算機(jī)可讀程序代碼部分,所述計(jì)算機(jī)可讀程序代碼部分包括: 第一可執(zhí)行部分,用于將相似類型的數(shù)據(jù)段分類到多個(gè)類別之一,以用于將所述數(shù)據(jù)段分組成與所述多個(gè)類別中的每個(gè)類別關(guān)聯(lián)的壓縮流,其中所述壓縮流基于類別特定的優(yōu)化編碼操作而被編碼;以及 第二可執(zhí)行部分,用于將所述壓縮流組合到一個(gè)輸出緩沖器中,其中所述壓縮流被提取。
18.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中所述多個(gè)類別至少包括文本、數(shù)字、日期、二進(jìn)制數(shù)、XML/HTML標(biāo)簽和電子郵件地址類別的分類。
19.根據(jù)權(quán)利要求18所述的計(jì)算機(jī)程序產(chǎn)品,其中所述一個(gè)輸出緩沖器至少包含列壓縮、普通列壓縮和普通壓縮流。
20.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于與對(duì)所述壓縮流進(jìn)行編碼結(jié)合地執(zhí)行以下各項(xiàng)中的至少一項(xiàng)的第三可執(zhí)行部分: 分配填充首部, 檢測(cè)所述壓縮流的壓縮類型, 如果檢測(cè)到的所述壓縮類型是普通壓縮,則 設(shè)置所述普通壓縮, 設(shè)置未壓縮大小,并且 寫入壓縮的數(shù)據(jù), 如果檢測(cè)到的所述壓縮類型是列壓縮,則 寫入用于所述列壓縮的流式器數(shù)目,并且 寫入正被處理的列編號(hào), 寫入未壓縮的數(shù)據(jù)大小,并且 寫入列壓縮的數(shù)據(jù),并且 如果檢測(cè)到的所述壓縮類型是普通列壓縮,則 寫入用于所述普通列壓縮的流式器數(shù)目, 寫入正被處理的列編號(hào), 寫入未壓縮的數(shù)據(jù)大小, 寫入列壓縮的數(shù)據(jù),并且 重復(fù)寫入所述流式器數(shù)目、所述列編號(hào)和所述列壓縮的數(shù)據(jù)直至所有普通列壓縮流被處理。
21.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于與提取所述壓縮流結(jié)合地執(zhí)行以下各項(xiàng)中的至少一項(xiàng)的第三可執(zhí)行部分: 讀取填充首部并且提取總壓縮大小, 提取壓縮類型, 如果所述壓縮類型是普通壓縮,則 讀取未壓縮大小,并且 提取壓縮的數(shù)據(jù), 如果所述壓縮類型是列壓縮,則 提取用于所述列壓縮的流式器數(shù)目,并且 提取正被處理的列編號(hào), 提取未壓縮的數(shù)據(jù)大小,并且 提取列壓縮的數(shù)據(jù),并且 如果所述壓縮類型是普通列壓縮,則 提取用于所述普通列壓縮的流式器數(shù)目, 提取正被處理的列編號(hào), 提取未壓縮的數(shù)據(jù)大小, 提取列壓縮的數(shù)據(jù),并且 提取所述流式器數(shù)目、所述列編號(hào)和所述列壓縮的數(shù)據(jù)直至所有普通列壓縮流被提取。
22.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中所述分類使用多個(gè)小詞典以輔助短權(quán)標(biāo)壓縮。
23.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中所述分類保持較大壓縮窗,允許對(duì)重復(fù)的識(shí)別。
24.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于將多個(gè)列欄壓縮操作中的至少一個(gè)列欄壓縮操作應(yīng)用于所述壓縮流中的每個(gè)壓縮流以用于產(chǎn)生增加的壓縮比的第三可執(zhí)行部分。
【文檔編號(hào)】G06F5/00GK104205065SQ201380017113
【公開日】2014年12月10日 申請(qǐng)日期:2013年3月13日 優(yōu)先權(quán)日:2012年3月27日
【發(fā)明者】J·阿米特, L·德米多夫, N·哈洛瓦尼, S·馬倫科夫 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司