利用異步數(shù)據(jù)詞典在多租戶共享的基礎(chǔ)設(shè)施中的基于流的重復(fù)數(shù)據(jù)刪除的制作方法
【專利摘要】在多租戶共享的基礎(chǔ)設(shè)施中提供基于流的重復(fù)數(shù)據(jù)刪除,而不需要具有同步的數(shù)據(jù)詞典的“配對的”端點(diǎn)。在此方法中,由重復(fù)數(shù)據(jù)刪除功能處理的數(shù)據(jù)對象被當(dāng)做可以根據(jù)需要取得的對象對待。因?yàn)閴嚎s的對象被僅僅當(dāng)做對象對待,所以解碼對等方不需要維護(hù)對于源對稱的庫。相反地,如果對等方在高速緩存中不具有它需要的組塊,則它遵循傳統(tǒng)的內(nèi)容遞送網(wǎng)絡(luò)(CDN)程序以檢索它們。以這種方式,如果發(fā)送和接收對等方對之間的詞典不同步,則相關(guān)的部分被按需重新同步化。該方法不要求在特定對發(fā)送和接收對等方處保持的庫是相同的。相反地,該技術(shù)能夠使得對等方實(shí)際上在空閑時(shí)“回填”它的詞典。
【專利說明】利用異步數(shù)據(jù)詞典在多租戶共享的基礎(chǔ)設(shè)施中的基于流的 重復(fù)數(shù)據(jù)刪除
[0001] 本申請基于并要求2012年5月17日提交的序列號No. 61/648, 209的優(yōu)先權(quán)。
【技術(shù)領(lǐng)域】
[0002] 本申請一般涉及通過網(wǎng)絡(luò)的數(shù)據(jù)通信。
【背景技術(shù)】
[0003] 分布式計(jì)算機(jī)系統(tǒng)在現(xiàn)有技術(shù)中是公知的。一個(gè)這樣的分布式計(jì)算機(jī)系統(tǒng)是通常 由服務(wù)提供者操作并管理的"內(nèi)容遞送網(wǎng)絡(luò)"或"CDN"。服務(wù)提供者通常代表使用服務(wù)提 供者的共享基礎(chǔ)設(shè)施的第三方(用戶)提供內(nèi)容遞送服務(wù)。此類型的分布式系統(tǒng)有時(shí)被稱 為"覆蓋網(wǎng)絡(luò)"并且通常是指由網(wǎng)絡(luò)或網(wǎng)絡(luò)鏈接在一起的獨(dú)立計(jì)算機(jī)與軟件、系統(tǒng)、協(xié)議和 技術(shù)的集合,所述技術(shù)被設(shè)計(jì)以便于各種服務(wù),諸如內(nèi)容遞送、網(wǎng)絡(luò)應(yīng)用加速、或外包源站 點(diǎn)基礎(chǔ)設(shè)施的其它支持。CDN服務(wù)提供者通常經(jīng)由數(shù)字資產(chǎn)(諸如網(wǎng)站)提供服務(wù)遞送,其 被提供在用戶門戶中并且然后被布置到網(wǎng)絡(luò)。
[0004] 數(shù)據(jù)差異化是在服務(wù)器與客戶端之間利用資源的共享先前實(shí)例,在壓縮術(shù)語中也 稱為共享詞典之內(nèi)的數(shù)據(jù)版本,的公知的技術(shù)和方法;所述處理通過僅僅發(fā)送差異或自從 那些先前實(shí)例以來出現(xiàn)的改變而工作。數(shù)據(jù)差異化涉及壓縮,但是它是稍微有差別的構(gòu)思。 具體地,直觀地,差異("diff·"")是一種壓縮形式。只要接收者與發(fā)送者具有相同的初始 文件,那些發(fā)送者可以給接收者diff而不是整個(gè)新文件。diff實(shí)際上說明如何從舊文件創(chuàng) 建新文件。它通常遠(yuǎn)小于整個(gè)新文件并且因此是一種壓縮形式。文檔的第一版本與前述文 檔的第二版本之間的diff是數(shù)據(jù)差異;數(shù)據(jù)差異是利用文檔的第一版本作為預(yù)設(shè)詞典的 文檔的第二版本的壓縮結(jié)果。
[0005] 基于流的重復(fù)數(shù)據(jù)刪除("重復(fù)數(shù)據(jù)刪除")系統(tǒng)在現(xiàn)有技術(shù)中也是公知的。一 般,基于流的重復(fù)數(shù)據(jù)刪除系統(tǒng)通過檢查流過連接的發(fā)送對等方的數(shù)據(jù)和用指到每個(gè)對等 方關(guān)于給定塊已經(jīng)同步的共享詞典中的參考來替換數(shù)據(jù)塊進(jìn)行工作。引用本身遠(yuǎn)小于數(shù)據(jù) 并且通常是它的散列或指紋。當(dāng)接收對等方接收修改的流時(shí),它利用原始數(shù)據(jù)替換引用以 再一次做出整個(gè)流。例如,考慮一個(gè)系統(tǒng),其中指紋是用單個(gè)字母變量表示的唯一散列。發(fā) 送對等方的詞典然后可以如圖3所示。接收對等方的詞典可以如圖4所示。然后,例如,如 果發(fā)送對等方被認(rèn)為發(fā)送諸如"Hello, how are you ? Akamai is Awesome ! "之類的串, 則重復(fù)數(shù)據(jù)刪除系統(tǒng)將處理數(shù)據(jù)并且發(fā)送以下消息:"He[X]re you? [T][M]ome!"。接 收對等方利用它的詞典解碼消息。注意,在此示例中,發(fā)送對等方并不利用引用[0]替換 "ome ! "。這是因?yàn)椋m然發(fā)送對等方具有指紋和在它的高速緩存中存儲它的塊,但是對等 方知道(通過機(jī)制)接收對等方并不具有。因此,發(fā)送對等方在發(fā)送它之前不在消息中插 入引用。此類型的系統(tǒng)通常以若干公知方式填充是對稱的詞典。在一個(gè)方法中,當(dāng)數(shù)據(jù)流 流過數(shù)據(jù)處理器時(shí)以固定長度的塊(例如,每塊具有15個(gè)符號的長度)填充詞典。第一次 數(shù)據(jù)經(jīng)過發(fā)送和接收對等方時(shí),并且假定它們都以同樣的方式構(gòu)成詞典,則兩個(gè)對等方以 具有包含相同的條目的詞典終止。但是,此方法不是最優(yōu)的,因?yàn)樗T馐鼙环Q為"偏移"問 題的問題,其可以不利地影響生成的指紋并且破壞整個(gè)方案。
[0006] 可替換方法利用以滾動方式計(jì)算的散列使用可變長度的塊。在基于被稱為 Rabin指紋技術(shù)的公知的解決方案中,系統(tǒng)在指紋處理期間跨數(shù)據(jù)流滑過特定大?。ɡ?如,48 字節(jié))的窗口。在 Muthitacharoen 等的標(biāo)題為 "A Low-Bandwidth Network File System"(LBFS)的論文中描述該技術(shù)的實(shí)施方式,并且結(jié)果實(shí)現(xiàn)可變大小的抗偏移塊。
[0007] 當(dāng)前供應(yīng)基于流的重復(fù)數(shù)據(jù)刪除產(chǎn)品和服務(wù)的廠家通過配對設(shè)備解決詞典發(fā)現(xiàn) 的問題(知道什么信息處于對等方的詞典中)。因此,例如,電器/盒子廠家依賴于在每個(gè) 末端上的一對設(shè)備或處理以彼此通信以維護(hù)讓每個(gè)端知道什么引用存在于配對的對等方 中的表。但是,這類解決方案僅僅在處理表示"路徑中"對的各個(gè)盒子與單元時(shí)工作。
[0008] 但是,路徑中配對的解決方案在諸如CDN之類的覆蓋網(wǎng)絡(luò)的背景中是不實(shí)際的, 其中節(jié)點(diǎn)的分布更接近地類似樹。因此,例如,在代表性的實(shí)施方式中,并且參考特定源服 務(wù)器(或,一般地說,"租戶"位于"根"處),覆蓋網(wǎng)絡(luò)可以具有更接近于根的父層服務(wù)器, 和更接近于葉節(jié)點(diǎn)的客戶端邊緣服務(wù)器。換句話說,替換需要知道一個(gè)或多個(gè)對等方盒子 (諸如在公知的盒子廠家解決方案中)的小集合的盒子,父層服務(wù)器可以需要與數(shù)十、數(shù)百 乃至數(shù)千的邊緣區(qū)域聯(lián)系,每個(gè)都可能包含許多服務(wù)器。在這個(gè)背景下,每個(gè)機(jī)器表不能衡 量。
[0009] 因此,仍然需要提供在覆蓋網(wǎng)絡(luò)背景中用于重復(fù)數(shù)據(jù)刪除的增強(qiáng)的技術(shù)。
【發(fā)明內(nèi)容】
[0010] 互聯(lián)網(wǎng)基礎(chǔ)設(shè)施遞送平臺(例如,由服務(wù)提供者操作的)提供覆蓋網(wǎng)絡(luò)("多租 戶共享基礎(chǔ)設(shè)施")。特定租戶具有關(guān)聯(lián)的源。根據(jù)此公開,接近租戶源的一個(gè)或多個(gè)覆蓋 網(wǎng)絡(luò)服務(wù)器安裝有提供重復(fù)數(shù)據(jù)刪除的重復(fù)數(shù)據(jù)刪除引擎。這些服務(wù)器是用于該源的重復(fù) 數(shù)據(jù)刪除高速緩存父代,因?yàn)樗鼈兘邮諄碜杂诟采w網(wǎng)絡(luò)高速緩存子代,通常位于靠近終端 用戶接入網(wǎng)絡(luò)的邊緣服務(wù)器,的請求。邊緣服務(wù)器也包括重復(fù)數(shù)據(jù)刪除引擎。當(dāng)對源內(nèi)容 的請求從覆蓋網(wǎng)絡(luò)邊緣服務(wù)器到達(dá)時(shí),請求被經(jīng)由用于源的重復(fù)數(shù)據(jù)刪除高速緩存父代路 由。高速緩存父代檢索內(nèi)容(或許從源)并且然后執(zhí)行傳統(tǒng)的重復(fù)數(shù)據(jù)刪除操作。具體地, 高速緩存父代首先針對源查找它的"庫"(或"詞典")并且看它是否可以通過用已被分派 給它已經(jīng)看見的字節(jié)組塊的名稱替換那些組塊來進(jìn)行壓縮對象。此操作以公知的方式"壓 縮"對象。高速緩存父代然后將壓縮的對象發(fā)送到覆蓋網(wǎng)絡(luò)邊緣服務(wù)器,其中它由邊緣服務(wù) 器重復(fù)數(shù)據(jù)刪除引擎處理。但是,在此遞送環(huán)外,重復(fù)數(shù)據(jù)刪除高速緩存父代也處理對象以 存儲新看見的字節(jié)組塊,并且把新的組塊輸入到它維護(hù)的庫(或"詞典")中。當(dāng)在覆蓋網(wǎng) 絡(luò)邊緣服務(wù)器處接收到壓縮的流時(shí),邊緣服務(wù)器通過尋找由名稱(或"指紋")替換的組塊 來處理壓縮流,并且然后利用指紋作為到它自己詞典中的關(guān)鍵字來檢索原始的塊。
[0011] 如果邊緣服務(wù)器在高速緩存中不具有它需要的組塊,則它遵循傳統(tǒng)的CDN方法以 檢索它們(例如,經(jīng)由高速緩存分層結(jié)構(gòu)等),必要時(shí)最終從重復(fù)數(shù)據(jù)刪除高速緩存父代 檢索它們。因此,如果發(fā)送和接收對等方對之間的詞典不同步,則相關(guān)的部分按需被重新 同步。該方法不需要(或需要保證)在一對特定發(fā)送和接收對等方處保持的庫是相同的 (即,同步的)。相反,該技術(shù)使得對等方實(shí)際上能夠與實(shí)際事務(wù)相關(guān)聯(lián)地在空閑時(shí)"回填 (backfill) "它的詞典。此方法是高度可升級的,并且它對于任何類型的內(nèi)容,并且通過任何 類型網(wǎng)絡(luò)工作。
[0012] 上文已經(jīng)概述本主題的一些更多相關(guān)特征。這些特征應(yīng)當(dāng)被解釋為僅僅說明性 的。可以通過以不同的方式應(yīng)用公開的主題或通過修改將描述的主題獲得許多其它有利的 結(jié)果。
【專利附圖】
【附圖說明】
[0013] 為了更完全地理解本主題和它的優(yōu)點(diǎn),現(xiàn)在結(jié)合附圖參考以下描述,其中:
[0014] 圖1是示出了配置為內(nèi)容遞送網(wǎng)絡(luò)(CDN)的公知的分布式計(jì)算機(jī)系統(tǒng)的方框圖;
[0015] 圖2是代表性的⑶N邊緣機(jī)器配置;
[0016] 圖3是在數(shù)據(jù)差異化處理中發(fā)送對等方詞典;
[0017] 圖4是在數(shù)據(jù)差異化處理中接收對等方詞典;
[0018] 圖5是用于實(shí)施此公開的異步數(shù)據(jù)詞典方法的示范性廣域網(wǎng)(WAN)結(jié)構(gòu);以及
[0019] 圖6是在覆蓋網(wǎng)絡(luò)和客戶私有網(wǎng)絡(luò)之內(nèi)實(shí)施的具體實(shí)施例。
【具體實(shí)施方式】
[0020] 圖1示出了由這里的技術(shù)擴(kuò)展(如下面描述的)的公知的分布式計(jì)算機(jī)系統(tǒng)。
[0021] 在公知的系統(tǒng)中,諸如圖1所示,分布式計(jì)算機(jī)系統(tǒng)100被配置為CDN并且假定具 有繞著互聯(lián)網(wǎng)分布的一組機(jī)器l〇2a-n。通常,大部分機(jī)器是接近互聯(lián)網(wǎng)的邊緣設(shè)置的服務(wù) 器,即,在終端用戶接入網(wǎng)絡(luò)處或與其相鄰。網(wǎng)絡(luò)操作命令中心(N0CC)104管理系統(tǒng)中各個(gè) 機(jī)器的操作。諸如網(wǎng)站106之類的第三方站點(diǎn)將內(nèi)容(例如,HTML、嵌入的頁對象、流媒體、 軟件下載、等等)的遞送卸載到分布式計(jì)算機(jī)系統(tǒng)1〇〇,并且具體地到"邊緣"服務(wù)器。通常, 內(nèi)容提供者通過將給定內(nèi)容提供者域或子域別名(例如,由DNS CNAME)為由服務(wù)提供者的 權(quán)威性域名服務(wù)管理的域來卸載他們的內(nèi)容遞送。期望內(nèi)容的終端用戶定向到分布式計(jì)算 機(jī)系統(tǒng)以更安全并且高效地獲得該內(nèi)容。盡管未詳細(xì)地示出,但是分布式計(jì)算機(jī)系統(tǒng)也可 以包括其它基礎(chǔ)設(shè)施,諸如分布式數(shù)據(jù)收集系統(tǒng)108,其收集來自于邊緣服務(wù)器的使用和其 它數(shù)據(jù),跨區(qū)域或區(qū)域集合聚集數(shù)據(jù),并且將數(shù)據(jù)傳遞到其它后端系統(tǒng)11〇、112、114和116 以便于監(jiān)控、記錄、提醒、計(jì)費(fèi)、管理和其它操作和管理職能。分布式網(wǎng)絡(luò)代理118監(jiān)控網(wǎng)絡(luò) 以及服務(wù)器負(fù)載并提供網(wǎng)絡(luò)、業(yè)務(wù)和負(fù)載數(shù)據(jù)到DNS查詢處理機(jī)制115,其對于由⑶N管理 的內(nèi)容域是權(quán)威性的。分布式數(shù)據(jù)傳輸機(jī)制120可以用來將控制信息(例如,管理內(nèi)容、便 于負(fù)載均衡的元數(shù)據(jù),等等)分布到邊緣服務(wù)器。
[0022] 如圖2所示,給定機(jī)器200包括運(yùn)行支持一個(gè)或多個(gè)應(yīng)用206a_n的操作系統(tǒng)內(nèi)核 (諸如Linux或變體)204的商品硬件(例如,Intel奔騰處理器)202。為了便于內(nèi)容遞送 服務(wù),例如,給定機(jī)器通常運(yùn)行應(yīng)用的集合,諸如HTTP (網(wǎng)絡(luò))代理207、名稱服務(wù)器208、本 地監(jiān)控處理210、分布式數(shù)據(jù)收集處理212,等等。對于流媒體,機(jī)器通常包括一個(gè)或多個(gè)媒 體服務(wù)器,諸如窗口媒體服務(wù)器(WMS)或Flash服務(wù)器,根據(jù)支持的媒體格式。
[0023] ⑶N邊緣服務(wù)器被配置為提供一個(gè)或多個(gè)擴(kuò)展的內(nèi)容遞送特征,優(yōu)選在特定于域、 特定于用戶的基礎(chǔ)上,優(yōu)選利用使用配置系統(tǒng)分布給邊緣服務(wù)器的配置文件。給定配置文 件優(yōu)選是基于XML的并且包括便于一個(gè)或多個(gè)高級內(nèi)容處理特征的一組內(nèi)容處理規(guī)則和 指令。配置文件可以經(jīng)由數(shù)據(jù)傳送機(jī)制被遞送到⑶N邊緣服務(wù)器。美國專利No. 7, 111,057 示出了用于遞送并管理邊緣服務(wù)器內(nèi)容控制信息的有用基礎(chǔ)設(shè)施,并且這和其它邊緣服務(wù) 器控制信息可以由CDN服務(wù)提供者本身、或操作源服務(wù)器的內(nèi)容提供者用戶提供(經(jīng)由外 聯(lián)網(wǎng)等)。
[0024] 因?yàn)镃DN基礎(chǔ)設(shè)施由多個(gè)第三方共享,所以在這里它有時(shí)被稱為多租戶共享基礎(chǔ) 設(shè)施。⑶N處理可以位于可在互聯(lián)網(wǎng)上公開路由的節(jié)點(diǎn)處、位于移動網(wǎng)絡(luò)中的節(jié)點(diǎn)內(nèi)或與其 相鄰、在基于企業(yè)的私有網(wǎng)絡(luò)中或與其相鄰、或在任何它們的組合中。
[0025] 元數(shù)據(jù)可配置的覆蓋網(wǎng)網(wǎng)絡(luò)代理(諸如圖2中的代理207)這里有時(shí)被稱為全局 主機(jī)或GHost處理。
[0026] ⑶N可以包括存儲子系統(tǒng),諸如在美國專利No. 7, 472, 178中描述的,其公開被通 過引用合并于此。
[0027] CDN可以操作服務(wù)器高速緩存分層結(jié)構(gòu)以提供用戶內(nèi)容的中間高速緩存;在美國 專利No. 7, 376, 716中描述了一個(gè)這樣的高速緩存分層結(jié)構(gòu)子系統(tǒng),其的公開被通過引用 合并于此。
[0028] CDN可以在客戶端瀏覽器、邊緣服務(wù)器和用戶源服務(wù)器當(dāng)中以在美國公開 No. 20040093419中描述的方式提供安全的內(nèi)容遞送。在其中描述的安全的內(nèi)容遞送一方面 在客戶端與邊緣服務(wù)器處理之間、另一方面在邊緣服務(wù)器處理與源服務(wù)器處理之間實(shí)施基 于SSL的鏈接。這使得SSL保護(hù)的網(wǎng)頁和/或它的組件被經(jīng)由邊緣服務(wù)器遞送。
[0029] 作為覆蓋,⑶N資源可以用來便于企業(yè)數(shù)據(jù)中心(其可以被私有地管理)與第三 方軟件作為服務(wù)(SaaS)提供者之間的廣域網(wǎng)(WAN)加速服務(wù)。
[0030] 在典型操作中,內(nèi)容提供者識別內(nèi)容提供者域或它期望由CDN服務(wù)的子域。CDN服 務(wù)提供者關(guān)聯(lián)(例如,經(jīng)由規(guī)范名稱、或CNAME)內(nèi)容提供者域與邊緣網(wǎng)絡(luò)(CDN)主機(jī)名,并 且CDN提供者然后向內(nèi)容提供者提供該邊緣網(wǎng)絡(luò)主機(jī)名。當(dāng)向內(nèi)容提供者域或子域的DNS 查詢在內(nèi)容提供者的域名服務(wù)器處被接收時(shí),那些服務(wù)器通過返回邊緣網(wǎng)絡(luò)主機(jī)名進(jìn)行響 應(yīng)。邊緣網(wǎng)絡(luò)主機(jī)名指向⑶N,并且邊緣網(wǎng)絡(luò)主機(jī)名然后經(jīng)由⑶N名稱服務(wù)被解析。所以, CDN名稱服務(wù)返回一個(gè)或多個(gè)IP地址。請求客戶端瀏覽器然后對與IP地址相關(guān)聯(lián)的邊緣 服務(wù)器做出內(nèi)容請求(例如,經(jīng)由HTTP或HTTPS)。請求包括主機(jī)報(bào)頭,其包括源內(nèi)容提供 者域或子域。在接收到具有主機(jī)報(bào)頭的請求時(shí),邊緣服務(wù)器檢查它的配置文件以確定請求 的內(nèi)容域或子域是否實(shí)際上由CDN處理。如果是的話,邊緣服務(wù)器將它的內(nèi)容處理規(guī)則和 指令應(yīng)用于在配置中指定的域或子域。這些內(nèi)容處理規(guī)則和指令可以位于基于XML的"元 數(shù)據(jù)"配置文件內(nèi)。
[0031] 如同附加背景,在美國專利No. 6, 820, 133和7, 660, 296中描述的技術(shù)可以用來便 于在諸如圖1所示的覆蓋網(wǎng)絡(luò)中邊緣與轉(zhuǎn)發(fā)代理之間的數(shù)據(jù)包遞送。
[0032] 利用異步數(shù)據(jù)詞典的某于流的重復(fù)數(shù)據(jù)刪除
[0033] 利用以上作為背景,現(xiàn)在描述本公開的方法。與通過配對解決詞典發(fā)現(xiàn)(知道什 么信息處于對等方的詞典中)的問題的公知的基于流的重復(fù)數(shù)據(jù)刪除產(chǎn)品和服務(wù)相反,這 里的技術(shù)根據(jù)不同的模式操作。
[0034] 具體地,并且對于某些大小的對象,對等方節(jié)點(diǎn)被"假設(shè)"具有與指紋相關(guān)聯(lián)的塊, 不管它實(shí)際上是不是。在此方法中,技術(shù)不需要(或者需要保證)在(任何一對特定的發(fā) 送和接收對等方的)任一末端保持的庫是相同的。相反,在此方法中,創(chuàng)建庫,并且?guī)毂辉?許是可訪問的(例如,通過網(wǎng)絡(luò))。庫可以位于任何地方。如將看到的,此方法使得標(biāo)準(zhǔn)的 ⑶N功能和特征被利用,因此為終端用戶(包括在固定線路和非固定線路網(wǎng)絡(luò)上的那些,并 且不管應(yīng)用類型)提供重復(fù)數(shù)據(jù)刪除以及由覆蓋網(wǎng)絡(luò)技術(shù)提供的那些益處。在此可替換方 法中,如果對等方不具有與給定指紋相關(guān)聯(lián)的塊,則對等方向發(fā)送代理做出請求以請求它。 在一個(gè)實(shí)施例中,每個(gè)塊具有隨其關(guān)聯(lián)的特定URI,諸如磁類型的URI。磁URI是指可用于 經(jīng)由縮減形式的它的內(nèi)容的描述(例如,內(nèi)容的加密散列值)下載的資源。利用磁URI的 替換方式是讓解碼(接收或子代)對等方向編碼(發(fā)送或父代)對等方(或?qū)Φ确絽^(qū)域) 做出請求并且請求原始數(shù)據(jù)用于然后不可用于解碼對等方進(jìn)行解碼的任何組塊-利用某 些商定的協(xié)議。優(yōu)選地,在解碼器端上的數(shù)據(jù)處理是非??斓?,并且因此缺失的組塊被檢測 并且請求在某一小的處理開銷時(shí)間之內(nèi)被發(fā)送回到編碼器。
[0035] 優(yōu)選地,特別注意對于缺失的塊避免回到發(fā)送對等方的額外往返。因此,在一個(gè)實(shí) 施例中,例如,非常小并且在一個(gè)初始擁塞窗口(CWND)中發(fā)送的文件不被重復(fù)數(shù)據(jù)刪除, 因?yàn)楫?dāng)塊存在于接收對等方處時(shí)塊高速緩存未中的風(fēng)險(xiǎn)大于支出。這是因?yàn)榈骄W(wǎng)絡(luò)I/O卡 中的串行化延遲顯著地小于可能出現(xiàn)在高速緩存未中上的延遲。因此,優(yōu)選地只有那些其 中利用重復(fù)數(shù)據(jù)刪除存在任何優(yōu)點(diǎn)的統(tǒng)計(jì)概率的響應(yīng)(甚至面臨由于缺失塊引起的可能 的額外延遲)應(yīng)當(dāng)被考慮。
[0036] 因此,根據(jù)此公開,重復(fù)數(shù)據(jù)刪除系統(tǒng)使用按需高速緩存同步協(xié)議,其可以包含對 等方明確地彼此通信,并且包含對等方做出關(guān)于另一個(gè)對等方可能具有什么的某些假設(shè), 或相反。根據(jù)此協(xié)議,存在如下假設(shè):如果本地編碼對等方已經(jīng)具有給定數(shù)據(jù)塊,則解碼對 等方具有它,和如下假設(shè):如果本地編碼對等方不具有給定數(shù)據(jù)塊則解碼對等方實(shí)體沒有。 此外,系統(tǒng)解決了在對等方之間的高速緩存中的失配。如果這出現(xiàn),則失配被解決。為此, 每當(dāng)某些數(shù)據(jù)(已被在流中看見的對象、組塊、組塊的集合等等)不可用于解碼時(shí),解碼對 等方對編碼對等方(或?qū)Φ确絽^(qū)域)做出請求并且請求需要的原始數(shù)據(jù)。如上所述,在解 碼器端上的數(shù)據(jù)處理是非常快的,并且因此缺失的數(shù)據(jù)被檢測到并且請求在僅僅小的處理 開銷時(shí)間之內(nèi)被發(fā)送回編碼器。此方法保證,不管什么高速緩存同步協(xié)議正在被利用,存在 回退機(jī)制以保證事務(wù)可以完成。因此缺失數(shù)據(jù)支持處理完整的高速緩存未中的可能性,并 且它可以結(jié)合上面描述的高速緩存同步方法使用。
[0037] 圖5所示用于實(shí)施此類型的重復(fù)數(shù)據(jù)刪除方法的代表性結(jié)構(gòu)。為簡單起見,客戶 端500被示出與邊緣GHost處理502交互,其隨后與接近租戶源506設(shè)置的轉(zhuǎn)發(fā)GHost處 理504進(jìn)行通信(通常通過WAN)。每個(gè)GHost處理502和504具有與其關(guān)聯(lián)的重復(fù)數(shù)據(jù)刪 除引擎508,用于詞典的相關(guān)數(shù)據(jù)存儲器,和其它有關(guān)的處理??偲饋碚f,這些元件有時(shí)被 稱為重復(fù)數(shù)據(jù)刪除模塊。高速緩存父代也可以實(shí)施其它技術(shù),諸如前端優(yōu)化(FEO)。GHost 通過某些接口與重復(fù)數(shù)據(jù)刪除模塊通信。在可替換實(shí)施例中,重復(fù)刪除功能被自然地實(shí)施 在GHost中。當(dāng)對源內(nèi)容的請求從處理502到達(dá)時(shí),請求被經(jīng)由用于源的重復(fù)數(shù)據(jù)刪除高 速緩存父代504路由。高速緩存父代504檢索內(nèi)容(或許從源)并且然后利用它的重復(fù)數(shù) 據(jù)刪除引擎508執(zhí)行傳統(tǒng)的重復(fù)數(shù)據(jù)刪除操作。具體地,高速緩存父代首先查找它的庫并 且看它是否可以通過用已被分派給它已經(jīng)看到的字節(jié)組塊的名稱替換那些組塊來壓縮對 象。優(yōu)選地,庫被在多個(gè)CDN用戶共享;在可替換實(shí)施例中,庫特定于特定源。高速緩存父 代504然后將壓縮的對象發(fā)送到邊緣服務(wù)器處理502,其中它由邊緣服務(wù)器重復(fù)數(shù)據(jù)刪除 引擎508處理。但是,在此遞送環(huán)外,重復(fù)數(shù)據(jù)刪除高速緩存父代504也處理對象以存儲新 看見的字節(jié)組塊,將新的塊輸入到它的庫中。當(dāng)在邊緣服務(wù)器處理502處接收到壓縮的流 時(shí),邊緣服務(wù)器通過尋找由名稱(或"指紋")替換的組塊來處理壓縮的對象,并且然后利用 名稱檢索原始的組塊。
[0038] 圖6示出更具體的實(shí)施例。在此情況中,終端用戶600已經(jīng)經(jīng)由覆蓋網(wǎng)絡(luò)DNS以 常見的方式與邊緣服務(wù)器機(jī)器602相關(guān)聯(lián)。"終端用戶"是運(yùn)行在客戶端機(jī)器(例如,桌上 型計(jì)算機(jī)、膝上型、移動設(shè)備、平板計(jì)算機(jī)、等)上的網(wǎng)絡(luò)瀏覽器用戶代理或運(yùn)行在此類設(shè) 備上的移動應(yīng)用(app)。"終端用戶"經(jīng)由HTTP或HTTPS與邊緣服務(wù)器機(jī)器通信,并且此類 通信可以穿越其它網(wǎng)絡(luò)、系統(tǒng)、和設(shè)備。邊緣服務(wù)器機(jī)器運(yùn)行由覆蓋網(wǎng)絡(luò)提供商管理的元數(shù) 據(jù)可配置的網(wǎng)絡(luò)代理處理(GHost)604,和關(guān)聯(lián)的基于流的重復(fù)數(shù)據(jù)刪除處理606。如將描 述的,重復(fù)數(shù)據(jù)刪除處理理論上對來自于所有CDN用戶的所有文件中的所有塊執(zhí)行數(shù)據(jù)壓 縮。在此方法中,來自于不同URI的一個(gè)文件的片斷可以用來執(zhí)行重復(fù)數(shù)據(jù)刪除,以及同時(shí) 來自于多個(gè)文件的片斷。邊緣服務(wù)器機(jī)器602可以是對一個(gè)或多個(gè)"父代"節(jié)點(diǎn)的"子代", 諸如運(yùn)行在另一個(gè)覆蓋服務(wù)器設(shè)備(未示出)上的父代GHost處理608。在此示例中,GHost 處理608是"穿越"并且不提供差異化功能;它可以被省略。
[0039] 如還有在圖6中看到的,來自于客戶端方的請求被定向到"源"服務(wù)器612。源(或 目標(biāo))服務(wù)器612是通常在覆蓋網(wǎng)絡(luò)用戶基礎(chǔ)設(shè)施(或也許一些其它托管的環(huán)境,諸如第 三方基于云的基礎(chǔ)設(shè)施)中執(zhí)行的服務(wù)器。通常,源服務(wù)器612提供到網(wǎng)站的基于網(wǎng)絡(luò)的 前端或期望利用覆蓋網(wǎng)絡(luò)基礎(chǔ)設(shè)施被加速的可網(wǎng)絡(luò)訪問的用戶應(yīng)用。在此示例情況中,不 意指限制,源服務(wù)器612在用戶自己的私有網(wǎng)絡(luò)614中運(yùn)行。用戶私有網(wǎng)絡(luò)614包括物理 機(jī)器615。該機(jī)器(或在用戶網(wǎng)絡(luò)中的一些其它機(jī)器)可以支持另一個(gè)網(wǎng)絡(luò)代理處理618, 和關(guān)聯(lián)的重復(fù)數(shù)據(jù)刪除處理620。網(wǎng)絡(luò)代理618不需要是元數(shù)據(jù)可配置的,它也不需要由覆 蓋網(wǎng)絡(luò)主動地管理。以上示出的結(jié)構(gòu)不意指限制,而是僅僅作為示例提供。
[0040] 以下是端到端流程的描述。在此情況中,如上所述,"GHost"是指運(yùn)行在覆蓋網(wǎng)絡(luò) 中邊緣設(shè)備上的元數(shù)據(jù)可配置的網(wǎng)絡(luò)代理處理,"ATS"是指運(yùn)行在用戶網(wǎng)絡(luò)或基礎(chǔ)設(shè)施但 是不同于覆蓋網(wǎng)絡(luò)內(nèi)的設(shè)備上的覆蓋網(wǎng)絡(luò)網(wǎng)絡(luò)代理處理,并且重復(fù)數(shù)據(jù)刪除處理可以對來 自于特定用戶的網(wǎng)絡(luò)(在此示例實(shí)施例)本地的所有文件的所有塊執(zhí)行重復(fù)數(shù)據(jù)刪除。如 上所述,并且根據(jù)采用的網(wǎng)絡(luò)結(jié)構(gòu),庫也可以被共享以使得關(guān)聯(lián)的重復(fù)數(shù)據(jù)刪除處理可以 對來自于所有(或某些數(shù)目的)覆蓋網(wǎng)絡(luò)用戶的所有塊執(zhí)行重復(fù)數(shù)據(jù)刪除。在示出的實(shí)施 例中,GHost (或ATS)處理視情況可以經(jīng)由接口(例如本地主機(jī))與關(guān)聯(lián)的重復(fù)數(shù)據(jù)刪除 處理進(jìn)行通信。
[0041] 在如圖6所示的代表性(但是非限制)實(shí)施方式中,覆蓋網(wǎng)絡(luò)提供者提供在用戶 的基礎(chǔ)設(shè)施(私有網(wǎng)絡(luò))之內(nèi)運(yùn)行的軟件,例如,作為虛擬機(jī)(VM)或"邊緣設(shè)備"。邊緣設(shè) 備610優(yōu)選地位于DMZ中或者在企業(yè)防火墻后面并且它可以運(yùn)行在由覆蓋網(wǎng)絡(luò)用戶支持并 管理的超控制器(例如,VMware ESXi (v. 4. 0+)616上。在一個(gè)優(yōu)選實(shí)施例中,邊緣設(shè)備被 分布為經(jīng)由覆蓋網(wǎng)絡(luò)用戶門戶(外聯(lián)網(wǎng))下載的64-比特虛擬設(shè)備。每個(gè)邊緣設(shè)備需要至 少一個(gè)可公開路由的IP地址并且可以被覆蓋網(wǎng)絡(luò)優(yōu)選地通過安全連接配置。
[0042] 因此,根據(jù)以上方法,與租戶源相關(guān)聯(lián)的至少一個(gè)服務(wù)器被裝備(或關(guān)聯(lián))有重復(fù) 數(shù)據(jù)刪除引擎。當(dāng)對于內(nèi)容的請求從邊緣服務(wù)器中到來時(shí),請求被經(jīng)由用于源的重復(fù)數(shù)據(jù) 刪除高速緩存父代路由。高速緩存父代檢索內(nèi)容(或許從源)并且然后,根據(jù)內(nèi)容大小和 任何適用的配置參數(shù)執(zhí)行重復(fù)數(shù)據(jù)刪除。如果重復(fù)數(shù)據(jù)刪除出現(xiàn),則父代高速緩存檢查它 的詞典;如果它可以壓縮對象(通過用已被分派給它已經(jīng)看到的字節(jié)組塊的名稱替換那些 組塊),則它這樣做。高速緩存父代然后將壓縮的對象發(fā)送到邊緣服務(wù)器。單獨(dú)地,重復(fù)數(shù) 據(jù)刪除高速緩存父代處理對象以存儲新看到的字節(jié)組塊,將它們輸入到它維護(hù)的庫中。如 上所述,當(dāng)在邊緣服務(wù)器處接收到壓縮的對象時(shí),邊緣服務(wù)器通過尋找由名稱替換的組塊 并且然后利用名稱檢索原始組塊來處理壓縮對象,如同已經(jīng)描述的。
[0043] 根據(jù)此公開,歸納為流經(jīng)過/穿越父節(jié)點(diǎn),父節(jié)點(diǎn)把流打斷成為組塊。對于每個(gè)組 塊,父代然后做出實(shí)際上是"猜測",關(guān)于流正在被發(fā)送到的子節(jié)點(diǎn)是否具有該組塊。所述 "猜測"可以以任何方式被告知,例如,它可以是統(tǒng)計(jì)的、概率性的、基于某些啟發(fā)的、基于運(yùn) 行算法得出的、基于子代的相對位置的、基于負(fù)載、延遲、數(shù)據(jù)包損失、或其它數(shù)據(jù)的、或以 一些其它的方式確定的。如果父代的信念是子代不具有組塊,則它發(fā)送實(shí)際數(shù)據(jù)。但是,如 果父代的信念是子代有可能具有組塊,則父代僅僅發(fā)送名稱/指紋。因?yàn)樽哟@得編碼的 流并且開始解碼流,所以對于每個(gè)組塊引用/名稱,子代在它自己的本地庫/詞典里查找名 稱。如果組塊在那里,則子代重新擴(kuò)展它。但是,如果組塊不存在,則子代對組塊執(zhí)行按需 請求(例如,到編碼對等方/區(qū)域),請求實(shí)際數(shù)據(jù)。
[0044] 利用此方法,利用⑶N的所有公知的益處(例如,負(fù)載均衡、高速緩存、WAN加速, 等等)。重要地,邊緣服務(wù)器不需要維護(hù)用于源的對稱庫。當(dāng)然,邊緣服務(wù)器可能在高速緩 存中具有組塊,但是如果它不具有,則它遵循常見的CDN-類似的程序以檢索它們(例如,經(jīng) 由高速緩存分層結(jié)構(gòu)等),必要時(shí)最終從重復(fù)數(shù)據(jù)刪除高速緩存父代檢索它們。
[0045] GHost處理具有確定請求是否將要被重復(fù)數(shù)據(jù)刪除處理處理的能力。用于做出此 確定的一個(gè)技術(shù)使用特定于租戶的元數(shù)據(jù)和在u. S.專利No. 7, 240, 100中描述的技術(shù)。
[0046] 重復(fù)數(shù)據(jù)刪除模塊可以作為合作處理或參考GHost的處理中的庫運(yùn)行。GHost和 模塊之間的通信機(jī)制可以在共享的存儲器、本地主機(jī)、TCP、UDS等上。在可替換實(shí)施例中,客 戶端重復(fù)數(shù)據(jù)刪除模塊本身可以被直接放置在客戶端設(shè)備上,諸如終端用戶客戶端(EUC) 網(wǎng)絡(luò)機(jī)器、移動設(shè)備手持機(jī)等。
[0047] 優(yōu)選地,重復(fù)數(shù)據(jù)刪除是否開啟可以由元數(shù)據(jù)配置控制,優(yōu)選地基于每個(gè)租戶。 [0048] 如上所述,優(yōu)選地,對于太小的文件,重復(fù)數(shù)據(jù)刪除機(jī)制不被調(diào)用。小對象排斥支 持因此提供智能地避免執(zhí)行冒險(xiǎn)的重復(fù)數(shù)據(jù)刪除操作的方式,否則其可能引起高速緩存未 中上的額外RTT。在一個(gè)方法中,這可以通過讓GHost對于POST繞開重復(fù)數(shù)據(jù)刪除操作以 及包括在某個(gè)閾值下的"內(nèi)容長度"報(bào)頭的響應(yīng)來實(shí)現(xiàn)。但是,大部分動態(tài)內(nèi)容使用組塊的 轉(zhuǎn)移編碼,其意味著對象的大小不是預(yù)先已知的。因此,在不存在基于其它標(biāo)準(zhǔn)避免重復(fù)數(shù) 據(jù)刪除的某些確定時(shí),GHost應(yīng)當(dāng)經(jīng)由描述的機(jī)制傳遞請求。
[0049] 此外,優(yōu)選地僅僅在存在另一方可以具有數(shù)據(jù)的很好的保證時(shí)發(fā)送指紋。因此,優(yōu) 選地僅僅在相同的流中看到塊時(shí)發(fā)送指紋。
[0050] 某些文件格式(像Huffman編碼)被嚴(yán)重壓縮以及混亂。商業(yè)的重復(fù)數(shù)據(jù)刪除系 統(tǒng)通常在他們的重復(fù)數(shù)據(jù)刪除引擎之內(nèi)提供在執(zhí)行指紋和成塊之前將那些文件類型解碼 成為更重復(fù)數(shù)據(jù)刪除友好的格式的系統(tǒng)。這里也可以實(shí)施此類方法。具體地,每個(gè)端(不 管在GHost或在重復(fù)數(shù)據(jù)刪除模塊本身中)可以每個(gè)文件格式實(shí)施解壓縮過濾器以最佳確 保高速緩存的塊命中。
[0051] 這里描述的GHost/重復(fù)數(shù)據(jù)刪除模塊解決方案也可以與協(xié)議終止器互操作。協(xié) 議終止器是終止協(xié)議(諸如CIFS或MAPI)并且將它轉(zhuǎn)換成例如http或http (s)的軟件片 斷。
[0052] 重復(fù)數(shù)據(jù)刪除模塊可以與其它⑶N機(jī)制,諸如FE0技術(shù)互操作。
[0053] 如圖6所示,如這里描述的1重復(fù)數(shù)據(jù)刪除模塊可以位于企業(yè)網(wǎng)內(nèi),諸如在與位于 企業(yè)DMZ中的覆蓋網(wǎng)絡(luò)相關(guān)聯(lián)的機(jī)器中。
[0054] 還有圖6所示,如這里描述的重復(fù)數(shù)據(jù)刪除模塊可以位于與使用覆蓋網(wǎng)絡(luò)或與其 互操作的企業(yè)相關(guān)聯(lián)的虛擬機(jī)(VM)內(nèi)。但是,此結(jié)構(gòu)不是限制,因?yàn)檗D(zhuǎn)發(fā)代理不需要被放 置在企業(yè)(或其它用戶私有網(wǎng)絡(luò))之內(nèi)。
[0055] 這里描述的重復(fù)數(shù)據(jù)刪除技術(shù)可以與一個(gè)或多個(gè)其他CDN服務(wù)提供相關(guān)聯(lián)地使 用,以便于CDN節(jié)點(diǎn)到節(jié)點(diǎn)的通信(網(wǎng)絡(luò)內(nèi)重復(fù)數(shù)據(jù)刪除),等。
[0056] GHost和重復(fù)數(shù)據(jù)刪除模塊被作為專門化機(jī)器實(shí)施在一個(gè)或多個(gè)處理器中執(zhí)行的 軟件中。
[0057] 對可以由描述的技術(shù)處理的數(shù)據(jù)的類型沒有限制。實(shí)際上,對于某些數(shù)據(jù)類型 (諸如PII),諸如這里描述的重復(fù)數(shù)據(jù)刪除與單獨(dú)高速緩存相比具有顯著的優(yōu)點(diǎn)。
[0058] 重復(fù)數(shù)據(jù)刪除功能可以被實(shí)施在守護(hù)程序處理中,即作為由硬件處理器運(yùn)行的指 令集合。守護(hù)程序可以用作上面描述的基于HTTP的協(xié)議中的客戶端和服務(wù)器。優(yōu)選地,它 被分流到在覆蓋網(wǎng)絡(luò)內(nèi)的通信的高延遲分支的終端處的服務(wù)器(例如,GHost)中或服務(wù)器 上。如上所述,優(yōu)選地元數(shù)據(jù)配置數(shù)據(jù)確定特定請求(在連接的發(fā)送端上)是否應(yīng)當(dāng)被認(rèn) 為應(yīng)當(dāng)利用協(xié)議被加速的請求。
[0059] -般,根據(jù)這里描述的方法使覆蓋服務(wù)器能夠消除它在網(wǎng)絡(luò)上的對等方之間發(fā)送 的冗余數(shù)據(jù),代之以發(fā)送小得多的指紋。這徹底地減小了用于具有大量復(fù)制數(shù)據(jù)的事務(wù)的 線上數(shù)據(jù)的總大小,因此減小用于遞送到終端用戶的時(shí)間量。此外,減小的數(shù)據(jù)導(dǎo)致在網(wǎng)絡(luò) 上降低的操作成本,因?yàn)閭鬏數(shù)男畔⒘亢蛶捫枰獪p少。
[0060] 以上描述的方法是高度可升級的,并且它為任何類型的內(nèi)容,并且通過任何類型 的網(wǎng)絡(luò)工作??蛻舳耸莻鹘y(tǒng)的桌上型計(jì)算機(jī)、膝上型或運(yùn)行網(wǎng)絡(luò)瀏覽器或其它呈現(xiàn)引擎 (諸如移動應(yīng)用)的其它互聯(lián)網(wǎng)可訪問的機(jī)器??蛻舳艘部梢允且苿釉O(shè)備。如這里使用 的,移動設(shè)備是任何無線的客戶端設(shè)備,例如,蜂窩電話機(jī)、傳呼機(jī)、個(gè)人數(shù)字助理(PDA,例 如,具有GPRS NIC)、具有智能電話機(jī)客戶端的便攜式計(jì)算機(jī),等。其中可以實(shí)踐該技術(shù)的 其他移動設(shè)備包括任何使能訪問協(xié)議的設(shè)備(例如,基于i〇S?的設(shè)備、基于Android?的 設(shè)備,等),其能夠以無線方式利用無線協(xié)議發(fā)送和接收數(shù)據(jù)。典型的無線協(xié)議是:WiFi、 GSM/GPRS、CDMA或WiMax。這些協(xié)議實(shí)施在其上建立傳統(tǒng)網(wǎng)絡(luò)棧的IS0/0SI物理和數(shù)據(jù)鏈 路層(層1&2),利用IP、TCP、SSL/TLS和HTTP完成。在代表性的實(shí)施例中,移動設(shè)備是通 過GPRS (通用分組無線電服務(wù))操作的蜂窩電話,其是用于GSM網(wǎng)絡(luò)的數(shù)據(jù)技術(shù)。這里使用 的移動設(shè)備可以是包括作為攜帶用戶特定信息的智能卡的用戶身份模塊(SIM)的3G-(或 下一代)適應(yīng)設(shè)備、移動式設(shè)備(例如,無線電和關(guān)聯(lián)的信號處理設(shè)備)、人機(jī)接口(MMI)、 和到外部設(shè)備(例如,計(jì)算機(jī)、PDA,等等)的一個(gè)或多個(gè)接口。這里公開的技術(shù)不限于供 使用特定訪問協(xié)議的移動設(shè)備使用。移動設(shè)備通常也具有對無線局域網(wǎng)(WLAN)技術(shù),諸如 Wi-Fi的支持。WLAN基于IEEE802. 11標(biāo)準(zhǔn)。
[0061] 一般地說,利用一起便于或提供上面描述的功能的一個(gè)或多個(gè)計(jì)算有關(guān)的實(shí)體 (系統(tǒng)、機(jī)器、處理、程序、庫、功能、等)的集合提供這里描述的技術(shù)。在典型的實(shí)施方式中, 軟件在其上運(yùn)行的代表性的機(jī)器包括商品硬件、操作系統(tǒng)、應(yīng)用運(yùn)行時(shí)環(huán)境、和應(yīng)用或處理 和關(guān)聯(lián)數(shù)據(jù)的集合,其提供給定系統(tǒng)或子系統(tǒng)的功能。如描述的,功能可以在獨(dú)立的機(jī)器 中、或跨分布式的機(jī)器集合實(shí)施。功能可以被提供為服務(wù),例如,作為SaaS解決方案。
[0062] 雖然以上描述由本發(fā)明的某些實(shí)施例執(zhí)行的操作的特定順序,但是應(yīng)當(dāng)理解這樣 的順序是示范性,因?yàn)榭商鎿Q實(shí)施例可以以不同的順序執(zhí)行操作、組合某些操作、重疊某些 操作,等。說明書中對給定實(shí)施例的引用指示描述的實(shí)施例可以包括特定特征、結(jié)構(gòu)、或特 性,但是每個(gè)實(shí)施例可以不必然包括所述特定特征、結(jié)構(gòu)、或特性。
[0063] 雖然在方法或處理的上下文中已經(jīng)描述公開的主題,但是本公開也涉及用于執(zhí)行 這里操作的裝置。此裝置可以被專門地構(gòu)成以用于需要的目的,或它可以包括由存儲在計(jì) 算機(jī)中的計(jì)算機(jī)程序選擇性地激活或重新配置的通用計(jì)算機(jī)。此類計(jì)算機(jī)程序可以被存儲 在計(jì)算機(jī)可讀存儲介質(zhì)中,諸如但是不局限于任何類型的盤,包括光盤、CD-ROM、和磁光盤、 只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、磁或光卡、或適合于存儲電子指令的任何類型 的介質(zhì),并且每個(gè)耦接到計(jì)算機(jī)系統(tǒng)總線。
[0064] 雖然已經(jīng)單獨(dú)地描述系統(tǒng)的給定組件,但是普通技術(shù)人員將理解,一些功能可以 被組合或分享在給定指令、程序序列、代碼部分,等等中。
[0065] 優(yōu)選地,功能在應(yīng)用層解決方案中實(shí)施,盡管這不是限制,但是因?yàn)樽R別的功能部 分可以被建立在操作系統(tǒng)等中。
[0066] 功能可以被利用除HTTP之外的其它應(yīng)用層協(xié)議實(shí)施,諸如SSL VPN、或具有類似 工作特性的任何其它協(xié)議。
[0067] 對計(jì)算實(shí)體的類型沒有限制,其可以實(shí)施連接的客戶端側(cè)或服務(wù)器側(cè)。任何計(jì)算 實(shí)體(系統(tǒng)、機(jī)器、設(shè)備、程序、處理、工具、等)可以充當(dāng)客戶端或服務(wù)器。
【權(quán)利要求】
1. 一種重復(fù)數(shù)據(jù)刪除系統(tǒng),包括: 發(fā)送對等方實(shí)體,包括第一詞典和處理器執(zhí)行的程序代碼,該處理器執(zhí)行的程序代碼 操作以通過檢查流過發(fā)送對等方實(shí)體的數(shù)據(jù)并且利用指向第一詞典的引用替換數(shù)據(jù)塊,來 提供基于流的重復(fù)數(shù)據(jù)刪除; 接收對等方實(shí)體,包括第二詞典和處理器執(zhí)行的程序代碼,第二詞典的內(nèi)容不需要與 第一詞典的內(nèi)容同步,該處理器執(zhí)行的程序代碼操作以通過檢查流過接收對等方實(shí)體的數(shù) 據(jù)并且利用指向第二詞典的引用替換所述數(shù)據(jù)的塊,來提供基于流的重復(fù)數(shù)據(jù)刪除;以及 一機(jī)構(gòu),其使得接收對等方實(shí)體識別并且獲得接收對等方實(shí)體需要執(zhí)行重復(fù)數(shù)據(jù)刪除 操作的一個(gè)或多個(gè)數(shù)據(jù)組塊。
2. 如權(quán)利要求1所述的重復(fù)數(shù)據(jù)刪除系統(tǒng),其中所述一個(gè)或多個(gè)數(shù)據(jù)組塊是從發(fā)送對 等方實(shí)體獲得的。
3. 如權(quán)利要求1所述的重復(fù)數(shù)據(jù)刪除系統(tǒng),其中數(shù)據(jù)組塊是利用以下中的一個(gè)獲得 的:磁URI、以及由發(fā)送對等方和接收對等方商定的請求-響應(yīng)協(xié)議。
4. 如權(quán)利要求1所述的重復(fù)數(shù)據(jù)刪除系統(tǒng),其中數(shù)據(jù)組塊是可高速緩存的網(wǎng)絡(luò)對象。
5. 如權(quán)利要求1所述的重復(fù)數(shù)據(jù)刪除系統(tǒng),其中發(fā)送對等方實(shí)體和接收對等方實(shí)體與 多租戶共享的基礎(chǔ)設(shè)施相關(guān)聯(lián)。
6. 如權(quán)利要求1所述的重復(fù)數(shù)據(jù)刪除系統(tǒng),其中發(fā)送對等方實(shí)體包括用于處理所述一 個(gè)或多個(gè)數(shù)據(jù)塊的機(jī)構(gòu)。
7. 如權(quán)利要求1所述的重復(fù)數(shù)據(jù)刪除系統(tǒng),其中第二詞典的內(nèi)容被按需重新同步化到 第一詞典的內(nèi)容。
8. -種在包括發(fā)送對等方和接收對等方的覆蓋網(wǎng)絡(luò)中操作的方法,發(fā)送對等方與租戶 源相關(guān)聯(lián),并且接收對等方與覆蓋網(wǎng)絡(luò)邊緣相關(guān)聯(lián),所述方法包括: 與發(fā)送對等方相關(guān)聯(lián)地維護(hù)第一詞典; 與接收對等方相關(guān)聯(lián)地維護(hù)第二詞典; 通過檢查流過發(fā)送對等方和接收對等方的數(shù)據(jù)并且利用指向第一詞典和第二詞典的 引用替換所述數(shù)據(jù)的塊來提供基于流的重復(fù)數(shù)據(jù)刪除,所述基于流的重復(fù)數(shù)據(jù)刪除是利用 在發(fā)送對等方和接收對等方中的硬件元件上執(zhí)行的軟件執(zhí)行的; 跨第一詞典和第二詞典實(shí)行一協(xié)議,其中,根據(jù)該協(xié)議,發(fā)送對等方假定:如果發(fā)送對 等方具有給定數(shù)據(jù)塊,則接收對等方具有所述給定數(shù)據(jù)塊,反之亦然,不管接收對等方是否 實(shí)際上在第二詞典中具有所述給定數(shù)據(jù)塊;以及 由接收對等方選擇性地識別并且獲得接收對等方需要執(zhí)行重復(fù)數(shù)據(jù)刪除操作的一個(gè) 或多個(gè)數(shù)據(jù)組塊。
9. 如權(quán)利要求8所述的方法,其中所述一個(gè)或多個(gè)數(shù)據(jù)組塊是從發(fā)送對等方獲得的。
10. 如權(quán)利要求8所述的方法,其中數(shù)據(jù)組塊是利用以下中的一個(gè)獲得的:磁URI、以及 由發(fā)送對等方和接收對等方商定的請求-響應(yīng)協(xié)議。
11. 如權(quán)利要求8所述的方法,其中數(shù)據(jù)組塊是可高速緩存的網(wǎng)絡(luò)對象。
12. 如權(quán)利要求8所述的方法,其中發(fā)送對等方處理所述一個(gè)或多個(gè)數(shù)據(jù)組塊。
13. 如權(quán)利要求8所述的方法,其中第二詞典的內(nèi)容被按需重新同步化到第一詞典的 內(nèi)容。
14. 一種非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),在其上存儲有指令,所述指令在父代數(shù)據(jù)處理節(jié)點(diǎn)和 子代數(shù)據(jù)處理節(jié)點(diǎn)上執(zhí)行時(shí)執(zhí)行以下操作,父代數(shù)據(jù)處理節(jié)點(diǎn)和子代數(shù)據(jù)處理節(jié)點(diǎn)具有不 需要彼此同步的相應(yīng)的庫: 當(dāng)流穿過父代數(shù)據(jù)處理節(jié)點(diǎn),將所述流打斷成多個(gè)組塊; 對于所述流的特定組塊,在父代數(shù)據(jù)處理節(jié)點(diǎn)處確定子代數(shù)據(jù)處理節(jié)點(diǎn)已經(jīng)具有所述 組塊的可能性; 基于所述確定,從父代數(shù)據(jù)處理節(jié)點(diǎn)將以下中的一個(gè)發(fā)送到子代處理節(jié)點(diǎn):所述組塊、 和對所述組塊的引用; 當(dāng)所述流開始在子代數(shù)據(jù)處理節(jié)點(diǎn)處被解碼時(shí)、并且對于所述流中的至少一個(gè)引用, 確定所述引用是否與存儲在與子代數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的庫中的組塊相關(guān)聯(lián);以及 如果所述引用與存儲在庫中的塊相關(guān)聯(lián),則將與所述組塊相關(guān)聯(lián)的數(shù)據(jù)合并回到所述 流中;以及 如果所述引用與缺失的組塊相關(guān)聯(lián),則執(zhí)行按需請求以獲得與所述塊對應(yīng)的數(shù)據(jù)。
【文檔編號】G06F15/16GK104221003SQ201380020000
【公開日】2014年12月17日 申請日期:2013年5月17日 優(yōu)先權(quán)日:2012年5月17日
【發(fā)明者】C·E·格羅, F·T·雷赫頓, A·F·徹姆帕格內(nèi) 申請人:阿卡麥科技公司