專利名稱:通過服務(wù)器端去副本的有效數(shù)據(jù)傳輸?shù)姆椒ê拖到y(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明 一 般涉及去除冗余數(shù)據(jù),更具體地,涉及服務(wù)器端去副本(de-duplication)的減少數(shù)據(jù)傳輸。
背景技術(shù):
去副本將分區(qū)數(shù)據(jù)對(duì)象處理成更小的部分(稱為"區(qū)塊(chunk)")并在區(qū)塊目錄(存儲(chǔ)庫)中僅保留唯一的區(qū)塊。為了能夠重構(gòu)對(duì)象,存儲(chǔ)唯一區(qū)塊的哈希(hash)列表(索引或元數(shù)據(jù))代替原始對(duì)象。通常在由各種去副本產(chǎn)品的銷售商報(bào)告的去副本壓縮比中忽略哈希列表。即典型地,銷售商僅報(bào)告該唯一的區(qū)塊數(shù)據(jù)大小與原始大小。
當(dāng)使用較小的區(qū)塊時(shí)哈希列表相對(duì)較大。較小的區(qū)塊更可能進(jìn)行匹配并可以用于實(shí)現(xiàn)更高的壓縮比。已知的去副本系統(tǒng)通過使用大區(qū)塊尺寸來嘗試減少索引元數(shù)據(jù)的重要性,因此接受了較低的總壓縮比。應(yīng)用于哈希列表的標(biāo)準(zhǔn)壓縮方法(LZ、 Gzip、壓縮、Bzip2等)也執(zhí)行不善。 為了減少從客戶到服務(wù)器的帶寬需求,必須在客戶端執(zhí)行(基于哈希)的去副本??蛻舳藬?shù)據(jù)去副本具有以下不足1)由于客戶端數(shù)據(jù)去副本需要更緊密地與現(xiàn)有的應(yīng)用和系統(tǒng)結(jié)合,所以難以部署;2)當(dāng)在客戶端數(shù)據(jù)去副本中使用哈希方法時(shí)難以直接比較,并且delta差分需要大的本地高速緩存,其在資源有限的客戶端中可能無法獲得。
當(dāng)客戶端數(shù)據(jù)去副本不可能時(shí),可選的是在服務(wù)器執(zhí)行數(shù)據(jù)去副本。在服務(wù)器端數(shù)據(jù)去副本中,在從客戶端到服務(wù)器的鏈路中進(jìn)行去副本之前傳輸數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明提供一種用于減少冗余數(shù)據(jù)塊(block)的方法和系統(tǒng)。所述方法包括將具有第一長度的第一數(shù)據(jù)塊編碼為具有第二長度的位流;將所述位流傳輸?shù)椒?wù)器;以及通過從第一多個(gè)數(shù)據(jù)塊和所述位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中所述第一多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。 在本發(fā)明的一個(gè)實(shí)施例中,使用Sl印ian-Wolf解碼器執(zhí)行所述解碼。在本發(fā)明的另外的實(shí)施例中,當(dāng)對(duì)于全部所述第一長度解碼成功時(shí),對(duì)所述第一數(shù)據(jù)塊執(zhí)行去副本。在本發(fā)明的另外的實(shí)施例中,當(dāng)對(duì)于全部所述第一長度解碼不成功時(shí),向客戶請(qǐng)求所述第一數(shù)據(jù)塊的進(jìn)一步信息。本發(fā)明的這個(gè)實(shí)施例還提供將具有所述第一長度的所述第一數(shù)據(jù)塊編碼為具有所述第二長度和第三長度中之一的另一位流;將所述另一位流傳輸?shù)剿龇?wù)器;通過從第二多個(gè)數(shù)據(jù)塊和所述另一位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中所述第二多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。在本發(fā)明的另外的實(shí)施例中,通過所述解碼執(zhí)行去副本。在本發(fā)明的一個(gè)實(shí)施例中,對(duì)于預(yù)定沖突速率使用可變長度執(zhí)行所述解碼。在本發(fā)明的另外的實(shí)施例中,所述傳輸?shù)膫鬏斔俾士勺円詽M足預(yù)定沖突速率。 本發(fā)明另外提供一種用于減少冗余數(shù)據(jù)塊的系統(tǒng),包括客戶端設(shè)備,包括編碼器
4模塊,所述編碼器模塊被配置為將數(shù)據(jù)塊編碼為位流;服務(wù)器設(shè)備,包括解碼器模塊,所述 解碼器模塊被配置為使用所述服務(wù)器設(shè)備上的之前存儲(chǔ)的多個(gè)數(shù)據(jù)塊來解碼所述位流;以 及去副本模塊,耦合到所述解碼器模塊,所述去副本模塊被配置為對(duì)所述數(shù)據(jù)塊的成功解 碼部分進(jìn)行去副本。 本發(fā)明的一個(gè)實(shí)施例還包括耦合到所述服務(wù)器設(shè)備的數(shù)據(jù)存儲(chǔ)器設(shè)備。本發(fā)明 的另外的實(shí)施例還包括至少另一客戶端設(shè)備。在本發(fā)明的另外的實(shí)施例中,所述編碼器模 塊執(zhí)行S1印ian-Wo 1 f編碼。在本發(fā)明另外的實(shí)施例中,所述解碼器模塊執(zhí)行S1印ian-Wo 1 f 解碼。在本發(fā)明的一個(gè)實(shí)施例中,所述去副本模塊還包括序列標(biāo)識(shí)符模塊,被配置為標(biāo)識(shí)數(shù)
據(jù)對(duì)象的區(qū)塊部分標(biāo)識(shí)符的序列;索引模塊,被配置為基于序列類型將索引應(yīng)用于區(qū)塊部
分的標(biāo)識(shí);以及編碼模塊,被配置為使用第一編碼處理編碼第一重復(fù)序列,和使用第二編碼
處理編碼第二重復(fù)序列,其中避免了對(duì)區(qū)塊部分標(biāo)識(shí)符的重復(fù)序列的存儲(chǔ)。 本發(fā)明的另外的實(shí)施例提供一種用于在去副本之前減少冗余數(shù)據(jù)傳輸?shù)挠?jì)算機(jī)
程序產(chǎn)品。當(dāng)由處理器執(zhí)行時(shí)所述計(jì)算機(jī)程序產(chǎn)品將具有第一長度的第一數(shù)據(jù)塊編碼為
具有第二長度的位流;將所述位流傳輸至服務(wù)器;以及通過從第一多個(gè)數(shù)據(jù)塊和所述位流
解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中所述第一多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于
所述第一長度。 在本發(fā)明的一個(gè)實(shí)施例中,使用Sl印ian-Wolf解碼器執(zhí)行所述解碼。在本發(fā)明的 另外的實(shí)施例中,當(dāng)對(duì)于全部所述第一長度解碼成功時(shí),對(duì)所述第一數(shù)據(jù)塊執(zhí)行去副本。在 本發(fā)明的另外的實(shí)施例中,當(dāng)對(duì)于全部所述第一長度解碼不成功時(shí),從客戶請(qǐng)求所述第一 數(shù)據(jù)塊的進(jìn)一步信息。本發(fā)明的另外的實(shí)施例還使得計(jì)算機(jī)將具有所述第一長度的所述 第一數(shù)據(jù)塊編碼為具有所述第二長度和第三長度中之一的另一位流;將所述另一位流傳輸 到所述服務(wù)器;通過從第二多個(gè)數(shù)據(jù)塊和所述另一位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù) 據(jù)塊,其中所述第二多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。在本發(fā)明的一個(gè)實(shí) 施例中,所述傳輸?shù)膫鬏斔俾士勺円詽M足預(yù)定沖突速率。 在本發(fā)明的另外的實(shí)施例中,提供一種方法,包括使用Sl印ian-Wolf編碼處理
將具有第一長度的第一數(shù)據(jù)塊編碼為具有第二長度的位流;將所述位流傳輸至服務(wù)器設(shè) 備;以及使用Sl印ian-Wolf解碼處理通過從第一多個(gè)數(shù)據(jù)塊和所述位流解碼所述第一數(shù) 據(jù)塊,在去副本之前減少冗余數(shù)據(jù)塊,其中所述第一多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所 述第一長度。 在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)對(duì)于全部所述第一長度解碼不成功時(shí),從客戶端請(qǐng) 求所述第一數(shù)據(jù)塊的進(jìn)一步信息。在本發(fā)明的另外的實(shí)施例中,所述方法還包括將具有所 述第一長度的所述第一數(shù)據(jù)塊編碼為具有所述第二長度和第三長度中之一的另一位流;將 所述另一位流傳輸?shù)剿龇?wù)器;通過從第二多個(gè)數(shù)據(jù)塊和所述另一位流解碼所述第一數(shù) 據(jù)塊來減少冗余數(shù)據(jù)塊,其中所述第二多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。
本發(fā)明的另外的實(shí)施例提供了一種用于減少冗余數(shù)據(jù)塊的傳輸?shù)南到y(tǒng)。所述系統(tǒng) 包括客戶端設(shè)備,包括Sl印ian-Wolf編碼器模塊,所述Sl印ian-Wolf編碼器模塊被配置 為將數(shù)據(jù)塊編碼為位流;服務(wù)器設(shè)備,包括Sl印ian-Wolf解碼器模塊,所述Sl印ian-Wolf 解碼器模塊被配置為使用所述服務(wù)器設(shè)備上的之前存儲(chǔ)的多個(gè)數(shù)據(jù)塊來解碼所述位流;以 及去副本模塊,耦合到所述解碼器模塊,所述去副本模塊被配置為對(duì)所述數(shù)據(jù)塊的成功解
5碼部分進(jìn)行去副本。 在本發(fā)明的一個(gè)實(shí)施例中,所述Sl印ian-Wolf解碼器被配置為在去副本之前減少冗余數(shù)據(jù)塊。 結(jié)合附圖,根據(jù)下面通過實(shí)例例示了本發(fā)明的原理的詳細(xì)的說明,本發(fā)明的其他方面和優(yōu)點(diǎn)將變得顯而易見。
結(jié)合附圖,參考以下詳細(xì)的說明,可以對(duì)本發(fā)明的特點(diǎn)、優(yōu)點(diǎn)以及優(yōu)選模式的應(yīng)用具有更充分的理解,其中 圖1例示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于在去副本之前減少需要傳輸?shù)椒?wù)器設(shè)備的冗余數(shù)據(jù)的系統(tǒng); 圖2例示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于在去副本之前減少需要傳輸?shù)椒?wù)器的冗余數(shù)據(jù)的處理的框圖;以及 圖3例示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的如圖1所示的系統(tǒng)的去副本模塊。
具體實(shí)施例方式
為了例示本發(fā)明的一般原理而進(jìn)行下述說明,其并不意指限制在此請(qǐng)求的創(chuàng)造性理念。此外,在此描述的具體特征可以結(jié)合在各個(gè)可能的組合和變形中的每個(gè)所描述的特征來使用。除非在此特別限定,所有術(shù)語將給出其最廣泛的可能解釋,包括說明書中隱含的含義以及本領(lǐng)域技術(shù)人員理解的和/或在詞典、條約等中定義的含義。 本說明可以公開用于在去副本之前減少冗余數(shù)據(jù)塊的幾個(gè)優(yōu)選實(shí)施例及其操作和/或組件部分。盡管為了清楚起見,在本發(fā)明的環(huán)境中根據(jù)去副本減少處理和設(shè)備來進(jìn)行下面的描述,應(yīng)該緊記,在此的教導(dǎo)可以在所有類型的系統(tǒng)、設(shè)備和應(yīng)用中具有廣泛的應(yīng)用。 本發(fā)明提供了一種用于減少冗余數(shù)據(jù)塊的方法和系統(tǒng)。所述方法包括將具有第一長度的第一數(shù)據(jù)塊編碼為具有第二長度的位流;將所述位流傳輸?shù)椒?wù)器設(shè)備;以及通過從第一多個(gè)數(shù)據(jù)塊和所述位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中所述第一多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。 圖1例示了根據(jù)一個(gè)實(shí)施例的用于在去副本之前減少冗余數(shù)據(jù)塊傳輸?shù)南到y(tǒng)100的框圖。正如所示的那樣,系統(tǒng)100包括客戶端設(shè)備1到N 150,其包含編碼器模塊160。在本發(fā)明的一個(gè)實(shí)施例中,該編碼器使用Sl印ian-Wolf編碼(David Sl印ian和J. K. Wolf的〃 Noiseless Coding ofCorrelated Information Sources" ;IEEE Transactions onInformationTheory ;1973年7月;第471-480頁;vol. 19)。應(yīng)注意,Sl印ian-Wolf涉及彼此不進(jìn)行通信的兩個(gè)或多個(gè)物理上分離的源的輸出的壓縮(分布式編碼)。這些源將他們的壓縮的輸出發(fā)送到中央點(diǎn)(例如,服務(wù)器設(shè)備110)以進(jìn)行聯(lián)合解碼。本發(fā)明的其他實(shí)施例使用其他已知的分布式編碼技術(shù)以進(jìn)行編碼和解碼。 客戶端設(shè)備150通過網(wǎng)絡(luò)、無線連接、有線連接等連接到服務(wù)器設(shè)備。該服務(wù)器設(shè)備包括解碼器模塊120和去副本模塊130。耦接到該服務(wù)器設(shè)備的是數(shù)據(jù)存儲(chǔ)器設(shè)備140。在本發(fā)明的一個(gè)實(shí)施例中,該解碼器模塊使用Sl印ian-Wolf解碼來執(zhí)行解碼。在本發(fā)明的一個(gè)實(shí)施例中,客戶端設(shè)備150包括數(shù)據(jù)源,例如上傳/下載文件(例如數(shù)據(jù)文件、視頻/音頻文件、流媒體等),其可以駐留在或非駐留在客戶端設(shè)備150。在本發(fā)明的實(shí)施例中,該數(shù)據(jù)源從諸如例如互聯(lián)網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)的網(wǎng)絡(luò)、盤、盤驅(qū)動(dòng)、閃存卡、存儲(chǔ)器等下載。 在本發(fā)明的一個(gè)實(shí)施例中,編碼器模塊160使用長度n的Sl印ian-Wolf編碼器將具有長度n的二進(jìn)制數(shù)據(jù)塊X編碼為m位的位流Z,其中m《n (m和n是大于0的整數(shù))??蛻舳嗽O(shè)備150將Z傳輸或路由到服務(wù)器設(shè)備110。服務(wù)器設(shè)備IIO使用與客戶端設(shè)備150的編碼器模塊160所用相同的Sl印ian-Wolf碼的解碼器模塊120,以從Z和在數(shù)據(jù)存儲(chǔ)器設(shè)備140上存儲(chǔ)的一組N個(gè)數(shù)據(jù)塊中解碼X,在該組中的每個(gè)數(shù)據(jù)塊具有長度n {Y (i)}_U=1} A M 。如果對(duì)于i = N的(Z, Y」)解碼是成功的,那么將X轉(zhuǎn)發(fā)到去副本模塊130以進(jìn)行去副本。如果解碼失敗并且i = N,則服務(wù)器設(shè)備110發(fā)送關(guān)于X的更多信息的請(qǐng)求到客戶端設(shè)備150。當(dāng)客戶端設(shè)備150接收到關(guān)于X的更多信息的服務(wù)器設(shè)備110的請(qǐng)求時(shí),編碼器模塊160使用相同的或不同的Sl印ian-Wolf碼來生成另外的m'位的位流Z',其中m+m'《n,并將Z'傳輸或路由到服務(wù)器設(shè)備110,以便解碼器120進(jìn)行另外的解碼,其中對(duì)于該解碼,Z = (Z, Z')。在本發(fā)明的一個(gè)實(shí)施例中,指定m和Sl印ian-Wolf碼以滿足所要的沖突速率。 圖2例示了去副本模塊130。去副本模塊130執(zhí)行在數(shù)據(jù)存儲(chǔ)設(shè)備140中的解碼數(shù)據(jù)塊的去副本。在一個(gè)實(shí)施例中,元數(shù)據(jù)包括說明、參數(shù)、優(yōu)先級(jí)、日期、時(shí)間和關(guān)于區(qū)塊化的對(duì)象部分的其它相關(guān)信息。哈希是字符(例如元數(shù)據(jù))串到代表原始串的較短的固定長度值或鍵的轉(zhuǎn)換。在一個(gè)實(shí)施例中,哈希處理用于索引和檢索在數(shù)據(jù)存儲(chǔ)設(shè)備140中的區(qū)塊部分。應(yīng)注意,使用較短的哈希元數(shù)據(jù)發(fā)現(xiàn)區(qū)塊部分比使用原始的值發(fā)現(xiàn)區(qū)塊部分更快。在一個(gè)實(shí)施例中,哈希函數(shù)用于創(chuàng)建數(shù)據(jù)對(duì)象的區(qū)塊部分的代表值的索引版本。即,哈希函數(shù)用于索引原始的值,于是之后每次當(dāng)檢索到與所述值關(guān)聯(lián)的數(shù)據(jù)時(shí)就使用該函數(shù)。在一個(gè)實(shí)施例中,使用已知的哈希函數(shù),例如除數(shù)余數(shù)法(division-remainder method)、折疊法(folding)、進(jìn)制轉(zhuǎn)換(radix transformation)、數(shù)字重排(digit rearrangement)等。在另外的實(shí)施例中,使用加密的哈希函數(shù),例如MD2,MD4,MD5,安全哈希算法(SHA)等。
在本發(fā)明的一個(gè)實(shí)施例中,去副本模塊130包括分區(qū)塊模塊141、搜索模塊142、序列標(biāo)識(shí)符模塊143、索引模塊144、編碼模塊145和去除模塊146。在本發(fā)明的另外的實(shí)施例中,包括在去副本模塊130中的各個(gè)模塊可以是軟件處理、硬件模塊或軟件和硬件的組合。在本發(fā)明的一個(gè)實(shí)施例中,去副本模塊130減少在去副本中的區(qū)塊部分的索引標(biāo)識(shí)符,其中這些標(biāo)識(shí)符是對(duì)象的元數(shù)據(jù)哈希。分區(qū)塊模塊141被配置為根據(jù)從數(shù)據(jù)分區(qū)塊器接收的區(qū)塊創(chuàng)建更小的區(qū)塊部分。在本發(fā)明的另外的實(shí)施例中,分區(qū)塊模塊141通過以下中的一個(gè)或多個(gè)來對(duì)較大的區(qū)塊的輸入流執(zhí)行分區(qū)塊以便將區(qū)塊部分的輸入流減少到更小的區(qū)塊部分固定大小分區(qū)塊、滑動(dòng)窗分區(qū)塊、可變大小分區(qū)塊、內(nèi)容從屬分區(qū)塊。
在本發(fā)明的一個(gè)實(shí)施例中,搜索模塊142對(duì)數(shù)據(jù)存儲(chǔ)器設(shè)備140進(jìn)行搜索以發(fā)現(xiàn)塊針對(duì)最初目的為數(shù)據(jù)存儲(chǔ)器設(shè)備140的區(qū)塊的匹配區(qū)塊。在本發(fā)明的一個(gè)實(shí)施例中,序列標(biāo)識(shí)符模塊143進(jìn)行操作以標(biāo)識(shí)數(shù)據(jù)對(duì)象的區(qū)塊部分標(biāo)識(shí)符的序列。根據(jù)本發(fā)明的一個(gè)實(shí)施例,索引模塊144進(jìn)行操作以基于區(qū)塊重復(fù)序列類型將索引應(yīng)用于區(qū)塊部分的標(biāo)識(shí)。在本發(fā)明的另外的實(shí)施例中,所存儲(chǔ)的區(qū)塊部分的標(biāo)識(shí)(例如哈希元數(shù)據(jù))包括以時(shí)間發(fā)生順序鏈接新增的區(qū)塊部分的標(biāo)識(shí)的時(shí)序指針。 在本發(fā)明的一個(gè)實(shí)施例中,編碼模塊145連接到索引模塊144,編碼模塊145操作 以使用第一編碼處理來編碼第一重復(fù)區(qū)塊序列,以及使用第二編碼處理來編碼第二重復(fù)區(qū) 塊序列,從存儲(chǔ)器中去除區(qū)塊部分標(biāo)識(shí)符的重復(fù)序列以減少存儲(chǔ)器使用。根據(jù)本發(fā)明的一 個(gè)實(shí)施例,第二編碼處理標(biāo)識(shí)了區(qū)塊部分的第一重復(fù)序列的第一外觀。在本發(fā)明的另外的 實(shí)施例中,第二編碼處理包括從重復(fù)區(qū)塊部分的第一外觀到重復(fù)區(qū)塊部分的第二外觀的距 離偏移。在本發(fā)明的實(shí)施例中,基于重復(fù)區(qū)塊標(biāo)識(shí)的長度來分配序列類型。在本發(fā)明的一 個(gè)實(shí)施例中,可選的去除模塊146從數(shù)據(jù)存儲(chǔ)器設(shè)備140除去重復(fù)區(qū)塊部分以減少在數(shù)據(jù) 存儲(chǔ)器設(shè)備140中所存儲(chǔ)的區(qū)塊部分。 在本發(fā)明的一個(gè)實(shí)施例中,要從客戶端設(shè)備150傳輸或路由到服務(wù)器設(shè)備110的 數(shù)據(jù)量的減少使得傳輸時(shí)間得到了減少和/或降低了帶寬需求。由于編碼器模塊160包括 Sl印ian-Wolf編碼,其在實(shí)現(xiàn)上是簡單的、在計(jì)算上是有效的,本發(fā)明的實(shí)施例可以容易地 集成到現(xiàn)有的應(yīng)用和系統(tǒng)中。 相對(duì)于非哈希值服務(wù)器端去副本來說,使用本發(fā)明的實(shí)施例的一個(gè)優(yōu)點(diǎn)是與在 使用去副本有效情況下的無損耗壓縮相比顯著減少要傳輸?shù)臄?shù)據(jù)量。對(duì)于具有在服務(wù)器存 儲(chǔ)的復(fù)制副本的數(shù)據(jù),可以在一個(gè)回合中使用Sl印ian-Wolf解碼來執(zhí)行去副本,然而使用 無損耗壓縮則必須在兩個(gè)回合中依次執(zhí)行解壓縮和去副本。相對(duì)于哈希值服務(wù)器端數(shù)據(jù) 去副本來說,使用本發(fā)明的實(shí)施例的其他優(yōu)點(diǎn)是在當(dāng)數(shù)據(jù)的完全副本在服務(wù)器不可用而 存在其細(xì)微改變時(shí)(在這種情況下,不能發(fā)現(xiàn)要傳輸?shù)臄?shù)據(jù)的哈希值的準(zhǔn)確匹配,因此,需 要傳輸原始的數(shù)據(jù)),在仍然可以實(shí)現(xiàn)重點(diǎn)壓縮的意義上,本發(fā)明的實(shí)施例相對(duì)于哈希值服 務(wù)器端數(shù)據(jù)去副本更靈活和高效[對(duì)于Sl印ian-Wolf情況,如果所存儲(chǔ)的未壓縮數(shù)據(jù)與 Sl印ian-Wolf解碼數(shù)據(jù)之間的區(qū)別很小,則可以在解碼之后執(zhí)行第二層級(jí)去副本以進(jìn)一步 壓縮所存儲(chǔ)的數(shù)據(jù)];與在有限范圍內(nèi)僅發(fā)送哈希值相比,本發(fā)明的實(shí)施例允許靈活調(diào)整 傳輸速率以滿足所要的沖突速率。 圖3例示了用于減少從客戶端設(shè)備到服務(wù)器設(shè)備的數(shù)據(jù)傳輸?shù)奶幚?00的框圖。 處理300以框310開始,其中在客戶端設(shè)備上,使用Sl印ian-Wolf解碼器將具有長度n的 數(shù)據(jù)塊X編碼為m位的位流Z。在框320,將位流Z傳輸或路由至服務(wù)器設(shè)備。在框330,通 過將i設(shè)置為一 ("1")初始化Sl印ian-Wolf解碼器,其中i是用于解碼位流Z中的第i 個(gè)數(shù)據(jù)塊的索引。在框340,對(duì)于第i個(gè)數(shù)據(jù)塊(其為當(dāng)前i = 1),將位流Z解碼為X。
框350確定是否成功解碼第i個(gè)數(shù)據(jù)塊。如果成功解碼所有數(shù)據(jù)塊(即i = 1至 n),則處理300繼續(xù)進(jìn)行到框355,其中在服務(wù)器設(shè)備上對(duì)于解碼數(shù)據(jù)塊X執(zhí)行數(shù)據(jù)去副本。 如果沒有成功解碼第i個(gè)數(shù)據(jù)塊,則處理300繼續(xù)到框360。在框360,確定i是否小于n(i < n)。如果i小于n,則處理300繼續(xù)到框365,其中使i增加1 (i = i+l)并且處理300繼 續(xù)進(jìn)行到框340。如果確定i不小于1,則處理300繼續(xù)到框370,其中從服務(wù)器設(shè)備發(fā)送關(guān) 于數(shù)據(jù)塊X的更多信息的請(qǐng)求到客戶端設(shè)備。處理300繼續(xù)到框380,其中客戶端設(shè)備使用 相同或不同的Sl印ian-Wolf編碼器將具有長度為n的數(shù)據(jù)塊X編碼為在客戶端設(shè)備上的 m'位的位流Z'(其中m+m'《n)。于是設(shè)置Z為(Z, Z'),處理300繼續(xù)進(jìn)行到框320。 處理300繼續(xù)進(jìn)行直到恢復(fù)數(shù)據(jù)塊X以進(jìn)行服務(wù)器設(shè)備上的去副本。 本發(fā)明的實(shí)施例可以使用完全硬件實(shí)現(xiàn)、完全軟件實(shí)現(xiàn)或包括硬件和軟件元素的實(shí)現(xiàn)的形式。在優(yōu)選的實(shí)施例中,本發(fā)明以軟件實(shí)現(xiàn),其包括但是不限于固件、常駐軟件、微碼等。 此外,本發(fā)明的實(shí)施例可以使用從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可訪問的計(jì)算機(jī) 程序產(chǎn)品,該介質(zhì)提供程序代碼以通過或連接于計(jì)算機(jī)、處理設(shè)備、任何指令執(zhí)行系統(tǒng)使 用。為了說明的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是可以包含、存儲(chǔ)、通信、或傳輸該 程序的設(shè)備以通過或連接于指令執(zhí)行系統(tǒng)、設(shè)備或組織使用。 該介質(zhì)可以是電子的、磁性的、光學(xué)的或半導(dǎo)體系統(tǒng)(或設(shè)備或裝置)。計(jì)算機(jī)可 讀介質(zhì)的實(shí)例包括但是不限于半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)磁盤、RAM、只讀存 儲(chǔ)器(R0M)、剛性磁盤、光學(xué)盤等。光學(xué)盤的現(xiàn)有的實(shí)例包括光盤只讀存儲(chǔ)器(CD-ROM)、光 盤讀/寫(CD-R/W)和DVD。 1/0設(shè)備(包括但不限于鍵盤、顯示器、定點(diǎn)設(shè)備等)可以直接連接到該系統(tǒng),也可
以通過中間控制器連接到該系統(tǒng)。網(wǎng)絡(luò)適配器也可以連接到該系統(tǒng)以支持該數(shù)據(jù)處理系統(tǒng)
通過中間的私有或公共網(wǎng)絡(luò)連接到其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)器設(shè)備。調(diào)制解
調(diào)器、有線調(diào)制解調(diào)器和以太網(wǎng)卡僅僅是一些當(dāng)前可用的網(wǎng)絡(luò)適配器的類型。 在上述說明中,闡述了許多具體細(xì)節(jié)。然而,應(yīng)理解,可以實(shí)現(xiàn)本發(fā)明的實(shí)施例而
無需這些具體細(xì)節(jié)。例如,可以代替熟知的等同組件和部件以代替在此描述的細(xì)節(jié),類似
的,可以代替熟知的等同技術(shù)以代替在此公開的特定技術(shù)。在其它實(shí)例中,沒有詳細(xì)示出熟
知的結(jié)構(gòu)和技術(shù)以避免使對(duì)本說明的理解變得不清楚。 在說明書中提及的"實(shí)施例"、"一個(gè)實(shí)施例"、"一些實(shí)施例"或"其它實(shí)施例"指結(jié) 合實(shí)施例描述的具體特征、結(jié)構(gòu)或特性包括在至少一些實(shí)施例中,但是不必是所有實(shí)施例。 出現(xiàn)的"實(shí)施例"、"一個(gè)實(shí)施例"、"一些實(shí)施例"的不必都指相同的實(shí)施例。如果說明書陳述 "可以"、"可"或"能夠"包括組件、特征、結(jié)構(gòu)或特性,則不必要求包括該特定的組件、特征、 結(jié)構(gòu)或特性。如果說明書或權(quán)利要求書涉及"一個(gè)"部件,其不是指僅存在一個(gè)部件。如果 說明書或權(quán)利要求書涉及"一個(gè)附加的"部件,這并不排除存在多于一個(gè)的附加的部件。
雖然在附圖中描述和示出了 一些示例性實(shí)施例,但是應(yīng)理解,這樣的實(shí)施例僅僅 是例示而非對(duì)本發(fā)明的廣泛性進(jìn)行限制,以及本發(fā)明并不限于所示的和描述的具體結(jié)構(gòu)和 排列,因?yàn)楸绢I(lǐng)域技術(shù)人員可以想到各種其它改變。
9
權(quán)利要求
一種方法,包括將具有第一長度的第一數(shù)據(jù)塊編碼為具有第二長度的位流;將所述位流傳輸?shù)椒?wù)器;以及通過從第一多個(gè)數(shù)據(jù)塊和所述位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中所述第一多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。
2. 如權(quán)利要求1所述的方法,其中使用Sl印ian-Wolf解碼器執(zhí)行所述解碼。
3. 如權(quán)利要求1所述的方法,其中當(dāng)對(duì)于全部所述第一長度成功解碼時(shí),對(duì)所述第一 數(shù)據(jù)塊執(zhí)行去副本。
4. 如權(quán)利要求1所述的方法,其中當(dāng)對(duì)于全部所述第一長度解碼不成功時(shí),從客戶端 請(qǐng)求所述第一數(shù)據(jù)塊的進(jìn)一步信息。
5. 如權(quán)利要求4所述的方法,還包括將具有所述第一長度的所述第一數(shù)據(jù)塊編碼為具有所述第二長度和第三長度中之一 的另一位流;將所述另一位流傳輸?shù)剿龇?wù)器;通過從第二多個(gè)數(shù)據(jù)塊和所述另一位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中 所述第二多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。
6. 如權(quán)利要求1所述的方法,其中通過所述解碼執(zhí)行去副本。
7. 如權(quán)利要求1所述的方法,其中對(duì)于預(yù)定沖突速率使用可變長度執(zhí)行所述解碼。
8. 如權(quán)利要求1所述的方法,其中所述傳輸?shù)膫鬏斔俾士勺円詽M足預(yù)定沖突速率。
9. 一種用于減少冗余數(shù)據(jù)塊的系統(tǒng),包括客戶端設(shè)備,包括編碼器模塊,所述編碼器模塊被配置為將數(shù)據(jù)塊編碼為位流; 服務(wù)器設(shè)備,包括解碼器模塊,所述解碼器模塊被配置為使用所述服務(wù)器設(shè)備上的之前存儲(chǔ)的多個(gè)數(shù)據(jù)塊來解碼所述位流;以及去副本模塊,耦合到所述解碼器模塊,所述去副本模塊被配置為對(duì)所述數(shù)據(jù)塊的成功解碼部分進(jìn)行去副本。
10. 如權(quán)利要求9所述的系統(tǒng),還包括耦合到所述服務(wù)器設(shè)備的數(shù)據(jù)存儲(chǔ)器設(shè)備。
11. 如權(quán)利要求9所述的系統(tǒng),還包括至少另一客戶端設(shè)備。
12. 如權(quán)利要求9所述的系統(tǒng),其中所述編碼器模塊執(zhí)行Sl印ian-Wolf編碼。
13. 如權(quán)利要求9所述的系統(tǒng),其中所述解碼器模塊執(zhí)行Sl印ian-Wolf解碼。
14. 一種計(jì)算機(jī)系統(tǒng),包括用于執(zhí)行如權(quán)利要求1-8中任一項(xiàng)的所述的方法的裝置。
15. —種包括計(jì)算機(jī)可用介質(zhì)的計(jì)算機(jī)程序制品,所述介質(zhì)包括計(jì)算機(jī)可讀程序,其中 當(dāng)在計(jì)算機(jī)上執(zhí)行所述計(jì)算機(jī)可讀程序時(shí)使得所述計(jì)算機(jī)執(zhí)行將具有第一長度的第一數(shù)據(jù)塊編碼為具有第二長度的位流; 將所述位流傳輸至服務(wù)器;以及通過從第一多個(gè)數(shù)據(jù)塊和所述位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中所述 第一多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。
16. —種方法,包括使用Sl印ian-Wolf編碼處理將具有第一長度的第一數(shù)據(jù)塊編碼為具有第二長度的位流;將所述位流傳輸至服務(wù)器設(shè)備;以及使用Sl印ian-Wolf解碼處理通過從第一多個(gè)數(shù)據(jù)塊和所述位流解碼所述第一數(shù)據(jù) 塊,在去副本之前減少冗余數(shù)據(jù)塊,其中所述第一多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。
17. 如權(quán)利要求16所述的方法,其中當(dāng)對(duì)于全部所述第一長度解碼不成功時(shí),從客戶 端請(qǐng)求所述第一數(shù)據(jù)塊的進(jìn)一步信息。
18. 如權(quán)利要求17所述的方法,還包括將具有所述第一長度的所述第一數(shù)據(jù)塊編碼為具有所述第二長度和第三長度中之一 的另一位流;將所述另一位流傳輸?shù)剿龇?wù)器;通過從第二多個(gè)數(shù)據(jù)塊和所述另一位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中 所述第二多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。
19. 一種用于減少冗余數(shù)據(jù)塊的傳輸?shù)南到y(tǒng),包括客戶端設(shè)備,包括Sl印ian-Wolf編碼器模塊,所述Sl印ian-Wolf編碼器模塊被配置為 將數(shù)據(jù)塊編碼為位流;服務(wù)器設(shè)備,包括Sl印ian-Wolf解碼器模塊,所述Sl印ian-Wolf解碼器模塊被配置為 使用所述服務(wù)器設(shè)備上的之前存儲(chǔ)的多個(gè)數(shù)據(jù)塊來解碼所述位流;以及去副本模塊,耦合到所述解碼器模塊,所述去副本模塊被配置為對(duì)所述數(shù)據(jù)塊的成功 解碼部分進(jìn)行去副本。
20. 如權(quán)利要求19所述的系統(tǒng),其中所述Sl印ian-Wolf解碼器被配置為在去副本之前 減少冗余數(shù)據(jù)塊。
全文摘要
本發(fā)明涉及通過服務(wù)器端去副本的有效數(shù)據(jù)傳輸?shù)姆椒ê拖到y(tǒng)。在本發(fā)明實(shí)施例中公開一種用于減少冗余數(shù)據(jù)塊的方法和系統(tǒng)。所述方法包括將具有第一長度的第一數(shù)據(jù)塊編碼為具有第二長度的位流;將所述位流傳輸?shù)椒?wù)器;以及通過從第一多個(gè)數(shù)據(jù)塊和所述位流解碼所述第一數(shù)據(jù)塊來減少冗余數(shù)據(jù)塊,其中所述第一多個(gè)數(shù)據(jù)塊中的每個(gè)塊的長度等于所述第一長度。
文檔編號(hào)H04L29/06GK101741838SQ20091022244
公開日2010年6月16日 申請(qǐng)日期2009年11月13日 優(yōu)先權(quán)日2008年11月18日
發(fā)明者D·何, V·舍伊寧 申請(qǐng)人:國際商業(yè)機(jī)器公司