一種數(shù)據(jù)壓縮方法、設(shè)備及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)壓縮方法、設(shè)備及系統(tǒng)。
【背景技術(shù)】
[0002] 重復(fù)數(shù)據(jù)刪除技術(shù)是基于重復(fù)則刪除的原則,通過(guò)一定的算法消除相同文件或者 相似文件之間的重復(fù)數(shù)據(jù)。數(shù)據(jù)塊級(jí)的重復(fù)數(shù)據(jù)刪除是指首先將文件劃分成數(shù)據(jù)塊并計(jì)算 出各個(gè)數(shù)據(jù)塊的數(shù)據(jù)指紋,通過(guò)比較數(shù)據(jù)塊的數(shù)據(jù)指紋判斷是否有相同的數(shù)據(jù)塊存儲(chǔ)在數(shù) 據(jù)庫(kù)中,若檢測(cè)到目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋與數(shù)據(jù)庫(kù)中的數(shù)據(jù)指紋相同,則刪除該目標(biāo)數(shù)據(jù) 塊。
[0003] CDC (Content-Defined Qumking,基于內(nèi)容的數(shù)據(jù)分塊)算法是一種變長(zhǎng)分塊算 法,即通過(guò)數(shù)據(jù)指紋(如R油in指紋)將文件分割成長(zhǎng)度大小不等的分塊策略。CDC算法 使用一個(gè)固定大?。ㄈ?8字節(jié))的滑動(dòng)窗口對(duì)文件數(shù)據(jù)計(jì)算數(shù)據(jù)指紋,如果數(shù)據(jù)指紋滿足 某個(gè)條件,如所述數(shù)據(jù)指紋等于預(yù)定義值,則把窗口位置作為塊的邊界。但CDC算法劃分?jǐn)?shù) 據(jù)塊的粒度絕大部分取決于數(shù)據(jù)塊的設(shè)定,若設(shè)置的數(shù)據(jù)塊較小,則粒度較細(xì),重復(fù)數(shù)據(jù)查 找較為精確,但數(shù)據(jù)塊索引W及數(shù)據(jù)塊的對(duì)比等開(kāi)銷較大;若設(shè)置的數(shù)據(jù)塊較大,則粒度較 粗,數(shù)據(jù)去重效率較低。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問(wèn)題在于,提供一種數(shù)據(jù)壓縮方法、設(shè)備及系統(tǒng),可在不影 響吞吐率的情況下提升數(shù)據(jù)去重率。
[0005] 為了解決上述技術(shù)問(wèn)題,本發(fā)明第一方面提供了一種數(shù)據(jù)壓縮方法,所述方法包 括:
[0006] 獲取目標(biāo)網(wǎng)絡(luò)數(shù)據(jù);
[0007] 根據(jù)所述獲取到的目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流的兀余率,設(shè)置所述目標(biāo) 網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)分塊參數(shù);
[0008] 根據(jù)所述設(shè)置的數(shù)據(jù)分塊參數(shù),將所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行數(shù)據(jù)分塊從而獲取至少 一個(gè)目標(biāo)數(shù)據(jù)塊;
[0009] 依次將所述至少一個(gè)目標(biāo)數(shù)據(jù)塊與數(shù)據(jù)庫(kù)中的數(shù)據(jù)塊進(jìn)行比較;
[0010] 刪除與所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)塊相同的目標(biāo)數(shù)據(jù)塊。
[0011] 在第一種可能的實(shí)現(xiàn)方式中,將與所述數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)塊都不相同的目標(biāo)數(shù) 據(jù)塊存儲(chǔ)到所述數(shù)據(jù)庫(kù)中的所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)庫(kù)容器 中。
[0012] 結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式 中,所述依次將所述至少一個(gè)目標(biāo)數(shù)據(jù)塊與數(shù)據(jù)庫(kù)中的數(shù)據(jù)塊進(jìn)行比較包括;
[0013] 分別計(jì)算所述至少一個(gè)目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋;
[0014] 通過(guò)依次比較所述計(jì)算得到的至少一個(gè)目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋與所述數(shù)據(jù)庫(kù)的 指紋索引表中的數(shù)據(jù)指紋,依次比較所述至少一個(gè)目標(biāo)數(shù)據(jù)塊與所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)塊。
[0015] 結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第H種可能的實(shí)現(xiàn)方式中,所述將與 所述數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)塊都不相同的目標(biāo)數(shù)據(jù)塊存儲(chǔ)到所述數(shù)據(jù)庫(kù)中的所述目標(biāo)網(wǎng)絡(luò) 數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)庫(kù)容器中包括;
[0016] 將與所述指紋索引表中的所有數(shù)據(jù)指紋都不相同的數(shù)據(jù)指紋對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊 存儲(chǔ)到所述數(shù)據(jù)庫(kù)中的所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)庫(kù)容器中;
[0017] 將所述存儲(chǔ)到所述數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋及其元數(shù)據(jù)存儲(chǔ)到所述指 紋索引表中,所述元數(shù)據(jù)包括所述目標(biāo)數(shù)據(jù)塊在所述數(shù)據(jù)庫(kù)中的地址和長(zhǎng)度。
[0018] 結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述分別 計(jì)算所述至少一個(gè)目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋之后,將與所述指紋索引表中的所有數(shù)據(jù)指紋都 不相同的目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋及所述目標(biāo)數(shù)據(jù)塊封裝到針對(duì)所述網(wǎng)絡(luò)數(shù)據(jù)的編碼后數(shù) 據(jù)中;
[0019] 將與所述指紋索引表中的數(shù)據(jù)指紋相同的目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋封裝到所述編 碼后數(shù)據(jù)中;
[0020] 將所述編碼后數(shù)據(jù)發(fā)送給遠(yuǎn)端廣域網(wǎng)優(yōu)化設(shè)備。
[0021] 結(jié)合第一方面或第一方面的第一種至第四種中的任一種可能的實(shí)現(xiàn)方式,在第五 種可能的實(shí)現(xiàn)方式中,所述獲取目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)之后,通過(guò)所述獲取到的目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng) 的端口信息,確定所述獲取到的目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流。
[0022] 結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,獲取針對(duì) 所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)的重組指令;
[0023] 根據(jù)所述重組指令獲取針對(duì)所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)的編碼后數(shù)據(jù);
[0024] 所述獲取到的編碼后數(shù)據(jù)中僅存在目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋時(shí),在所述數(shù)據(jù)庫(kù)中獲 取所述數(shù)據(jù)指紋對(duì)應(yīng)的數(shù)據(jù)塊;
[0025] 將所述獲取到的編碼后數(shù)據(jù)中的目標(biāo)數(shù)據(jù)塊和所述獲取到的所述數(shù)據(jù)庫(kù)中的數(shù) 據(jù)塊組裝成所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)。
[0026] 本發(fā)明第二方面提供了一種廣域網(wǎng)優(yōu)化設(shè)備,所述廣域網(wǎng)優(yōu)化設(shè)備包括:
[0027] 獲取單元,用于獲取目標(biāo)網(wǎng)絡(luò)數(shù)據(jù);
[0028] 設(shè)置單元,用于根據(jù)所述獲取單元獲取到的目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流 的兀余率,設(shè)置所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)分塊參數(shù);
[0029] 數(shù)據(jù)分塊單元,還用于根據(jù)所述設(shè)置單元設(shè)置的數(shù)據(jù)分塊參數(shù),將所述目標(biāo)網(wǎng)絡(luò) 數(shù)據(jù)進(jìn)行數(shù)據(jù)分塊從而獲取至少一個(gè)目標(biāo)數(shù)據(jù)塊;
[0030] 比較單元,用于依次將所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)經(jīng)過(guò)所述數(shù)據(jù)分塊單元進(jìn)行數(shù)據(jù)分塊獲 取到的至少一個(gè)目標(biāo)數(shù)據(jù)塊與數(shù)據(jù)庫(kù)中的數(shù)據(jù)塊進(jìn)行比較;
[0031] 刪除單元,用于刪除所述比較單元比較得到的與所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)塊相同的目 標(biāo)數(shù)據(jù)塊。
[0032] 在第一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)塊存儲(chǔ)單元用于將所述比較單元比較得到的與 所述數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)塊都不相同的目標(biāo)數(shù)據(jù)塊存儲(chǔ)到所述數(shù)據(jù)庫(kù)中的所述目標(biāo)網(wǎng)絡(luò) 數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流對(duì)應(yīng)的數(shù)據(jù)庫(kù)容器中。
[0033] 結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式 中,所述比較單元包括;
[0034] 計(jì)算模塊,用于分別計(jì)算所述目標(biāo)數(shù)據(jù)網(wǎng)絡(luò)經(jīng)過(guò)所述數(shù)據(jù)分塊單元進(jìn)行數(shù)據(jù)分塊 獲取到的至少一個(gè)目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋;
[00巧]比較模塊,用于通過(guò)依次比較所述計(jì)算模塊計(jì)算得到的至少一個(gè)目標(biāo)數(shù)據(jù)塊的數(shù) 據(jù)指紋與所述數(shù)據(jù)庫(kù)的指紋索引表中的數(shù)據(jù)指紋,依次比較所述至少一個(gè)目標(biāo)數(shù)據(jù)塊與所 述數(shù)據(jù)庫(kù)中的數(shù)據(jù)塊。
[0036] 結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第H種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù) 塊存儲(chǔ)單元包括;
[0037] 數(shù)據(jù)塊存儲(chǔ)模塊,用于將與所述指紋索引表中的所有數(shù)據(jù)指紋都不相同的數(shù)據(jù)指 紋對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊存儲(chǔ)到所述數(shù)據(jù)庫(kù)中的所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流對(duì) 應(yīng)的數(shù)據(jù)庫(kù)容器中;
[0038] 指紋存儲(chǔ)模塊,用于將所述數(shù)據(jù)塊存儲(chǔ)模塊存儲(chǔ)到所述數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)塊的 數(shù)據(jù)指紋及其元數(shù)據(jù)存儲(chǔ)到所述指紋索引表中,所述元數(shù)據(jù)包括所述目標(biāo)數(shù)據(jù)塊在所述數(shù) 據(jù)庫(kù)中的地址和長(zhǎng)度。
[0039] 結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,指紋封裝 單元用于在所述比較單元分別計(jì)算所述至少一個(gè)目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋后,將與所述指紋 索引表中的所有數(shù)據(jù)指紋都不相同的目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋及所述目標(biāo)數(shù)據(jù)塊封裝到針 對(duì)所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)的編碼后數(shù)據(jù)中;
[0040] 所述指紋封裝單元還用于在所述比較單元分別計(jì)算所述至少一個(gè)目標(biāo)數(shù)據(jù)塊的 數(shù)據(jù)指紋后,將與所述指紋索引表中的數(shù)據(jù)指紋相同的目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋封裝到所述 編碼后數(shù)據(jù)中;
[0041] 發(fā)送單元用于將所述編碼后數(shù)據(jù)發(fā)送給遠(yuǎn)端廣域網(wǎng)優(yōu)化設(shè)備。
[0042] 結(jié)合第二方面或第二方面的第一種至第四種中的任一種可能的實(shí)現(xiàn)方式,在第五 種可能的實(shí)現(xiàn)方式中,確定單元用于通過(guò)所述獲取單元獲取到的目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)對(duì)應(yīng)的端口 信息,確定所述獲取到的目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)所屬的網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)流。
[0043] 結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述獲取 單元還用于獲取針對(duì)所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)的重組指令;
[0044] 根據(jù)所述重組指令獲取針對(duì)所述目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)的編碼后數(shù)據(jù);
[0045] 所述編碼后數(shù)據(jù)中存在目標(biāo)數(shù)據(jù)塊的數(shù)據(jù)指紋時(shí),在所述數(shù)據(jù)庫(kù)中獲取所