以目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種以目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的方法和系統(tǒng)。提供了用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的方法和系統(tǒng)。所述方法包括:在文件系統(tǒng)級(jí)別,在所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處,標(biāo)識(shí)先前發(fā)送到或接收自所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)的與被請(qǐng)求數(shù)據(jù)的至少一部分匹配的在先數(shù)據(jù);當(dāng)所述在先數(shù)據(jù)與被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配時(shí),將指向所述在先數(shù)據(jù)的至少一個(gè)指針和重構(gòu)方案?jìng)鬏數(shù)剿龊罄m(xù)節(jié)點(diǎn),所述重構(gòu)方案用于至少基于所述至少一個(gè)指針而在所述后續(xù)節(jié)點(diǎn)處重構(gòu)所述被請(qǐng)求數(shù)據(jù);以及將所述被請(qǐng)求數(shù)據(jù)的先前未發(fā)送到所述后續(xù)節(jié)點(diǎn)或未由所述后續(xù)節(jié)點(diǎn)接收的其它部分傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
【專利說明】以目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般地涉及數(shù)據(jù)傳輸,具體地說,涉及通過目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化。
【背景技術(shù)】
[0002]跨慢速或擁擠的連接傳輸大量數(shù)據(jù)是一個(gè)普遍的難題。如果數(shù)據(jù)傳輸要求的增長(zhǎng)超過帶寬的增長(zhǎng),則此難題將繼續(xù)存在或甚至更糟。
【發(fā)明內(nèi)容】
[0003]根據(jù)本發(fā)明的一個(gè)方面,提供一種用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的方法。所述方法包括在文件系統(tǒng)級(jí)別,在所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處,標(biāo)識(shí)先前發(fā)送到所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)或先前從所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)接收的與所述被請(qǐng)求數(shù)據(jù)的至少一部分匹配的在先數(shù)據(jù)。所述方法還包括當(dāng)所述在先數(shù)據(jù)與所述被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配時(shí),將指向所述在先數(shù)據(jù)的至少一個(gè)指針和重構(gòu)方案(recipe)傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn),所述重構(gòu)方案用于至少基于所述至少一個(gè)指針而在所述后續(xù)節(jié)點(diǎn)處重構(gòu)所述被請(qǐng)求數(shù)據(jù)。所述方法還包括將所述被請(qǐng)求數(shù)據(jù)的先前未發(fā)送到所述后續(xù)節(jié)點(diǎn)或未由所述后續(xù)節(jié)點(diǎn)接收的其它部分傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
[0004]根據(jù)本發(fā)明的另一個(gè)方面,提供一種用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的系統(tǒng)。所述系統(tǒng)包括匹配數(shù)據(jù)部分標(biāo)識(shí)器,其用于在文件系統(tǒng)級(jí)別,在所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處,標(biāo)識(shí)先前發(fā)送到所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)或先前從所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)接收的與所述被請(qǐng)求數(shù)據(jù)的至少一部分匹配的在先數(shù)據(jù)。所述系統(tǒng)還包括傳輸設(shè)備,其用于當(dāng)所述在先數(shù)據(jù)與所述被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配時(shí),將指向所述在先數(shù)據(jù)的至少一個(gè)指針和重構(gòu)方案?jìng)鬏數(shù)剿龊罄m(xù)節(jié)點(diǎn),所述重構(gòu)方案至少基于所述至少一個(gè)指針而在所述后續(xù)節(jié)點(diǎn)處重構(gòu)所述被請(qǐng)求數(shù)據(jù)。所述傳輸設(shè)備還將所述被請(qǐng)求數(shù)據(jù)的先前未發(fā)送到所述后續(xù)節(jié)點(diǎn)或未由所述后續(xù)節(jié)點(diǎn)接收的其它部分傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
[0005]根據(jù)本發(fā)明的另一個(gè)方面,提供一種用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的方法。所述方法包括在多個(gè)分塊級(jí)別對(duì)文件進(jìn)行分塊。所述方法還包括在所述多個(gè)分塊級(jí)別中的每個(gè)級(jí)別處,生成用于在所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)處重構(gòu)所述文件的相應(yīng)重構(gòu)方案以及用于存儲(chǔ)所述文件的塊的相應(yīng)塊存檔。所述方法還包括選擇所述相應(yīng)重構(gòu)方案和與所述相應(yīng)重構(gòu)方案對(duì)應(yīng)的所述塊存檔,所述相應(yīng)重構(gòu)方案和所述塊存檔導(dǎo)致將最少量的數(shù)據(jù)傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。所述方法還包括將所選擇的重構(gòu)方案和所選擇的塊存檔傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
[0006]根據(jù)本發(fā)明的另一個(gè)方面,提供一種用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的系統(tǒng)。所述系統(tǒng)包括數(shù)據(jù)分塊器,其用于在多個(gè)分塊級(jí)別對(duì)文件進(jìn)行分塊。所述系統(tǒng)還包括重構(gòu)方案和塊存檔生成器,其用于在所述多個(gè)分塊級(jí)別中的每個(gè)級(jí)別處,生成在所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)處重構(gòu)所述文件的相應(yīng)重構(gòu)方案以及存儲(chǔ)所述文件的塊的相應(yīng)塊存檔。所述重構(gòu)方案和塊存檔生成器還選擇所述相應(yīng)重構(gòu)方案和與所述相應(yīng)重構(gòu)方案對(duì)應(yīng)的所述塊存檔,所述相應(yīng)重構(gòu)方案和所述塊存檔導(dǎo)致將最少量的數(shù)據(jù)傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。所述系統(tǒng)還包括傳輸設(shè)備,其用于將所選擇的重構(gòu)方案和所選擇的塊存檔傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
[0007]從以下將結(jié)合附圖閱讀的對(duì)本發(fā)明的示例性實(shí)施例的詳細(xì)描述,這些和其它特性和優(yōu)點(diǎn)將變得顯而易見。
【專利附圖】
【附圖說明】
[0008]本公開將參考附圖,在以下對(duì)優(yōu)選實(shí)施例的描述中提供詳細(xì)信息,這些附圖是:
[0009]圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的可以應(yīng)用本發(fā)明的示例性處理系統(tǒng)100 ;
[0010]圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的示例性系統(tǒng)200 ;
[0011]圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的可以應(yīng)用本發(fā)明的節(jié)點(diǎn)的示例性網(wǎng)絡(luò)300 ;
[0012]圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的示例性方法400 ;以及
[0013]圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的另一個(gè)不例性方法500。
【具體實(shí)施方式】
[0014]本發(fā)明涉及通過目的地分析和數(shù)據(jù)去重的數(shù)據(jù)傳輸優(yōu)化。本發(fā)明通過戰(zhàn)略性地在中間節(jié)點(diǎn)處維護(hù)數(shù)據(jù)倉(cāng)庫(kù),減少數(shù)據(jù)重新傳輸。當(dāng)用戶希望在兩個(gè)節(jié)點(diǎn)之間傳輸數(shù)據(jù)時(shí),將檢查以查看是否在更靠近接收者的節(jié)點(diǎn)處已經(jīng)存在該數(shù)據(jù)的一部分或全部。在一個(gè)實(shí)施例中,然后僅發(fā)送以下項(xiàng):(1)未存在于合適的中間節(jié)點(diǎn)上的數(shù)據(jù);以及(2)組裝原始數(shù)據(jù)所需的指令。此策略將提高傳輸速度并降低傳輸成本。應(yīng)該指出,優(yōu)選實(shí)施例消除在節(jié)點(diǎn)之間同步數(shù)據(jù)庫(kù)的需要。
[0015]在一個(gè)實(shí)施例中,本發(fā)明使用結(jié)合了動(dòng)態(tài)分塊優(yōu)化的鏈?zhǔn)饺ブ夭呗砸詼p小數(shù)據(jù)傳輸?shù)拇笮?。如在此使用的,術(shù)語(yǔ)“鏈?zhǔn)饺ブ夭呗浴敝腹_的結(jié)合了多個(gè)主機(jī)上的文件級(jí)別去重的去重策略。此外,如在此使用的,術(shù)語(yǔ)“動(dòng)態(tài)分塊優(yōu)化”指公開的用于選擇隨后相互比較的文件部分或“塊”的最佳大小的方法。
[0016]圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的可以應(yīng)用本發(fā)明的示例性處理系統(tǒng)100。處理系統(tǒng)100包括至少一個(gè)處理器(CPU)102,其經(jīng)由系統(tǒng)總線104在操作上耦合到其它組件。只讀存儲(chǔ)器(ROM) 106、隨機(jī)存取存儲(chǔ)器(RAM) 108、顯示適配器110、1/0適配器112、用戶接口適配器114和網(wǎng)絡(luò)適配器198在操作上耦合到系統(tǒng)總線104。
[0017]顯示設(shè)備116通過顯示適配器110在操作上耦合到系統(tǒng)總線104。磁盤存儲(chǔ)設(shè)備(例如,磁盤或光盤存儲(chǔ)設(shè)備)118通過I/O適配器112在操作上耦合到系統(tǒng)總線104。
[0018]鼠標(biāo)120和鍵盤122通過用戶接口適配器114在操作上耦合到系統(tǒng)總線104。鼠標(biāo)120和鍵盤122用于將信息輸入系統(tǒng)100以及從系統(tǒng)100輸出信息。[0019]收發(fā)器196通過網(wǎng)絡(luò)適配器198在操作上耦合到系統(tǒng)總線104。
[0020]當(dāng)然,處理系統(tǒng)100還可以包括其它元件(未示出),如所屬【技術(shù)領(lǐng)域】的技術(shù)人員很容易地構(gòu)想的那樣,以及省略某些元件。此外,針對(duì)通過圖1中的收發(fā)器196和/或某個(gè)其它元件(示出或未示出)與處理系統(tǒng)100連接的用戶,可以省略處理系統(tǒng)100的元件,例如鍵盤122和鼠標(biāo)120。所屬【技術(shù)領(lǐng)域】的技術(shù)人員很容易地構(gòu)想處理器系統(tǒng)100的這些和其它變型以及其中包括的元件,同時(shí)保持本發(fā)明的精神。
[0021]此外,應(yīng)該理解,下面針對(duì)圖2描述的系統(tǒng)200實(shí)際上是用于實(shí)現(xiàn)本發(fā)明的一個(gè)相應(yīng)實(shí)施例的系統(tǒng)。處理系統(tǒng)100的部分或全部可以在系統(tǒng)200的一個(gè)或多個(gè)元件中實(shí)現(xiàn)。
[0022]同樣,下面針對(duì)圖3描述的網(wǎng)絡(luò)300實(shí)際上是根據(jù)本發(fā)明的一個(gè)實(shí)施例的可以應(yīng)用本發(fā)明的網(wǎng)絡(luò)。處理系統(tǒng)100的部分或全部可以在網(wǎng)絡(luò)300的一個(gè)或多個(gè)元件中實(shí)現(xiàn)。
[0023]進(jìn)一步,應(yīng)該理解,處理系統(tǒng)100可以執(zhí)行在此描述的方法的至少一部分,例如包括圖4的方法400的各部分。
[0024]圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的示例性系統(tǒng)200。系統(tǒng)200可以位于數(shù)據(jù)傳輸涉及的一個(gè)或多個(gè)節(jié)點(diǎn)上。系統(tǒng)200包括匹配數(shù)據(jù)部分標(biāo)識(shí)器210、數(shù)據(jù)分塊器220、重構(gòu)方案和塊存檔生成器230、數(shù)據(jù)庫(kù)240、索引250和收發(fā)器260。數(shù)據(jù)庫(kù)240可以包括索引250以及塊存檔270。
[0025]匹配數(shù)據(jù)部分標(biāo)識(shí)器210將被請(qǐng)求數(shù)據(jù)與預(yù)先存儲(chǔ)的數(shù)據(jù)相比較,以便判定被請(qǐng)求數(shù)據(jù)的任何部分是否與預(yù)先存儲(chǔ)的數(shù)據(jù)相匹配。
[0026]數(shù)據(jù)分塊器220輸入接收的文件并對(duì)接收的文件進(jìn)行分塊。在一個(gè)實(shí)施例中,在多個(gè)分塊級(jí)別對(duì)接收的文件進(jìn)行分塊。
[0027]重構(gòu)方案和塊存檔生成器230生成用于重構(gòu)至少某些被請(qǐng)求數(shù)據(jù)的重構(gòu)方案(例如,在后續(xù)節(jié)點(diǎn)處,例如包括下一個(gè)非目的地節(jié)點(diǎn)或目的地節(jié)點(diǎn))。在一個(gè)實(shí)施例中,重構(gòu)方案和塊存檔生成器230生成一組重構(gòu)方案和一組塊存檔,并進(jìn)行選擇以便使用重構(gòu)方案和對(duì)應(yīng)于該重構(gòu)方案的塊存檔,它們導(dǎo)致傳輸最少量的數(shù)據(jù)(例如,對(duì)于給定傳輸,整體傳輸最少量的數(shù)據(jù),或者在鏈路的一部分上傳輸最少量的數(shù)據(jù),等等)。雖然示為單個(gè)元件,但在其它實(shí)施例中,重構(gòu)方案和塊存檔生成器230可以被實(shí)現(xiàn)為多個(gè)元件。例如,可以在一個(gè)元件中實(shí)現(xiàn)用于生成重構(gòu)方案的功能,同時(shí)可以在另一個(gè)元件中實(shí)現(xiàn)用于生成塊存檔的功倉(cāng)泛。
[0028]數(shù)據(jù)庫(kù)240在其中存儲(chǔ)數(shù)據(jù)。在一個(gè)實(shí)施例中,針對(duì)此類存儲(chǔ)選擇性地選擇存儲(chǔ)在數(shù)據(jù)庫(kù)240中的數(shù)據(jù)。在一個(gè)實(shí)施例中,存儲(chǔ)在數(shù)據(jù)庫(kù)240中的數(shù)據(jù)在其中存儲(chǔ)一段預(yù)定時(shí)間。
[0029]索引250標(biāo)識(shí)存儲(chǔ)在同一節(jié)點(diǎn)處的數(shù)據(jù)庫(kù)240中的數(shù)據(jù)。在一個(gè)實(shí)施例中,索引250還標(biāo)識(shí)存儲(chǔ)在其它節(jié)點(diǎn)處的數(shù)據(jù)庫(kù)中的數(shù)據(jù)。在一個(gè)實(shí)施例中,索引250本身也可以存儲(chǔ)在數(shù)據(jù)庫(kù)240中。
[0030]收發(fā)器260初始接收被提供給數(shù)據(jù)分塊器220進(jìn)行分塊的文件。此外,收發(fā)器260將數(shù)據(jù)、指針和重構(gòu)方案?jìng)鬏數(shù)揭粋€(gè)或多個(gè)其它(例如,下游)節(jié)點(diǎn)。例如,在一個(gè)實(shí)施例中,收發(fā)器260傳輸被請(qǐng)求數(shù)據(jù)的一個(gè)或多個(gè)部分(例如,存儲(chǔ)在前一個(gè)節(jié)點(diǎn)處或轉(zhuǎn)發(fā)自前一個(gè)節(jié)點(diǎn))、已經(jīng)存儲(chǔ)(例如,在(同一節(jié)點(diǎn))或不同節(jié)點(diǎn)處)的指向數(shù)據(jù)(例如,被請(qǐng)求數(shù)據(jù)的一個(gè)或多個(gè)部分)的一個(gè)或多個(gè)指針,以及用于在后續(xù)節(jié)點(diǎn)處重構(gòu)數(shù)據(jù)的一個(gè)或多個(gè)重構(gòu)方案。后續(xù)節(jié)點(diǎn)可以是下一非目的地節(jié)點(diǎn),或者可以是目的地節(jié)點(diǎn)。應(yīng)該理解,給定節(jié)點(diǎn)處的給定收發(fā)器260還可以接收被請(qǐng)求數(shù)據(jù)的一個(gè)或多個(gè)部分、指向數(shù)據(jù)的一個(gè)或多個(gè)指針,以及用于在后續(xù)節(jié)點(diǎn)處重構(gòu)數(shù)據(jù)的一個(gè)或多個(gè)重構(gòu)方案,因?yàn)榻o定節(jié)點(diǎn)可以是至少兩個(gè)中間節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn),并且可以沿著該給定節(jié)點(diǎn)轉(zhuǎn)發(fā)來自上一個(gè)節(jié)點(diǎn)的數(shù)據(jù)、指針和方案。
[0031]下面將進(jìn)一步詳細(xì)地描述系統(tǒng)200的元件執(zhí)行的功能。
[0032]圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的可以應(yīng)用本發(fā)明的節(jié)點(diǎn)的示例性網(wǎng)絡(luò)300。網(wǎng)絡(luò)300包括葉節(jié)點(diǎn)A-H、J-N和P。
[0033]假設(shè)希望將數(shù)據(jù)從葉節(jié)點(diǎn)A傳輸?shù)饺~節(jié)點(diǎn)D。在傳統(tǒng)的網(wǎng)絡(luò)體系結(jié)構(gòu)中,該數(shù)據(jù)在到達(dá)目的地之前將經(jīng)過節(jié)點(diǎn)B和C。但是,在許多情況下,正在被傳輸?shù)臄?shù)據(jù)或它的各部分先前已通過某些中間節(jié)點(diǎn)被傳輸。
[0034]在本發(fā)明的一個(gè)實(shí)施例中,在每個(gè)倉(cāng)庫(kù)節(jié)點(diǎn)處,存儲(chǔ)通過該倉(cāng)庫(kù)節(jié)點(diǎn)的部分或全部數(shù)據(jù),并維護(hù)存儲(chǔ)在部分或所有其它倉(cāng)庫(kù)節(jié)點(diǎn)處的部分或全部數(shù)據(jù)的目錄。每個(gè)先前節(jié)點(diǎn)知道它已發(fā)送到每個(gè)后續(xù)節(jié)點(diǎn)的數(shù)據(jù),并且通過商定策略知道每個(gè)后續(xù)節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)。
[0035]例如,如果再次考慮圖3中的網(wǎng)絡(luò),當(dāng)節(jié)點(diǎn)A將數(shù)據(jù)傳輸?shù)焦?jié)點(diǎn)D時(shí),節(jié)點(diǎn)B和C將在數(shù)據(jù)通過它們時(shí)記錄該數(shù)據(jù)的部分或全部。下次節(jié)點(diǎn)B之后的葉節(jié)點(diǎn)將數(shù)據(jù)發(fā)送到節(jié)點(diǎn)C之后的葉節(jié)點(diǎn)時(shí)(例如,在節(jié)點(diǎn)A將數(shù)據(jù)發(fā)送到節(jié)點(diǎn)D的情況下),節(jié)點(diǎn)B首先將新傳輸中的數(shù)據(jù)與先前傳輸?shù)焦?jié)點(diǎn)C的數(shù)據(jù)的記錄相比較。如果先前傳輸了該數(shù)據(jù)的部分或全部,則只需發(fā)送有關(guān)如何從節(jié)點(diǎn)C處的數(shù)據(jù)倉(cāng)庫(kù)取回該數(shù)據(jù)的指令。通過此操作,將減少節(jié)點(diǎn)B和節(jié)點(diǎn)C之間的鏈路上的負(fù)載。
[0036]現(xiàn)在將針對(duì)圖4提供本發(fā)明的一個(gè)優(yōu)選實(shí)施例的描述。當(dāng)節(jié)點(diǎn)B和C在慢速鏈路的任一端并在節(jié)點(diǎn)A和D之間時(shí),執(zhí)行以下步驟以便將文件從節(jié)點(diǎn)A發(fā)送到節(jié)點(diǎn)D。應(yīng)該指出,在該實(shí)施例中,節(jié)點(diǎn)A將所有業(yè)務(wù)按順序通過節(jié)點(diǎn)B和節(jié)點(diǎn)C而發(fā)送到節(jié)點(diǎn)D。
[0037]圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的示例性方法。
[0038]在步驟410,啟動(dòng)從節(jié)點(diǎn)A到節(jié)點(diǎn)D的連接以便下載文件f。
[0039]在步驟420,將節(jié)點(diǎn)B和節(jié)點(diǎn)C標(biāo)識(shí)為位于節(jié)點(diǎn)A和節(jié)點(diǎn)D之間以便用于傳輸文件
fo
[0040]在步驟430,節(jié)點(diǎn)A請(qǐng)求從節(jié)點(diǎn)D發(fā)送文件f。
[0041]在步驟440,節(jié)點(diǎn)D將文件f發(fā)送到節(jié)點(diǎn)C。
[0042]在步驟450,節(jié)點(diǎn)C將文件f與它接收并發(fā)送到節(jié)點(diǎn)B的其它文件相比較,以便唯一標(biāo)識(shí)文件f中存在的已發(fā)送到節(jié)點(diǎn)B或已從節(jié)點(diǎn)B接收的文件的各部分,即使先前已將整個(gè)文件f發(fā)送(到節(jié)點(diǎn)B)或已(由節(jié)點(diǎn)B)接收整個(gè)文件f。
[0043]在步驟460,節(jié)點(diǎn)C創(chuàng)建文件X,其包括指向先前發(fā)送或接收的一個(gè)或多個(gè)文件的標(biāo)記,并且還包括文件f與一個(gè)或多個(gè)文件(先前發(fā)送或接收)之間的更改,以及基于傳輸?shù)母暮椭貥?gòu)信息重構(gòu)文件f所需的信息。在一個(gè)實(shí)施例中,通過執(zhí)行所接收的文件與先前發(fā)送或接收的文件的逐位比較而確定更改。在一個(gè)實(shí)施例中,當(dāng)超過閾值數(shù)量的在先數(shù)據(jù)與被請(qǐng)求數(shù)據(jù)的至少一部分匹配時(shí),發(fā)送更改。通過這種方式,與傳輸所有數(shù)據(jù)相比,將顯著減少傳輸?shù)臄?shù)據(jù)量。[0044]在步驟470,節(jié)點(diǎn)C將文件X傳輸?shù)焦?jié)點(diǎn)B。
[0045]在步驟480,節(jié)點(diǎn)B重構(gòu)文件f。
[0046]在步驟490,節(jié)點(diǎn)B將重構(gòu)后的文件f發(fā)送到節(jié)點(diǎn)A。
[0047]現(xiàn)在將針對(duì)圖5提供本發(fā)明的一個(gè)備選實(shí)施例的描述。所述備選實(shí)施例描述了一種系統(tǒng),其在所有節(jié)點(diǎn)(而不只是在慢速連接的任一端處的節(jié)點(diǎn),即,存儲(chǔ)所有發(fā)送和接收的文件的大型數(shù)據(jù)庫(kù)的所有節(jié)點(diǎn))之間(根據(jù)商定的規(guī)則)運(yùn)行本發(fā)明的去重系統(tǒng)。
[0048]圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過目的地分析和數(shù)據(jù)去重實(shí)現(xiàn)數(shù)據(jù)傳輸優(yōu)化的另一個(gè)示例性方法。
[0049]在步驟510,數(shù)據(jù)分塊器220 (在以管理方式設(shè)置的所有可能的可行分塊級(jí)別)對(duì)接收的文件進(jìn)行分塊。
[0050]在步驟520,重構(gòu)方案和塊存檔生成器230通過文件系統(tǒng)級(jí)別去重(使用文件系統(tǒng)對(duì)鏈中的下一個(gè)智能節(jié)點(diǎn)中的已知文件進(jìn)行去重),在每個(gè)分塊級(jí)別生成重構(gòu)方案和塊存檔。如果給出組中的特定分塊級(jí)別,并且因此給出特定塊存檔,則重構(gòu)方案用于在后續(xù)節(jié)點(diǎn)處重構(gòu)文件。塊存檔用于在給定分塊級(jí)別處存儲(chǔ)塊(例如,存儲(chǔ)一段預(yù)定時(shí)間)。因此,每個(gè)重構(gòu)方案對(duì)應(yīng)于特定塊存檔,且重構(gòu)方案和塊存檔兩者對(duì)應(yīng)于同一分塊級(jí)別。
[0051]在步驟530,重構(gòu)方案和塊存檔生成器230選擇導(dǎo)致傳輸最少量數(shù)據(jù)的最佳重構(gòu)方案和塊存檔。
[0052]在步驟540,至少(例如,在本地?cái)?shù)據(jù)庫(kù)240中)存儲(chǔ)所選擇的重構(gòu)方案和對(duì)應(yīng)于該重構(gòu)方案的塊存檔。
[0053]在步驟550,收發(fā)器260將最佳重構(gòu)方案和塊存檔傳輸?shù)芥溨械南乱粋€(gè)智能節(jié)點(diǎn)。
[0054]在步驟560,鏈中的下一個(gè)智能節(jié)點(diǎn)經(jīng)由收發(fā)器260接收重構(gòu)方案和塊存檔。
[0055]在步驟570,鏈中的下一個(gè)智能節(jié)點(diǎn)使用所接收的重構(gòu)方案和塊存檔重構(gòu)文件。
[0056]針對(duì)鏈中的每個(gè)智能節(jié)點(diǎn)重復(fù)步驟510到570。
[0057]現(xiàn)在將描述本發(fā)明的一個(gè)示例性實(shí)施例。為此,將做出以下假設(shè)。葉節(jié)點(diǎn)D存儲(chǔ)它已發(fā)送到葉節(jié)點(diǎn)E的任何事物(存儲(chǔ)一段商定的時(shí)間)等。因此,在一個(gè)實(shí)施例中,每個(gè)智能節(jié)點(diǎn)都在一段商定的時(shí)間內(nèi)保存從每個(gè)先前智能節(jié)點(diǎn)發(fā)送給它的文件的記錄。假設(shè)去重的主要級(jí)別在文件系統(tǒng)級(jí)別。假設(shè)文件是具有實(shí)質(zhì)性大小的文件。假設(shè)可以通過公共配置或?qū)W(wǎng)絡(luò)拓?fù)?公共或其它)的某種其它預(yù)定理解,確定從A到K的路徑。
[0058]再次參考圖3,如果葉節(jié)點(diǎn)A想要將文件發(fā)送到葉節(jié)點(diǎn)K,則葉節(jié)點(diǎn)A將文件發(fā)送到葉節(jié)點(diǎn)D,葉節(jié)點(diǎn)D將文件發(fā)送到葉節(jié)點(diǎn)E,葉節(jié)點(diǎn)E將文件發(fā)送到葉節(jié)點(diǎn)F,葉節(jié)點(diǎn)F將文件發(fā)送到葉節(jié)點(diǎn)J,葉節(jié)點(diǎn)J將文件發(fā)送到葉節(jié)點(diǎn)K。
[0059]在每個(gè)智能節(jié)點(diǎn)(D、E、F、J)處,將發(fā)生以下操作。
[0060]接收整個(gè)文件。每個(gè)發(fā)送智能節(jié)點(diǎn)將執(zhí)行上面針對(duì)圖5描述的步驟510到570。
[0061]現(xiàn)在將給出對(duì)一個(gè)備選實(shí)施例的描述。假設(shè)智能節(jié)點(diǎn)存儲(chǔ)通過它傳輸?shù)臄?shù)據(jù),則智能節(jié)點(diǎn)知道子節(jié)點(diǎn)(在該實(shí)例中為節(jié)點(diǎn)G)是否具有包括在重構(gòu)原始文件中有用的數(shù)據(jù)塊的文件。如果發(fā)現(xiàn)包括對(duì)重構(gòu)文件有用的塊,并且在節(jié)點(diǎn)G與目的地節(jié)點(diǎn)(節(jié)點(diǎn)F)之間具有備選路徑,而且使用該備選路徑具有可感知到的優(yōu)勢(shì),則存儲(chǔ)在節(jié)點(diǎn)G中的塊可以用于幫助將塊存檔傳輸?shù)侥康牡毓?jié)點(diǎn)。在這種情況下,節(jié)點(diǎn)G可以用于通過在節(jié)點(diǎn)G中創(chuàng)建部分塊存檔來幫助傳輸,該部分塊存檔然后與來自前一個(gè)智能節(jié)點(diǎn)(節(jié)點(diǎn)E)的塊存檔一起被傳輸?shù)芥溨械南乱粋€(gè)智能節(jié)點(diǎn)。
[0062]現(xiàn)在將給出關(guān)于與本發(fā)明相關(guān)的其它考慮事項(xiàng)的描述。發(fā)送到節(jié)點(diǎn)的數(shù)據(jù)可能在給定已知時(shí)間之后過期。相同的信任級(jí)別適用于通過路由器發(fā)送數(shù)據(jù)。去重也適用于加密后的數(shù)據(jù)。節(jié)點(diǎn)中的數(shù)據(jù)(關(guān)于數(shù)據(jù)發(fā)送到的節(jié)點(diǎn))必須最新并且同步??梢允褂枚ㄖ栖浖?例如定制文件傳輸軟件)執(zhí)行通過這些節(jié)點(diǎn)的通信。盡管本發(fā)明的一個(gè)實(shí)施例被描述為在鏈路的任一端運(yùn)行,但本發(fā)明可以在任何兩個(gè)連接的節(jié)點(diǎn)之間工作。所述系統(tǒng)可以在連接節(jié)點(diǎn)之間(即,在A和B之間、在B和C之間,以及在C和D之間)工作。
[0063]現(xiàn)在將給出關(guān)于本發(fā)明如何不同于廣域網(wǎng)(WAN)優(yōu)化的描述。本發(fā)明是自上而下的,而不是自下而上的。與WAN優(yōu)化相比,本發(fā)明不需要知道正在接收什么文件。與其中在文件級(jí)別執(zhí)行數(shù)據(jù)去重的WAN優(yōu)化相比,本發(fā)明在文件系統(tǒng)級(jí)別執(zhí)行數(shù)據(jù)去重。為了執(zhí)行去重,當(dāng)前正在被發(fā)送的文件永遠(yuǎn)無需已在以前被發(fā)送。因此,這與依賴于重新發(fā)送已知文件的當(dāng)前WAN緩存策略截然不同。
[0064]此外,關(guān)于本發(fā)明如何不同于廣域網(wǎng)(WAN)優(yōu)化,做出以下說明。WAN優(yōu)化結(jié)合了緩存和去重。WAN優(yōu)化中的去重工作在開放系統(tǒng)互連堆棧的第4層。WAN去重通過存儲(chǔ)文件模式的字典(其根據(jù)先前傳輸來標(biāo)識(shí))來工作。這些字典必須保持很小,以便不會(huì)妨礙及時(shí)傳輸文件。相比之下,本發(fā)明在文件系統(tǒng)級(jí)別(字節(jié)級(jí)別)使用去重。本發(fā)明使用結(jié)合了動(dòng)態(tài)分塊優(yōu)化的鏈?zhǔn)饺ブ夭呗?,以便減小傳輸?shù)拇笮?。這是鏈?zhǔn)讲呗裕虼藘蓚€(gè)節(jié)點(diǎn)之間的傳輸(包括多個(gè)中間節(jié)點(diǎn))將導(dǎo)致多次使用優(yōu)化過程。本發(fā)明允許較大的去重“字典”,必須實(shí)時(shí)傳輸文件的設(shè)備不可能具有如此大的去重“字典”。本發(fā)明提供大得多的機(jī)會(huì)來減少帶寬使用。
[0065]進(jìn)一步做出以下說明。本發(fā)明不需要任何有關(guān)誰(shuí)具有什么的集中知識(shí)。它也不依賴于能夠獲得有關(guān)誰(shuí)具有什么的知識(shí)的目的地節(jié)點(diǎn)。
[0066]我們的系統(tǒng)依賴于文件系統(tǒng)級(jí)別去重。做出以下關(guān)于文件系統(tǒng)級(jí)別去重的說明。本發(fā)明使用文件系統(tǒng)級(jí)別去重,其中“文件系統(tǒng)”包括接收節(jié)點(diǎn)中的已知文件。這些文件是已知的,因?yàn)榘l(fā)送節(jié)點(diǎn)在商定的時(shí)間內(nèi)存儲(chǔ)這些文件。這也可以稱為字節(jié)級(jí)別去重。
[0067]現(xiàn)在將給出本發(fā)明提供的較之現(xiàn)有技術(shù)地理優(yōu)化策略的優(yōu)勢(shì)。具有多種當(dāng)前鏈路優(yōu)化策略。其中某些策略包括基于去重的策略。某些基于去重的策略嘗試使用有關(guān)以前發(fā)送到該節(jié)點(diǎn)的文件部分的現(xiàn)有知識(shí),對(duì)兩個(gè)節(jié)點(diǎn)之間的實(shí)時(shí)數(shù)據(jù)流執(zhí)行去重。在這些策略中,嘗試運(yùn)行中識(shí)別和去重。運(yùn)行中數(shù)據(jù)去重包括對(duì)照已知的同步數(shù)據(jù)庫(kù),在運(yùn)行中估計(jì)入站數(shù)據(jù)或?qū)θ胝緮?shù)據(jù)進(jìn)行分塊和散列。
[0068]其它策略包括文件系統(tǒng)的同步。本發(fā)明不需要接收節(jié)點(diǎn)或發(fā)送節(jié)點(diǎn)具有任何有關(guān)彼此的現(xiàn)有知識(shí),也不需要有關(guān)存儲(chǔ)在其它葉節(jié)點(diǎn)中的文件的詳細(xì)知識(shí)。本發(fā)明并不在線實(shí)現(xiàn)并因而發(fā)生延遲傳輸;相應(yīng)地,本發(fā)明可以在發(fā)送之前利用大量時(shí)間進(jìn)行最佳去重。本發(fā)明不涉及大型數(shù)據(jù)庫(kù)的同步。本發(fā)明可以利用發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)之間的若干節(jié)點(diǎn)。
[0069]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(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ī)可讀的程序代碼。
[0070]可以采用一個(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)、裝置或器件,或者上述的任意合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0071]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括一但不限于一電磁信號(hào)、光信號(hào)或它們的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0072]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0073]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來編寫用于執(zhí)行本發(fā)明的各個(gè)方面的操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(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)連接)。
[0074]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0075]也可以把這些計(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)0
[0076]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的過程。
[0077]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的不同實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系結(jié)構(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)。
[0078]本說明書中對(duì)本發(fā)明的“一個(gè)實(shí)施例”或“一實(shí)施例”的引用以及它們的其它變型指結(jié)合該實(shí)施例描述的特定特性、結(jié)構(gòu)或特征等被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,本說明書的各種位置中出現(xiàn)的短語(yǔ)“在一個(gè)實(shí)施例中”或“在一實(shí)施例中”以及任何其它變型不一定都指同一實(shí)施例。
[0079]應(yīng)該理解,使用以下和/或”以及“至少一個(gè)”(例如,在“A/B”、“A和/或B”以及“A和B中的至少一個(gè)”的情況下)的任意一個(gè)都旨在包含僅選擇第一列出的選項(xiàng)CA),或者僅選擇第二列出的選項(xiàng)(B),或者選擇兩個(gè)選項(xiàng)(A和B)。作為進(jìn)一步實(shí)例,在“A、B和/或C”以及“A、B和C中的至少一個(gè)”的情況下,此語(yǔ)句旨在包含僅選擇第一列出的選項(xiàng)(A),或者僅選擇第二列出的選項(xiàng)(B),或者僅選擇第三列出的選項(xiàng)(C),或者僅選擇第一和第二列出的選項(xiàng)(A和B),或者僅選擇第一和第三列出的選項(xiàng)(A和C),或者僅選擇第二和第三列出的選項(xiàng)(B和C),或者選擇所有三個(gè)選項(xiàng)(A和B和C)。這可以擴(kuò)展為列出的任意多個(gè)項(xiàng),如本領(lǐng)域和相關(guān)【技術(shù)領(lǐng)域】的技術(shù)人員顯而易見的那樣。
[0080]描述系統(tǒng)和方法的優(yōu)選實(shí)施例(它們旨在是示例性的而非限制性的)之后,要指出的是,本領(lǐng)域技術(shù)人員可以根據(jù)上述教導(dǎo)做出修改和變型。因此,應(yīng)該理解,可以在公開的特定實(shí)施例中進(jìn)行更改,其在所附權(quán)利要求概述的本發(fā)明的范圍內(nèi)。因此,描述本發(fā)明的各個(gè)方面以及專利法需要的細(xì)節(jié)和特殊性之后,在所附權(quán)利要求中給出證書專利要求保護(hù)和期望保護(hù)的內(nèi)容。
【權(quán)利要求】
1.一種用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的方法,所述方法包括: 在文件系統(tǒng)級(jí)別,在所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處,標(biāo)識(shí)先前發(fā)送到所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)或先前從所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)接收的與所述被請(qǐng)求數(shù)據(jù)的至少一部分匹配的在先數(shù)據(jù); 當(dāng)所述在先數(shù)據(jù)與所述被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配時(shí),將指向所述在先數(shù)據(jù)的至少一個(gè)指針和重構(gòu)方案?jìng)鬏數(shù)剿龊罄m(xù)節(jié)點(diǎn),所述重構(gòu)方案用于至少基于所述至少一個(gè)指針而在所述后續(xù)節(jié)點(diǎn)處重構(gòu)所述被請(qǐng)求數(shù)據(jù);以及 將所述被請(qǐng)求數(shù)據(jù)的先前未發(fā)送到所述后續(xù)節(jié)點(diǎn)或未由所述后續(xù)節(jié)點(diǎn)接收的其它部分傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1的方法,其中所述標(biāo)識(shí)步驟在非傳輸層處標(biāo)識(shí)與所述被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配的所述在先數(shù)據(jù)。
3.根據(jù)權(quán)利要求1的方法,其中所述文件系統(tǒng)級(jí)別處于字節(jié)級(jí)別。
4.根據(jù)權(quán)利要求1的方法,其中所述數(shù)據(jù)傳輸方法還包括由所述至少兩個(gè)目的地節(jié)點(diǎn)中的至少每個(gè)節(jié)點(diǎn)執(zhí)行以下操作: 在多個(gè)分塊級(jí)別對(duì)文件進(jìn)行分塊; 在所述多個(gè)分塊級(jí)別中的每個(gè)級(jí)別處,生成用于在所述后續(xù)節(jié)點(diǎn)處重構(gòu)所述文件的相應(yīng)重構(gòu)方案以及用于存儲(chǔ)所述文件的塊的相應(yīng)塊存檔;以及 將與所述多個(gè)分塊級(jí)別中的至少一個(gè)級(jí)別對(duì)應(yīng)的所述重構(gòu)方案和所述塊存檔傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn), 其中所述文件包括在由所述標(biāo)識(shí)步驟使用的所述在先數(shù)據(jù)中。
5.根據(jù)權(quán)利要求4的方法,其中所述生成步驟包括: 生成多個(gè)重構(gòu)方案和多個(gè)塊存檔;以及 選擇所述多個(gè)重構(gòu)方案中的一個(gè)給定重構(gòu)方案和與該給定重構(gòu)方案對(duì)應(yīng)的所述多個(gè)塊存檔中的一個(gè)給定塊存檔,該給定重構(gòu)方案和該給定塊存檔導(dǎo)致在所述節(jié)點(diǎn)鏈上傳輸最少量的數(shù)據(jù)。
6.根據(jù)權(quán)利要求4的方法,其中所述后續(xù)節(jié)點(diǎn)是所述節(jié)點(diǎn)鏈中的下一非目的地節(jié)點(diǎn)。
7.根據(jù)權(quán)利要求4的方法,其中所述后續(xù)節(jié)點(diǎn)是所述目的地節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求1的方法,其中所述標(biāo)識(shí)和傳輸步驟被限于僅由所述至少兩個(gè)中間節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)在慢速連接的每一側(cè)執(zhí)行,所述慢速連接具有小于預(yù)定閾值的數(shù)據(jù)傳輸速率。
9.根據(jù)權(quán)利要求1的方法,還包括在所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處維護(hù)相應(yīng)索引和相應(yīng)數(shù)據(jù)庫(kù),所述相應(yīng)索引標(biāo)識(shí)存儲(chǔ)在所述至少兩個(gè)中間節(jié)點(diǎn)中的同一節(jié)點(diǎn)處的所述相應(yīng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
10.根據(jù)權(quán)利要求9的方法,其中在所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處維護(hù)的所述相應(yīng)索引進(jìn)一步標(biāo)識(shí)存儲(chǔ)在所述至少兩個(gè)中間節(jié)點(diǎn)中的其它節(jié)點(diǎn)處的所述相應(yīng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
11.根據(jù)權(quán)利要求10的方法,其中在所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處維護(hù)的所述相應(yīng)索引進(jìn)一步標(biāo)識(shí)存儲(chǔ)在所述源節(jié)點(diǎn)和所述目的地節(jié)點(diǎn)處的數(shù)據(jù)。
12.根據(jù)權(quán)利要求9的方法,其中所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處的所述相應(yīng)數(shù)據(jù)庫(kù)未同步到所述至少兩個(gè)中間節(jié)點(diǎn)中的其它節(jié)點(diǎn)處的所述相應(yīng)數(shù)據(jù)庫(kù)。
13.根據(jù)權(quán)利要求1的方法,其中在所述至少兩個(gè)中間節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)處完全重構(gòu)所述被請(qǐng)求數(shù)據(jù),然后將完全重構(gòu)后的被請(qǐng)求數(shù)據(jù)傳輸?shù)胶罄m(xù)節(jié)點(diǎn)。
14.根據(jù)權(quán)利要求1的方法,還包括當(dāng)超過閾值數(shù)量的所述在先數(shù)據(jù)與所述被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配時(shí),將所述在先數(shù)據(jù)與所述被請(qǐng)求數(shù)據(jù)之間的更改傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
15.根據(jù)權(quán)利要求1的方法,其中在有形地體現(xiàn)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可執(zhí)行程序中實(shí)現(xiàn)所述方法。
16.一種用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括: 匹配數(shù)據(jù)部分標(biāo)識(shí)器,其用于在文件系統(tǒng)級(jí)別,在所述至少兩個(gè)中間節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)處,標(biāo)識(shí)先前發(fā)送到所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)或先前從所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)接收的與所述被請(qǐng)求數(shù)據(jù)的至少一部分匹配的在先數(shù)據(jù);以及 傳輸設(shè)備,其用于當(dāng)所述在先數(shù)據(jù)與所述被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配時(shí),將指向所述在先數(shù)據(jù)的至少一個(gè)指針和重構(gòu)方案?jìng)鬏數(shù)剿龊罄m(xù)節(jié)點(diǎn),所述重構(gòu)方案至少基于所述至少一個(gè)指針而在所述后續(xù)節(jié)點(diǎn)處重構(gòu)所述被請(qǐng)求數(shù)據(jù),以及用于將所述被請(qǐng)求數(shù)據(jù)的先前未發(fā)送到所述后續(xù)節(jié)點(diǎn)或未由所述后續(xù)節(jié)點(diǎn)接收的其它部分傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
17.根據(jù)權(quán)利要求16的系統(tǒng),其中所述匹配數(shù)據(jù)部分標(biāo)識(shí)器在非傳輸層處標(biāo)識(shí)與所述被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配的先前存儲(chǔ)的數(shù)據(jù)。
18.根據(jù)權(quán)利要求16的·系統(tǒng),其中在所述至少兩個(gè)中間節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)處完全重構(gòu)所述被請(qǐng)求數(shù)據(jù),然后將完全重構(gòu)后的被請(qǐng)求數(shù)據(jù)傳輸?shù)胶罄m(xù)節(jié)點(diǎn)。
19.根據(jù)權(quán)利要求16的系統(tǒng),其中當(dāng)超過閾值數(shù)量的所述在先數(shù)據(jù)與所述被請(qǐng)求數(shù)據(jù)的所述至少一部分匹配時(shí),所述傳輸設(shè)備進(jìn)一步將所述在先數(shù)據(jù)與所述被請(qǐng)求數(shù)據(jù)之間的更改傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
20.一種用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的方法,所述方法包括: 在多個(gè)分塊級(jí)別對(duì)文件進(jìn)行分塊; 在所述多個(gè)分塊級(jí)別中的每個(gè)級(jí)別處,生成用于在所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)處重構(gòu)所述文件的相應(yīng)重構(gòu)方案以及用于存儲(chǔ)所述文件的塊的相應(yīng)塊存檔; 選擇所述相應(yīng)重構(gòu)方案和與所述相應(yīng)重構(gòu)方案對(duì)應(yīng)的所述塊存檔,所述相應(yīng)重構(gòu)方案和所述塊存檔導(dǎo)致將最少量的數(shù)據(jù)傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn);以及 將所選擇的重構(gòu)方案和所選擇的塊存檔傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
21.根據(jù)權(quán)利要求20的方法,其中在所述至少兩個(gè)中間節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)處完全重構(gòu)所述文件,然后將完全重構(gòu)后的文件傳輸?shù)剿龉?jié)點(diǎn)鏈中的后續(xù)非目的地節(jié)點(diǎn)。
22.根據(jù)權(quán)利要求20的方法,其中在所述至少兩個(gè)中間節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)處完全重構(gòu)所述文件,然后將完全重構(gòu)后的文件傳輸?shù)剿瞿康牡毓?jié)點(diǎn)。
23.一種用于在從源節(jié)點(diǎn)到目的地節(jié)點(diǎn)且通過至少兩個(gè)中間節(jié)點(diǎn)的節(jié)點(diǎn)鏈上傳輸被請(qǐng)求數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括:數(shù)據(jù)分塊器,其用于在多個(gè)分塊級(jí)別對(duì)文件進(jìn)行分塊; 重構(gòu)方案和塊存檔生成器,其用于在所述多個(gè)分塊級(jí)別中的每個(gè)級(jí)別處,生成在所述節(jié)點(diǎn)鏈中的后續(xù)節(jié)點(diǎn)處重構(gòu)所述文件的相應(yīng)重構(gòu)方案以及存儲(chǔ)所述文件的塊的相應(yīng)塊存檔,以及用于選擇所述相應(yīng)重構(gòu)方案和與所述相應(yīng)重構(gòu)方案對(duì)應(yīng)的所述塊存檔,所述相應(yīng)重構(gòu)方案和所述塊存檔導(dǎo)致將最少量的數(shù)據(jù)傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn);以及 傳輸設(shè)備,其用于將所選擇的重構(gòu)方案和所選擇的塊存檔傳輸?shù)剿龊罄m(xù)節(jié)點(diǎn)。
24.根據(jù)權(quán)利要求23的系統(tǒng),其中在所述至少兩個(gè)中間節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)處完全重構(gòu)所述文件,然后將完全重構(gòu)后的文件傳輸?shù)剿龉?jié)點(diǎn)鏈中的后續(xù)非目的地節(jié)點(diǎn)。
25.根據(jù)權(quán)利要求23的系統(tǒng),其中在所述至少兩個(gè)中間節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)處完全重構(gòu)所述文件,然后將完全重構(gòu)后的文件傳輸?shù)剿瞿康牡毓?jié)點(diǎn)。
【文檔編號(hào)】H04L29/08GK103593384SQ201310351353
【公開日】2014年2月19日 申請(qǐng)日期:2013年8月13日 優(yōu)先權(quán)日:2012年8月14日
【發(fā)明者】T·M·萊納爾, K·C·斯蒂爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司