TWI360336B - Efficient algorithm and protocol for remote differ - Google Patents

Efficient algorithm and protocol for remote differ Download PDF

Info

Publication number
TWI360336B
TWI360336B TW094107741A TW94107741A TWI360336B TW I360336 B TWI360336 B TW I360336B TW 094107741 A TW094107741 A TW 094107741A TW 94107741 A TW94107741 A TW 94107741A TW I360336 B TWI360336 B TW I360336B
Authority
TW
Taiwan
Prior art keywords
signature
remote
block length
block
length list
Prior art date
Application number
TW094107741A
Other languages
English (en)
Other versions
TW200537881A (en
Inventor
Dan Teodosiu
Nikolaj S Bjorner
Patrick E Bozeman
Yuri Gurevich
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200537881A publication Critical patent/TW200537881A/zh
Application granted granted Critical
Publication of TWI360336B publication Critical patent/TWI360336B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M3/00Medical syringes, e.g. enemata; Irrigators
    • A61M3/02Enemata; Irrigators
    • A61M3/06Enemata; Irrigators combined with bidets
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Hematology (AREA)
  • Veterinary Medicine (AREA)
  • Public Health (AREA)
  • General Health & Medical Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Biomedical Technology (AREA)
  • Anesthesiology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

1360336 玖、發明說明: 【發明所屬之技術領域】 本發明係大致與在有限頻寬之網路上更新資料物件有 關。更特言之’本發明係關於一使用一遠端差動壓縮(RDC) 方法之物件資料的差動轉換的系統與方法。該RDC方法之 遞迴應用程式可用於進一步缩小傳輸大型物件時的使用頻
【先前技術】 内部網路、外部網路及網際網路等網路的快速成長已 使在廣大網路上分享資訊的使用者數量大幅成長。一最大 資料傳輸率與各個依據頻寬之實體網路有關,其中該頻寬 與該傳輸媒體及其他和基礎設施有關之限制有關。由於有 限的網路頻寬,使用者在該網路上擷取及傳輸大量資料時 可能會經歷漫長的遲延。 資料壓縮技術已成為在一有限頻寬之網路上傳輸大量 資料的一普遍方式。無失真壓縮涉及一資料組的傳輸,因 而藉由使用一解壓縮轉換便可擷取該資料組之一精確的重 製。無失真壓縮大多用於需要一精確複本時的小型資料。 备—貝料物件之接收者已具有該物件之一較早或較晚 版本時’一種稱為遠端差動壓縮(RDC)之無失真壓縮方 法可被用於列定並僅於該物件之新舊版本之間傳輸該差 異。由於一 Rt>C傳輸僅涉及傳送該新舊版本之間的已知差 異(例如在檔案的情形中,檔案修改或最後存取曰期、檔 3 1360336 Λ»
案特性或該檔案内容之小改變),傳輸資料的總數可 地缩減。RDC可與其他的無失真壓縮演算法結合以 降低該網路流量。RDC之優點在大型物件需要經常 裝置之間來回傳送且難以或無法維持這些物件之舊 因而無法使用區域差動演算法的情況中最為有效。 【發明内容】 簡言之’本發明與用於在有限頻寬網路上更新 一方法與系統有關。利用遠端差動壓縮技術而於二 電腦裝置間更新物件將可減少所需資料傳輸。在 中’藉由遞迴地應用該RDC演算法至物件本身的 料’便可達成有效的大型物件傳輸;在此情形中可 一或多個遞迴步驟以減少該RDC演算法在該網路 的中介資料數量。物件及/或簽章與區塊長度列表可 動態判定的位置上設置邊界而加以分區。所描述之 系統在多種網路應用程式中均是有用的,如點對點 務、電子郵件客戶端及伺服器、客戶端快取系統、 製工具、資料庫重複符號、入口網站、軟體更新服 案/資料同步等等。 藉由參照以下簡短摘要之伴隨圖示以及後續關 明之說明實施例的詳細描述並參照該申請專利範圍 得本發明之一更完整瞭解以及其改進。 【實施方式】 被大幅 進一步 在電腦 有複本 物件的 或多個 一態樣 中介資 使用單 上傳& 藉由在 方法反 複製月艮 通用複 務 '標 於本發 而tr獲 4 1360336 本發明之各種實施例將參照該圖示而加.以詳細地描 、 述,其中類似的參照數字代表遍及各種觀點之類似部件2 組件。參照各種實施例並非限制本發明之範圍,其僅限於 附加至此的申請專利範圍。此外,在此說明書中提出的任 何範例並非限制性的,其僅提出本發明申請專利範圍之許 多可能實施例的其中一部份。 本發明被描述於區域及遠端電腦裝置(或簡稱為“贫 • 置”之上下文令,該裝置具有一或多個儲存於其上之—般關 連物件。該“區域”及“遠端,’術語係指該方法之—情況。 而,該同一裝置可於不同情況中同時扮演一 “區域,,及“遠 端”角色。遠端差動壓縮(RDC)方法被用於在—有限頻完 之網路上有效地更新該一般關連物件。當具有一物件之一 新複本的一裝置需要更新具有該相同或類似物件之較舊複 本的一裝置時’便使用該RDC方法以於該網路上僅傳輪談 物件間的差異。描述RDC方法的一範例使用(1)用於傳送 該RDC中介資料之一遞迴方法,以減少大型物件傳輪的中 • 介資料數量,及(2)—種以最大化為基礎的區域分區方法以 增加關於該物件差動的準確性因而減少該頻寬的使用。某 些得利於所述之RDC方法的示範應用程式包括但不限 於:點對點複製服務、如SMB之檔案傳輸協定、傳輪大型 影像之虛擬伺服器、電子郵件伺服器、行動電話及PDA同 步、資料庫伺服器複製》 ⑧ 5 1360336 第1圖為說明本發明之__ 該圖中所述,配置裝置以於_ 一般目的之電腦裝置、特殊目 至一網路之適當裝置。該網路 括但不限於:一直接有線連線 示範作業環境之一圖示。如 網路上通信。這些裝置可為 的之電腦裝置或其他任何連 1 02可對應任何連線拓樸包 (如平行埠、串列埠' USB、 IEEE 1 3 94等等)、一無線連線(如红外線埠、藍牙埠等
等)、一有線網路、一無線網路、一區域網路、—廣域網路、 一超廣域網路、一網際網路、一内部網路及一 在裝置A(l〇〇)與裝置B(1〇1)之間的—示範互動 中,一物件之不同版本被區域性地儲存於該兩裝置上:物 件oA於1〇〇上而物件〇B於101上。在某處上,裝置a( 1〇〇) 決定以裝置B(1 〇1)上儲存的該複本(物件〇b)更新其 物件〇A的複本,並傳送一請求至裝置B(1〇I)以起始該 RDC方法。在一替代實施例中,該RDC方法可被裝置b (101 V所起始。
裝置(100)與裝置(1〇1)均處理其區域儲存的物件 並且將相關資料以資料相依方式分割為數個區塊(例如區 塊1-11用於物件〇b,而區塊Ι-k用於物件〇A)。_組簽章 如區塊的強雜湊(strong hashes,SHA)被該兩裝置區域地 計算。該兩裝置均編譯該簽章的個別列表。在該RD(:方法 的次一步驟過程中,裝置B(1〇1)於該網路1〇2上傳送其 計算的簽章列表及區塊長度1-n至裝置A(1〇〇^^裝置A (100)藉由比較每個接收的簽章與其自身產生的簽章列表 l-k而評估此簽章列表。該簽章列表中的錯誤配對指出該 6 1360336 物件中需要更正的一或多個差異。裝置Α(ι 00 ) 置8(101)的一請求以送出該簽章列表中的錯誤 別的區塊。裝置B(ioi)隨即壓缩並傳送該請求 區塊在接收及解壓縮完成後被裝置A(1 〇〇)重新 置Α(ι〇〇)重新組合該接收區塊以及其自身的符 取得物件〇b的一區域複本。 主裝置 第2圖為依據本發明而配置之一示範電腦裝 塊圖°在一基本設置中,電腦裝置2 00典型地包 處理單元(202 )以及系統記憶體(204 )。依據該 以及電腦裝置的類型,系統記憶體2〇4可為依電 Μ )、非依電性(如ROM、快閃記憶體等等)或 某種結合。系統記憶體204典型地包括一作業系 -或多個程式模組(2〇6);且可包括程式資料( 基本設置於第2圖中由底線2〇8内的該些元件所 電腦裝置200亦可具有額外的特徵或功能。 說,電腦裝置2G〇也可包括額外的f料儲存裝置 及/或不可移除)如磁碟、光碟或磁帶。這些額外 2圖中由可移除儲存209及不可移除儲存21〇所 腦儲存媒體可包括以任何用於儲存資訊如電腦 令、資料結構、程式模組或其他資料之方法或技 的依電性及非依電,&、可移除及不可移除媒體。 體204可移除儲存209及不可移除儲存21〇均 傳送對裝 配對所識 區塊,該 組合。裝 合區塊以 置的一方 括至少一 確切設置 性(如刺 前兩者之 統(2 0 5 ); 207)。此 說明。 。舉例來 (可移除 儲存於第 說明。電 可讀取指 術所使用 系統記憶 為電腦儲 7 1360336
存媒體之範例。電腦儲存媒體包括但不限於RAM、ROM、 EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位 影音光碟(DVD )或其他光儲存、磁性卡匣、磁帶、磁碟 儲存或其他磁性儲存裝置、或任何可被用於儲存該所需資 訊且可被電腦裝置2 〇〇所存取的其他媒體β任何此電腦儲 存媒體可為裝置2 00之部分。電腦裝置2〇〇亦可具有輸入 裝置212如鍵盤、滑鼠、感應筆、語音輸入裝置、觸.控輪 入裝置等等。輸出裝置214如登幕、味1°八、印表機等等亦 可被納入。所有這些裝置均為習知技術中熟知的且無須於 此處详細討論。
電腦裝置2 00亦含有通信連線216,其允許該裝置於 例如一網路上與其他電腦裝置218通信。通信連線216為 通信媒體之一範例。通信媒體典型地實施電腦可讀取指 令、資料結構、程式模組或位於一模組化資料信號如一栽 波或其他傳輸機制中的其他資料,且包括任何資訊傳遞媒 體。“模組化資料信號,,一詞係指其特性以編竭該信號中的 資訊之方式被設置或改變的一信號。舉例來說但不限於 此,通信媒體包括有線媒體如一有線網路或直接有線連線 以及無線媒體如聲頻、無線電頻率、微波、衛星、紅外線 及其他無線媒體。此處所使用之電腦可讀取媒體一詞同時 包括儲存媒體及通信媒體。 這種程序及介面可被用於位於系統記憶髋2〇4中的一 或多個應用程式中》在一範例中,該應用程式為一遠端差 動壓縮演算法,其排程該電腦裝置(如一客戶端)及另一 8 1360336 遠端設置之電腦裝置(如一伺服器)之間的檔案 另一範例中,該應用程式為系統記憶體2〇4中提 縮/解壓縮程序以供壓縮及解壓縮資料。在另一箱 應用程式為-客戶端裝置之系統記憶冑2〇4中提 密程序。 同步。在 供的一壓 例中,該 供的一解 遠端差動Jj縮(RDr、
第3A及3B圖為說明依據本發明 範RDC程序的圖示。該區塊數目可特 〇A及〇B而對各種情形加以變化。 之至少一態 別地依據該
如第3A圖,該基本RDC協定 裝置B)之間被交涉協裝置 邊協疋暗中假設該 有該相同物件赤咨k 次資源的兩種不同實體(或版本 物件實體(或版本)〇 υΑ及〇b加以識別。對於 的範例*言,裝置A具有㈣㈣—早期版為 置B具有一版纟0B,其於與該資源有關之内! 中有著細微(或增量的)差異。 、下榣述用於自裝置8傳輸該更新物件Ob 的協定。一類似協定也可被用於自裝iA傳輸-置B,而該傳輪可 呼WT在裝置a或裝置b其中一者的 啟動而不會重女+山 大地改變以下描述的協定。 裝置· A送出一請求至裝置b以使用該 傳輸物件0 b。在一替代實施例中,裝 樣之一示 實際物件 裝置A及 置及B具 其分別由 圖中說明 〇A,而裝 (或資料) 至裝置A 物件至裝 命令下被 RDC協定 置B起始 1360336
該傳輸:在此情況中,該協定略過步驟 以下步驟2開始。 2. 裝置A劃分物件0A為區塊Ι-k,並對4 的每個區塊l...k計算一簽章SigAi以及 (或位元组大小)LenAi。該分割為區塊 下加以詳細說明。裝置A儲存簽章及區 列表((SigAi, LenA〇 · · · (SigAk, LenAk)) 3. 裝置將物件0B劃分為區塊1 -η,並對逢 之每個區塊1 ...η計算一簽章SigBi及 LenBi。步驟3中所使用的劃分演算法必 述步驟2中的相同。 4. 裝置B送出其計算的關於物件0B之一區 及區塊長度列表((SigAi,LenA1)… Len a k))至裝置A。該區塊長度資訊隨後 置A使用以藉由結合該區塊與其起始偏 長度而請求一特定區塊集合。由於該列 續性質,可藉由增加該列表中所有先前 長度而計算每個區塊Bi的起始偏移位元 在另一實施例中,使用一無失真壓縮演 於該區塊簽章及區塊長度的列表被傳送 A前將其簡潔地編碼。 5. 在收到此資料時,裝置A比較該接收的 表與其於步驟2中對物件 〇A計算的 SigAi ... SigAk 0 1而自 分件〇A 一長度 將於以 塊長度 Ο 7件〇B 一長度 須與前 塊簽章 (SigAk, 可被裝 移及其 表之連 區塊的 組。 算法而 至裝置 簽章列 該簽章 10 1360336 6. 裝置A送出一所有其於步驟4中從裝置接收之 簽章無法符合裝置A於步驟2中計算之任何簽 章的區塊的請求至裝置 B。對於每個請求的區 塊Bi,該請求包含裝置於步驟4中計算的區塊 起始偏移以及該區塊長度。
7. 裝置B送出與所有該請求區塊有關之内容至裝 置A。裝置B送出的内容可於被傳送至裝置A 前使用一無失真壓縮演算法加以進一步壓缩。 8. 裝置A藉由使用步驟7中自裝置B接收的該區 塊以及符合裝置B於步驟4中送出之簽章的物 件OA的自有區塊而重建物件0B的一區域複 本。裝置A上重新排列該區域及遠端區塊的順 序由裝置A於步驟4接收的區塊簽章列表所決 定。
該分區步驟2及3可以一種使用一指紋函數的資料相 依方式發生,該指紋函數於該相關物件(分別於〇A及Ob ) 中的每個位元組位置上被計算。對一特定位置而言,使用 一圍繞於該物件之該位置的一小型資料視窗而計算該指紋 函數;該指紋函數的數值視該視窗中包含之所有該物件位 元組而定。該指紋函數可為任何適當的函數,例如一雜湊 函數或一拉賓多項式(Rabin polynomial)。 於該物件中該指紋函數計算一滿足一選定條件之數值 的位置而決定區塊邊界。可使用一密碼安全雜湊函數 11 1360336 (SH A )或某些其他雜奏函數如抗碰撞雜湊函數而計算該 區塊簽章。 步驟4中送出的該簽章及區塊長度列表提供一基礎以 供同時使用該原始區塊及該識別的已更新或新區塊而重建 該區塊。步驟6中請求的該區塊由其偏移及長度加以識 別。藉由使用其簽章符合裝置Α於步驟4中所接收者的區 域及遠端區塊而於裝置A上以相同順序重建該物件。.
在裝置完成該重建步驟後,物件〇a可被刪除並被裝 置A上重建之物件〇b的複本所取代。在其他實施例中, 裝置A可保留物件〇a以供在未來RDC傳送過程中區塊的 潛在“再使用”。
對大型物件而言,第3A圖中說明的該基本RDC協定 實體引發步驟4中一龐大固定的額外負擔,即使物件〇a 及物件0B非常接近或為相同的。假定一平均區塊大小, 步驟4中於該網路上傳送的資訊數量與該物件〇b的大小 成正比,尤其與C所分割的物件〇b大小一其為物件B的 區塊數量—成正比,且因而與步驟4中傳送的(區塊簽章, 區塊長度)對的大小成正比。
舉例來說,參照第6圖,一大型影像(如—虚擬機器 監控器如Microsoft Virtual Server所使用之一虛擬硬碟影 像)可產生一 9.1GB大小的一物件(〇b)。對等於3KB的 一平均區塊大小C而言,該9 GB物件可導致3百萬個區塊 被產生給物件OB,並伴隨42MB的關聯簽章以及區塊長度 資訊,其於步驟4中需於該網珞上被送出》由於該42MB 12 1360336 的簽章資訊必須於該網路上被送出,即使當物件〇A及物 件〇B之間的差異(即於步驟7中需要被送出的資料數量: 非常細微,因而該協定的固定額外負擔成本將會過高。
此固定額外負擔成本可藉由使用該RDC協定之遞迴 應用程式而非步驟4中傳輪的簽章資訊而大大地降低。參 照第3B圖,額外步驟4.2-4.8將於下文中加以說明,並取 代該基本RDC决算法的步鄉4。步称4248對應前述該基 本RDC協疋之步驟2-8的一遞迴應用程式。該遞迴應用程 式可進一步被應用至以下的步驟44等等,適用於任何所 需遞迴深度。 4.2 裝置A執行其簽章及區塊長度列表((SigA|, LenA1) ... (SigAk,LenAk))之一遞迴分區成為遞 迴簽章區塊’並取得遞迴簽章及遞迴區塊長度 的另一列表((RSigA1,RLenA1) ... (RSigAs, RLenAs)),其中 s<<k 〇
4.3 裝置B遞迴地累進分區該簽章及區塊長度列表 ((SigBl,LenB1)…(SigBn,LenBn))以產生一遞 -迴簽章及遞迴區塊長度列表((RSigB1, RLenB1)…(RSigBr,RLenBr)),其中 r<<n。 4.4 裝置B送出一遞迴簽章及遞迴區塊長度之排序 列表((RSigB1,RLenB1)…(RSigBr,RLenBr)) 至裝置 A。該遞迴區塊簽章及遞迴區塊長度列 表被簡潔地編碼並可於被傳送至裝置A前使用 13 一無失真壓縮演算法被被進一步壓縮。 4.5 裝置比較從裝置接收的該遞迴簽章以及其於步 驟4.2中計算出的一自我遞迴簽章列表。 4.6 裝置A送出一請求至裝置B,該請情為裝置A 於其集合(RSigA1…RSigAs)中並不具有一符合 遞迴簽章的各個區別遞迴簽章區塊(具有遞迴 簽章 RSigBk)。 4.7 裝置B送出該請求的遞迴簽章區塊至裝置A。 該請求的遞迴簽章區塊可於被傳送至裝置A前 使用一無失真壓縮演算法而被進一步壓缩。 4.8 裝置A使用該區域符合遞迴簽章區塊以及於步 驟4.7自裝置B接收的該遞迴區塊而重建該簽 章及區塊資訊列表((SigBi,LenBi)…(SigBn, LenBn))。 在前述步驟4.8完成後,於前述該基本RDC協定之步 驟5繼續執行,如第3A圖所述。 由於該遞迴分區操作,與該物件有關之該遞迴簽章數 量被減少相當於該平均區塊大小C的一因子,並產生一明 顯較少數量的遞迴簽章(對於物件〇A而言r<<n而對於物 件〇b而言s<<k )。在一實施例中,該相同的分區參數可被 用於如同分區該原始物件0A及0B而分區該簽章。在一替 代實施例中,其他的分區參數可被用於該遞迴步驟。 對於非常大型的物件而言該前述遞迴步驟可被使用 k 14 1360336 次,其中Κ 1。對於依平均區塊大小C而言,遞迴分區可 減少該網路上的簽章流量大小(步驟4.2至步驟4.8)大約 相當於Ck的一因子。由於C相對較大,大於一的一遞迴 深度僅必須用於非常大的件。
在一實施例中,該遞迴步驟數量可藉由考慮參數而動 態地加以決定,該參數包括一或多個下者:預期的平均區 塊大小、該物件〇A及/或0B的大小、該物件0A及/或0B 的資料格式、連接裝置A及裝置B之網路的延遲及頻寬特 性。 步驟2中使用的指紋函數與步驟3中使用的指紋函數 相符。類似地,步驟4.2中使用的指紋函數與步驟4.3中 所使用者相符。步驟2 - 3的該指紋函數可選擇性地與步驟 4.2-4.3的相符。
如前所述,每個指紋函數使用圍繞於該物件中的一位 置的一小型資料視窗;其中與該指紋函數有關之該數值視 該資料視窗中包括的所有該物件位元組而定。該資料視窗 的大小可依據一或多個標準而被動態地調整。再者,該分 區程序使用該指紋函數之數值以及一或多個附加分區參數 以判定前述步驟2-3及4.2-4.3中的區塊邊界。 藉由動態地改變該視窗大小以及該分區參數,可調整 該區塊邊界因而以最小的可用頻寬消耗完成任何必要資料 傳輸。 用於調整該視窗大小及該分區參數的示範標準包括: 與該物件相關之一資料類型、環境限制、一使用模型、連 15 接裝置A及裝替Ώ 於決定平均資料傳輸::大的二遲及頻寬特性、以及任何用 包括文字處理檣安 的適當模型。示範資料類型 以及圖形影像。一忒算纟簡報々燈片、 ^ 不範使用模型可位於監控一典型資料傳 輪所需之平均位元組數量之處。 科得 在應用程式中對一單一項目的改變可造成相關資料 項及/或檔案的改變。由於多數 田於爹數應用程式具有一相關檔.案類 在調整該視&大小及該分區參數時值得考慮以該檔案 類型作,-種可能的標準。在一範例卜在一文字處理文 件中丨字70的修改會造成該相關標案約刚位元組的 改變。在另-範例中,-資料庫應用程式中一單一項目的 修改會造成該資料庫索引檔案中丨〇〇〇位元组被改變。對於 每個範例而言,該適當的視窗大小以及分區參數可為不同 的,因而該分區程序具有依據該特定應用程式而最佳化的 一適當粒度(granularity)。 示範處理流程 第4A及4B圖為圖示,其說明在依據本發明之至少 —態樣所配置之一示範RDC程序中一區域裝置(如裝置) 及一遠端裝置(如裝置B)之間的互動的處理流程。第4A 圖的左手邊說明在該區域裝置A上操作的步驟400-413, 而第 4圖的右手邊說明在該區域裝置B上操作的步驟 450-456 。 如第4A圖所述,該互動藉由裝置A於步驟40 0請求 16 1360336 一 RDC傳輸而開始,而裝置B於步驟45 0接收此請求。 此後,該區域裝置及遠端裝置B均獨立地分別於步驟401 及451計算指紋、於步驟402及452分割其各自物件為區 塊、並於步驟403及453中計算每個區塊的簽章(如SHA )。 在步驟454中,裝置B送出於步驟452及453中計算 的該簽章及區塊長度列表至裝置A,後者於步驟404接收 此資訊。
在步驟405中,該區域裝置A初始化該請求區塊列表 為空白列表,並對該遠端區塊初始化該追蹤偏移為 0。在 步驟406中,從步驟404中接收的列表中選擇該次一(簽 章,區塊長度)對(SigBi,LenBi )以供考慮。於步驟407 中,裝置A檢查步驟406中選擇的該簽章Si gBi是否符合 其於步驟403中計算的任何簽章。如果符合,便繼續執行 步驟409。如果並不符合,便於步驟408中增加該追蹤遠 端區塊偏移以及該長度位元組LenBi至該請求列表中。於 步驟409,該追蹤偏移由該目前區塊LenBi的長度所增量。
於步驟410,該區域裝置A測試步驟410中接收的所 有(簽章,區塊長度)對是否已被處理。如果不是,便繼 續執行步驟406。否則,便於步驟411以一簡潔方式適當 地編碼該區塊請求列表,並將其壓縮並送出至該遠端裝置 B。 該遠端裝置B於步驟455接收該區塊壓縮列表,並將 其解壓縮,隨後於步驟456壓縮並傳回該區塊資料。 該區域裝置於步驟412接收並解壓縮該請求區塊資 17
1360336 料。使用該物件〇A之區域複本以及該接收的區塊資 該區域裝置於步驟413重组〇b之一區域複本。 第4B圖說明第4A圖之步驟413的—詳細範例。 於步驟414繼續,其中該區域裝置A初始化該重建物 0 ° 於步驟415,從步驟404中接收的列表中選擇該 (簽章,區塊長度)對(SigBi,LenBi)以供考慮。於 416,裝置A檢查步驟417中選擇的該簽章sigBi是否 其於步驟403中計算的任何簽章。 如果符合,便繼續步驟417,其中該對應區域區 附加至該重建物件。如果不符合,該接收的以及解壓 遠端區塊於步驟418被附加至該重建物件。 於步驟419,該區域裝置A測試步驟401中接收 有(簽章’區塊長度)對是否已被處理。如果不是, 績執行步驟415。否則,於步驟42 0該重建物件被用 代裝置A上物件〇a的舊複本。 示範遞迴簽章傳輪處理流程 第5A及5B圖為圖示,其說明在依據本發明之至 態樣所配置之一示範RDC程序中該簽章及區塊長度 之遞迴傳輸的處理流程。以下描述之程序皆可被用於 更新一般相關物件的該區域及遠端裝置。 第5A圖的左手邊說明在該區域裝置A上操作的 501-513,而第5A的右手邊說明在該遠端裝置B上操 料, 處理 件為 次一 .步驟 符合 塊被 縮的 的所 便繼 於取 少一 列表 嘗試 步驟 作的 18 步驟551-556。步驟501-513取代第4A圖的步驟404而步 驟551-556取代第4A圖的步驟454。 於步驟501及551,該區域裝置及遠端裝置B均獨立 地分別計算其簽章及區塊長度列表((SigA1,LenA1),... (SigAk,LenAk))及((SigBi,LenBi),…(SigBn,LeriBn))的遞 迴指紋,其於步驟402/403及452/453中已分別被計算。 於步驟502及5 52該裝置分別將其各自的簽章及區塊.長度 列表分割為遞迴區塊,而於步称503及553中分別對每個 遞迴區塊計算遞迴簽章(如SHA )。 於步驟554中,裝置B送出步驟552及553計算的簽 章及長度列表至裝置A,後者於步驟5 04接收此資訊。 於步驟505中,該區域裝置A初始化該請求遞迴區塊 列表為空白列表,拉初始化該遠端遞迴區塊之追縱遠端遞 迴偏移為零》於步驟5 06中,從步驟5 04接收的列表中選 擇該次一(遞迴簽章,遞迴區塊長度)對(RSigBj,RLenBi ) 以供考慮。於步驟5 07中,裝置a檢查步驟5 〇6中選擇的 該遞迴簽章RSigBi是否符合其於步驟503中計算之任何遞 迴簽章。如果符合,便繼續執行步驟509 ^若不符合,於 步驟508增加該追蹤遠端遞迴區塊偏移以及長度位元植 RLenBi至該請求列表。於步驟5 09’該追蹤遠端遞迴偏移 由該目前遞迴區塊RLenBi所增量。 於步驟510,該區域裝置A測試步驟5〇4中接收的所 有(遞迴簽章、遞迴區塊長度)對是否已被處理。如果不 是’便繼續執行步騨506。反之,便於步驟簡潔地編 19 1360336 列 遞 區 表 4A 理 遞 章 該 的 接 果 列 驟 瑪、壓縮並送出該遞迴區塊請求列表至該遠端裝置B。 該遠端裝置B於步驟555接收該壓縮的遞迴區塊 表’並將該列表解壓縮,隨後於步驟556壓縮並送回該 迴區塊資料》
該區域裝置於步驟512接收並解壓缩該請求的遞迴 塊資料。使用該簽章及區塊長度列表((sigAiLenAi), (SigAk,LenAk))之區域複本以及該接收的遞迴區塊資料 該區域裝置於步驟513重組該簽章及區塊長度列 ((SigB丨,LenB丨),...(SigBk,LenBn))e 隨後繼續執行第 圖中的步驟405。 第5B圖說明第5A圖之步驟513的一詳細範例。處 於步驟514繼續,其中該區域裝置初始化該遠端簽章及 塊長度列表SIGCL為空白列表。 於步驟515,從步驟504接收之列表中選擇該次一( 迴簽章,遞迴區塊長度)對(RSigBj,RLenBi)以供考肩 於步驟516,裝置A檢查步驟515中選擇的該遞迴簽 RSigBi是否符合其於步驟5〇3中計算的任何遞迴簽章。 如果符合,便繼續執行步驟517,其中裝置A附加 對應區域遞迴區塊至SIGCL。如果不符合,該遠端接收 遞迴區塊於步驟518被附加至SIGCL。 於步驟519,該區域裝置a測試所有於步驟504中 收的(遞迴簽章、遞迴區塊長度)對是否已被處理。如 不疋’便繼續執行步驟515。反之,該簽章及區塊長度 表((SlgBi,LenB丨),... (SigBk,LenBn))的區域複本於步 20 1360336 520被設至SIGCL的數值》
該遞迴簽章及區塊長度列表可選擇地被評估以判定是 否如前述需要額外的遞迴遠端差動歷縮以降低頻寬使用。 藉由以該RDC程序之另一實體等等取代步驟5 〇4及554 而使用前述分區程序便可遞迴地壓縮該遞迴簽章及區塊長 度列表,直到達成所需壓縮層級,在該遞迴簽章列表被足 夠壓縮後’該遞迴簽章列表被傳回以供如前述於該遠端及 區域裝置之間傳送。
第6圖為一圖示,其圖形化說明依據本發明所配置之 一示範RDC序列中的一遞迴壓縮範例,對於第圖中的該範 例而言’該原始物件為9· 1 GB的資料。使用一分區程序而 編譯一簽章及區塊長度列表,其中該簽章及區塊長度列表 產生3百萬個區塊(或一 4 2MB大小)。在一第一遞迴步驟 後。該簽章列表被分為3萬3千個區塊並縮減33KB大小 的一遞迴簽章及遞迴區塊長度列表。藉由遞迴地壓縮該簽 章列表,傳輪該簽章列表所需之頻寬使用因而將大大地減 少,從42MB縮減至大約395KB。 示範物件更新 第7圖為一圖示,其說明使用依據本發明之至少一態 樣所配置一示範RDC程序的一客戶端及伺服器應用程式 間的互動。在該伺服器及該客戶端上的該原始檔案包含 ^The quick fox jumped over the lazy brown dog. The dog was so lazy that he didn't notice the fox jumping over 21 1360336 him.”之文字。 隨後該伺服器上的該檔案被更新為“The quick fox jumped over the lazy brown dog. The brown dog was so lazy that he didn’t notice the fox jumping over him.”
如前所述,該客戶端定時地請求更新該檔案。該客戶 端及伺服器均將該物件(該文字)分為前述之區塊。在該 客戶端上,該區塊為“ The quick fox jumped”、“over the lazy brown dog.”、“The dog was so lazy that he didn't notice” 以及 “the fox jumping over him.” ;該客戶端簽章列 表被建立為:SHA!丨、SHA丨2、SHA丨3、以及 SHA丨4。在該 伺服器上,該區塊為“The quick fox jumped”、“over the lazy brown dog.”、“The brown dog was,,、“so lazy that he didn’t notice”以及 “the fox jumping over him.” ;該祠服器 簽章列表被建立為:SHA2丨、SHA22、SHA23 ' SHA24以及 SHA25。 該伺服器使用前述之遞迴簽章壓縮技術傳送該簽章列 表(SHAn-SHA25 )。該客户端得知該區域儲存的簽章列表 (SH Αι 1 -SHAi 4 ) 並不符合該接收的簽章列表 (SHA21-SHA25),並請求該4司服器的遺漏區塊3及4。該 伺服器壓縮並傳送區塊3及4 ( “The brown dog was”以及 “so lazy that he didn’t notice”)。該客戶端接收該壓縮區 塊、解壓縮之、並且如第7圖中所示更新該樓案。 分區分析 22 1360336 前述該基本RDC程序的效果可藉由最佳化用於分區 該物件資料及/或分區該簽章及區塊長度列表之分區程序 而加以提升。 該基本RDC程序具有一網路通訊額外負擔成本,其為 以下之總和:
(51) |B的簽章及區塊長度| = |〇B| * |SigLen| / C,其 中I〇b|為物件0B的位元組大小,SigLen為一(簽章,區塊 長度)對的位元組’而C為預測平均區塊位元組大小;及 (52) Σ 厘趨燾彦,其中 Qigwafwre,c/iwn々 e b 的 Signatures,而sig/iait/re 在 A 的 Signatures。 該通訊成本因而得利於一大型平均區塊大小以及該遠 端及區域區塊間的一龐大交集。如何將物件分隔為區塊的 選擇將決定該協定的品質。該區域及遠端裝置必須在未有 先前通信的隋況下同意在何處分割一物件。以下將說明並 分析各種找出分割的方法。 假設以下特徵為已知的分割演算法: I寬限(Slack):用以調和檔案差異之區 元組數量。考慮序列sl、s2& s3, 所需: 以汉S3,且精田串連而形成兩 序列s 1 s 3及s 2 s 3。對此兩库别吝A兮p·祕^ 两序列產生該&塊Chunks 1及
Chunks2。如果 chunksl,及(^1ιηΐΓί!〇,八釗 夂Chunks2分別為Chunksl及 該
Chunks2的區塊長度總和, .n 长仵到第一共问後綴之前, 寬限值位元組由以下公式所求得: 23 1360336 slack = Chunksi’ - |si| = Chunks2’ - |S2|
2 .平均區塊大小C 當物件0A及0B具有等於平均大小K的S區段,可區 域地於該客戶端上取得的該區塊數量為:
S * L(K - slack)/C」 因此,最小化寬限的一分區演算法將最小化在線路上 傳送的位元組數量。因此使用最小化該預期寬限之分區演 算法是有利的。 指紋函數 所有的分區演算法使用一指紋函數或雜湊,其依賴依 小型視窗,亦即一有限位元組序列。用於分區之雜湊演算 法於負責有限差動(長度縮減)最佳化時,其.執行時間與 該雜湊視窗大小無關。因此,對於一大小為k的雜湊視窗 而言,應當易於(僅需一固定數量的步驟)僅使用b〇、bk 及#[b〇,b丨,…,bk-!]而計算該雜湊#[!?,,,bk]。可使用各 種雜湊函數如使用拉賓多項式的雜湊函數,以及其他依據 預先計算之隨機數值表而以電腦而言顯得更有效的雜湊函 數。 在一範例中,可使用依據循環檢查和之一 32位元 24 1360336
Adler雜湊作為指紋之雜湊函數。此程序藉由使用一具有 25 6登錄的一固定表而提供一合理的良好隨機雜湊函數, 該登錄各自為一預先計算的16位元隨機數值。該表被用於 將指纹化位元組轉換為一隨機16位元數值。該32位元雜 湊被分為兩16位元數值suinl及sum2,其於以下程序中被 更新:
suml += table[bk] - table[b〇] sum2 += suml - k* table[b〇] 在另一範例中’ 一種具有循環位移的64位元隨機雜溱 可被用作指紋化的該雜湊函數。一循環位移的週期由該雜 凑值的大小所界定。因此,使用一 64位元雜湊值將該雜湊 之週期設為64。更新該雜湊的程序為: hash = hash Λ ((table[b〇] << 1) | (table[b〇] >> u)) Λ tablefbk] '· hash = (hash << 1) I (hash >> 63); 其中 1 — k % 6 4 而 u = 6 4 _ 1 在另一範例令,可使用其他位移方法以提供指紋化。 直接循環位移產生一有限長度的週期,且由該雜湊值的大 小所界定。其他排列具有較長的週期。舉例來說,循環(1 2 3 0) (5 6 7 8 9 1 〇 1 1 12 1 3 14 4) (16 17 18 19 20 21 15) (23 24 25 26 22) (2 8 29 2 7) (3 1 30)之排列具有一週期長 度4*3*5*7*11 = 4620»可於在每個間隔的起始修補該位置 的操作前使用一右移而計算此示範排列的單—應用。 25 1360336 對於以預定樣式分區之習知技術的分拚 習知分區方法由計算一具有一預定視窗大小k(=48) 的指紋雜湊所決定,並且依據該雜湊位元之一子集合是否 符合一預定樣式而識別分割點。隨著隨機雜湊值,此樣式 亦可為 〇,且該相關子集合也可為該雜湊之前綴。在基本 指令中,此轉換為以下形式之一述詞:
CutPoint(hash) 0 = = (hash & ((1 << c) -1)) > 其中c為待符合的位元數 由於一隨機雜湊函數之一符合可能性為2_°,因而產生 一平均區塊大小C = 2。。然而此程序既不決定該最小亦不 決定該最大區塊大小。若加上一最小區塊長度m,則該平 均區塊大小為:
C = w + 2C 藉由考慮串流si s3及s2s3而得到該預期寬限的一粗 略估計。在si及s2中的分割點可存在於任意位置。由於 該平均區塊長度為C = w + 2。,si及s2中大約(2。/C)2的 最後分割點將超出距離m。這些分割點促成大約2e的寬 限。剩下的1 - (2e /C)2促成約C長度的寬限。因而該預期 寬限約為(2C /C)3 + (1 - (2c/C)2 )*(C/C) = (2c/C)3 + 1-(2e/C)2,其具有一整體最小值m = 2^1,伴隨一數值約為 rss 26 1360336 23/27 = 0.8 5。一更精確分析稍微低估該剩下的1 - (2e /C)2 部分,但也將需要補償s3中距離m内的分割,其將促成一 更高的估計值。 因此,該習知技術的預期寬限約為0.85*C。 於篩選條件分區(新技術)
於篩選條件分區乃依據提供一筛選條件一其為長度/« 樣式之一序列,並將指紋雜湊序列與該篩選條件配對。當 該篩選條件不允許一雜湊序列符合該筛選條件之一前綴與 一後綴時,便可推斷任何兩符合之間的最小距離至少為 /w。一示範篩選條件可從該習知技術中使用的該 CutPoint 述詞中取得,藉由將該首先的/«-1樣式設為: 0 != (hash & ((1 << c) -1)) 而將最後樣式設為:
0 = = (hash & ((1 << c) -1)) 符合此篩選條件的可能性為(1 - ρΓ·1 p,其中户為 2 <。可計算該預期區塊長度為符合一篩選條件之可能性的 倒數(前提為該篩選條件不允許一序列同時符合一前綴與 後綴),因此該示範篩選條件之預期長度為(1 - — /Γ1。 此長度於設定p = l/w時為最小,而其結果約為(e*m)。 該平均寬限約為0.8左右,其可由該些習知技藝人士所證 27 1360336 明。此方法的一替代實施例使用一種直接與原始輸入一同 運作且不使用循環寬限的一樣式。 洤區域录Ui分區(新技術) 於區域最大值分區乃依據選擇為—有限範圍中最大的 分割點位置。在下文十,可使用λ作為該範圍之數值。若 偏移 ,…,〇ffset-l tk 反 〇ffsetJrl, 〇ffset + h 的雜条
值均小於位於0//_sei的雜湊值,便認為該〇乂位置的該 雜湊為一 /1-區域最大值。換句話說,A向左跨以及λ向右 跨的所有位置具有較小的雜湊值。該些習知技藝人士將瞭 解該區域最大值可由區域最小值或任何其他依據度量之比 敗良所取氕{如》最接近中間雜湊值者,、)。
一大小為η之物件的該紕區域最大值可於2*η操作所 限定的時間中被計算,因而計算該組區域最大值的成本接 近或等於依據獨立分區而計算該分割點的成本。使用區域 最大值產生的區塊均具有一對應h的最小大小,其平均大 小約為2h+l。一 CutPoint程序於第8及第9圖中說明,且 如以下所述: 1. 分配長度為h —陣列Μ,其登錄以該記錄 {isMax = false, hash = 0,offset = 0}加以初始 化。每個攔位中的第一登錄(isMax)指出一候 選者是否可為一區域最大值。該第二欄位登錄 (hash)指出與該登錄有關的該雜湊值,並被初 始化為〇(或替代地被初始化為一最大可能雜 ⑧ 28 1360336 湊值)。該登錄中的最後欄位(off set)指出成為 該指紋化物件之候選者的絕對偏移位元組。 2 · 初始化該陣列之偏移最小值及最大值為0。這 些變數指向目前正被使用之陣列的第一及最 後項目。 3· CutPoint(hash, offset)起始於第8圖中的步驟
800並且於該物件的每個偏移被調用以更新]VI 並且傳回一結果指出一特定偏移是否為一分 割點。
藉由於步驟801設定結果=偽而起始該程序。 於步驟 803, 該程序檢查是否 M[max].offset + h+l=〇ffset。如果此條件為 真,便繼續執行步驟804,該步驟執行以下分 配:將結果設為Μ [ m a X ]. i s M a X,且將m a X設 為max-1 %A。隨後繼續執行步驟805。如果步 驟803的情況為偽,便繼續執行步驟805。於 步驟 805 ’ 該程序檢查是否 M[min] .hash>hash。如果該條件為真,則繼續 執行步驟806 ’其中min被設為(min-l)%/i。 繼續執行步驟807’其中M[min]被設為{isMax =false,hash =hash,offset = offset},並繼續步 驟811,其中該計算結果被傳回。 如果步驟805的條件為偽,便繼續執行步驟 8〇8 * 其中該程序確認是否 ⑧ 29 1360336 M[min].hash = hashe如果此條件為真’則繼續 執行步驟807。
若步驟 808的條件為偽,便繼續執行.步驟 809,其中該程序檢查是否min = max。若此條 件為真,則繼續執行步驟810,其中 被設為{isMax = true, hash =hash, offset = offset}。隨後繼續執行步驟811,其中 該計算結果被傳回。 若步驟 809的條件為偽,則繼續執行步驟 811,其中 min被設為(min+l)%/i。隨後回到 步驟805繼續執行》 當CutPoint(hash, offset)傳回真值,情況為位 於offset-Λ-Ι位置的偏移值為一新的分割點。 區域最大值程序之分析 一 η位元組物件藉由呼叫CutP0int η次加以處理,因 而對一特定物件而言最多插入η登錄。每當該循環重複起 始於步驟805時便移除一登錄,因而待刪除之登錄少於ηβ 因此,可對每個登錄輸入一次該處理循環,而該重複之總 數最多為η。此意ia該擔環中在每個對cutp〇ing之呼叫的 平均步驟數稍小於2 ’而計算分割點的步驟數與h無關。 由於該項目之雜凑值形成最小值與最大值間的一降冪 鏈,吾人將暸解最小值與最大值間的平均距離(丨min _ maxl % A)由h之自然對數所決疋。不包含於μ中兩個鄰近登 30 1360336
錄間之偏移的雜湊值小於或等與該兩登錄。此鏈之平均長 度由該循環方程式f(n) = 1 + l/n * Ek < n f(k)所決定。長 度η之一間隔上的最長降冪鏈的平均長度比起始於該最大 項目之位置的最長降冪鏈多1,其中於任意位置找出該最 大項目的機率為l/n。該循環關係具有對應該調和數1^的 一解=1 + % + 1/3 + % +…· + l/n,可藉由將Hn取代至該 方程式中並且執行歸納η而使其有效。1^與η的的自.然對 數成正比。 以模數Α計算最小值及最大值允許Μ之舊間隔的任意 增長,只要該數量間的距離維持於λ中。 Μ之初始值的決定意指可於最初h偏移中產生分割 點。可採用該演算法以避免分割點位於這些最初h偏移。 此程序產生之區塊的預期大小約為2/ί + Ι。從一特定位 置為一分割點的可能性中得到此數目。假設該雜湊具有ni 種不同的可能數值。則該可能性由下列所決定: Σ〇 ^ k < m 1/m (k/m)2h. 使用積分 ίο s x < m 1/m (x/m)2A dx = 1/(2A+1)估計 指出當m夠大時的可能性。 31 1360336 藉由首先簡化該和為下列將可更精確地計算該可能 性: (l/m)2A + 1 Σ〇 , k < m k2h 其使用白弩利數Bk而展開為: (l/m)2A + 1 1/(2Α + 1) Σο ^ k < 2A (2A + l)!/k! (2A+.l-k)!
唯一非0的單數白弩利數為Bi,其對應值為-%。該 雙數白弩利數滿足該方程式: H„(2n) = (-l)"·1 22n-* π2η Β2η / (2η)! 其左式表示該無窮和1 + (1/2)2η + (1/3)2η +…,其於 η為一般偶數時會非常接近i。
由該積分式可看出當m遠大於Α時’除了第一項之外 的所有項均可被忽略◊其結果為介於〇與1之間的一常數 乘上一正比於W1 /mk的項。該第一項(其中B〇 = l )簡化 為1/UA+1)(該第二項為]/(2m),該第三項為Λ/(6ιη2))。 對於該預期寬限的—粗略估計而言’考慮串流8丨33及 • 一 % W取说才割點可出坭於π也m置。由 平均區塊長度約為2A +1,因而前1/4的最後分割點將位 與h兩者中的距離,内。其將提供約7/8A的分割韵 32 1360336 另外14的情況中’ 一分割點將位於距離A中而其餘會在距 離A外。這些將提供約的分割點,Si與S2中的其餘% 的最後分割點的距離將於大於A。因而該預期寬限將約為% * 7/8 + >/2 * 3/4 + % * % = 0.66。 因此’本發明之獨立分區方法的預期寬限為 0.66*C,其為該習知技術(〇.85*C)之一改進。
有另一種識別分割點的方式,其平均而言需要執行較 少的指令,而使用最正比於的空間,或一般而言為& Λ。 前述程序插入登錄於一長度η之串流中的每個位置 Ο..η-l。該替代程序的基本概念為僅於在長度h之間隔中 遭遇一升幂鍵之項目時更新。吾人觀察出平均而言在每個 間隔中僅有In A的此類更新。再者,藉由比較兩個長度六 之連續間隔中的區域最大值便可判定該兩區域最大值各自 是否亦可為一 Λ區域最大值。該替代程序具有一特性;其 需要藉由將該串流來回移動於h大小之區塊中,每個區塊 以相反方向被越過。
在該替代程序中(見第10及11圖),簡單假設一雜湊 串流被作為一序列。對每個後續之長度;j呼叫該次常式 C«i尸οίηί (於該圖中展開為“界限”)。其傳回被判定為分割 點的零或一偏移。僅有In(h)的//^eri呼叫將通過該第一測 試。 藉由測試位於該偏移之雜湊值對照目前A中最大之登 錄而達成插入之A中。 更新A[k]及B[k].isMax的該循環可被最佳化,因而一 ⑧ 33 1360336
般於該循環主體中僅執行一測試。於兩循環中處理 B[l].hash <= A[k].hash and B[l].isMax 之情況,該第一擔 環對照B[l]· hash檢查該雜湊值直到其不再為較小的,而該 第二循環更新A[k]。可使用僅於對B[l].isMax之一更新後 更新A[k]的一循環而處理該其他情形》
每個對CMiPoz/ji的呼叫平均需要InA記憶體寫入A, 並伴隨與找出最大值有關之迴圈計算外提(loop hoisting ) Α + 1η Λ比較。對A[k].isMax的最後更新可藉由二進位搜尋 或藉由從索引〇開始在平均最多log ln力步雜中來回移動 B而被執行》每個對的呼叫也需要於正更新之視 窗中的/aw位置重新計算該循環雜湊。此需要與該循環雜 湊視窗之大小同樣多的步驟。 蔓進分區澝荨法66已知優點 該最小區塊大小被產生於前述該區域最大值及該篩選 方法兩者之中。該傳統應用需要該最小區塊大小被獨立地 提供一額外參數》 該依據區域最大值(或數學)的方法產生可預見的較 佳見限估計,其轉化為於該網路上的進一步壓縮。該篩選 方法亦較該傳統方法產生較佳的寬限效能。 該兩種方法均具有分割點的一區域特性。s3中超出界 限的所有分割點將為串流sls3與s2s3兩者的分割點(換 句話說,考慮串流Si S3,如果p為2 |sl卜界限的一位置且 P為s 1 s3中的一分割點,則其亦為s2s3中的一分割點。該 ⑧ 34 1360336 同一特性也存在於另一方向中(對稱的),如果P為 中的一分割點,則其亦為s 1S 3中的分割點)。這並不 於傳統方法中’其中分割點需超過某個最小區塊大小 利地衝突。 卷代數學函數 雖然前述分區程序描述一種使用一區域最大值計 找出分割點的方法,但本發明並非如此受限的。任何 函數可被用於判定可能的分割點。藉由求出位於與一 分割點有關之界限視窗中的雜湊值而可求出每個可能 割點。該雜湊值之求取由數學函數所完成,其至少包 下其中之一:找出該界限中的一最大值'找出該界限 , 一最小值、求取雜湊值之間的一差異、求取雜湊值之 異並比較該結果與一任意常數、以及某些其他數學或 函數。 - 前述關於區域最大值所描述之特定數學函數為一 ^ 位述詞。對於户為該物件中的一偏移的情況而 對於所有k,若hashp > hashk ,則户被選為一分割點 中 p horizon Sk<p,〇rp<k:S p + horizon。然而,在 離本發明之精神的情況下,該二進位術語>可被任何 數學函數所取代》 前述說明書、範例以及資料提供製造及使用本發 結構的一完全描述。由於在不偏離本發明之精神及範 情況下可構成本發明之許多實施例,因此本發明存在 s2s3 存在 將不 算而 數學 考慮 的分 含以 中的 一差 統計 二進 言, ’其 不偏 其他 明之 圍的 於以 35 1360336 1 02網路 200, 2 1 8電腦裝置 • 202處理單元 2 04系統記憶體 205作業系統 206程式模組 207程式資料
208底線 209可移除儲存 210不可移除儲存 212輸入裝置 214輸出裝置 2 1 6通信連線 400-420, 450-456, 501-520, 551-556, 800-811 步驟 37

Claims (1)

  1. Γ360336 100. 10: on 年月日修i替換頁 第啊(D 9 W號專科案【5S〇年【〇別多正 :拾臟範圍 1. 一種在一網路上於一區域裝置及一遠端裝置間更新物 件的系統,其至少包含: 一遠端裝置,其係經設置來促進在該網路上之更新,其 中該遠端裝置包含: 一第一網路連接裝置,其係經設置來促進在該網路 上之通訊;
    一第一資料儲存,其係經設置用於儲存一第一物 件;及 一第一處理器,其係耦接至該第一資料儲存及該第 一網路連接裝置,其中該第一處理器經組態用以: 在該遠端裝置上的一第一物件之每個位元组偏移 計算一第一指紋函數; 依據該第一指紋函數而分區該遠端裝置上的該第 一物件;
    計算與該遠端裝置上之該第一物件有關之各區塊 的一遠端簽章; 在該遠端裝置上產生一遠端簽章以及分區列表,其 中該遠端簽章及分區長度列表與該第一物件有關; 該遠端裝置傳送該遠端簽章以及分區列表至該網 路; 該遠端裝置自該網路接收一請求來傳送至少一經 更新物件區塊;及 38 Γ360336 1fift 10 ,Q^- 年月日修jE替換頁 在該網路上傳送該至少一經更新物件區塊;及 一區域裝置,其係可經操作地與該遠端裝置進行通訊, 用以促進在該網路上更新物件,其中該區域裝置包含: 一第二網路連接裝置,其係經設置來促進在該網路 上之通訊; 一第二資料儲存,其係經設置用於儲存一第二物 件;及
    一第二處理器,其係耦接至該第二資料儲存及該第 二網路連接裝置,其中該第二處理器經組態用以: 在該區域裝置上的該第二物件之每個位元組偏移 計算一第二指紋函數,其中該第一與第二物件彼此間係 相互關聯,且該第一指紋函數與該第二指紋函數相符; 依據該第二指紋函數以分區該區域裝置上的該第 二物件;其中在該遠端裝置上分區該第一物件與在該區 域裝置上分區該第二物件相符;
    計算與該區域裝置上的第二物件有關之各區塊的 一區域簽章,其中計算該區域簽章與計算該遠端簽章相 符; 產生該區域裝置上的一區域簽章及區塊長度列 表;其中該區域簽章及區塊長度列表與該第二物件有 關; 協調於該網路上自該遠端裝置分區傳輸至該區域 裝置的該遠端簽章及區塊長度列表,以最小化用以傳輸 39 Γ360336 mn in 年月日修3L替換頁 該遠端簽章及區塊長度列表至該區域裝置時所使用的 頻寬; 藉由將該區域簽章及區塊長度列表與該區域裝置 上的遠端簽章及區塊長度列表比較以識別該第一物件 與該第二物件間的差異;
    在該第一物件及該第二物件的差異被該區域裝置 所識別時向該遠端裝置請求傳輸至少一更新物件區塊; 接收來自該遠端裝置之該至少一更新物件區塊;及 以該至少一更新物件區塊重組該區域裝置上的該 第一物件之一複本。 2.如申請專利範圍第1項所述之系統,其中該第二處理器 另經組態以向該遠端裝置請求該第一物件之一更新。
    3 .如申請專利範圍第1項所述之系統,其中該第一處理器 另經組態以向該區域裝置請求該第一物件之一更新。 4 ·如申請專利範圍第1項所述之系統,其中傳送該遠端簽 章及區塊長度列表包含自該遠端裝置傳送該遠端簽章 及區塊長度列表之至少一部份至該區域裝置。 5 ·如申請專利範圍第1項所述之系統,其中該區域裝置及 該遠端裝置中之一者係為一客戶端,而該區域裝置及遠 40 Γ360336 mn in η 3 一丨 年月日修il替換頁 端裝置之另一者係為一伺服器。
    6.如申請專利範圍第1項所述之系统,其中該網路為以下 群組之至少其中之一成員:一直接有線連線、一平行 埠、一序列埠、一 USB埠、一 IEEE 1 394埠、一無線 連線、一紅外線埠、一藍牙埠、一有線網路、一無線網 路、一區域網路、一廣域網路、一超廣域網路、一網際 網路、一内部網路以及一外部網路。 7.如申請專利範圍第1項所述之系統,其t計算與該區域 裝置上的該第二物件有關之各區塊的該區域簽章包含 施加於該區域裝置上的區塊的一強雜湊函數。 8 ·如申請專利範圍第〗項所述之系統,其甲識别該區域裝 置上該第一物件與該第二物件之差異包含:
    將該遠端簽章及區塊長度列表與該區域簽章及區 塊長度列表比較; 識別該遠端簽章及區塊長度列表與該區域簽章及 區塊長度列表彼此間的至少一差異; 映射該至少一差異至該遠端簽章及區塊長度列 表;及 從該至少一差異與該遠端簽章及區塊長度列表彼 此間的映射識別該至少一更新物件區塊。 41 Γ360336 100. 10. 0 3 年月日修iL替ϋ 9.如申請專利範圍第1項所述之系統,其令用於在該遠端 裝置上該第一物件之每個位元组偏移計算該第一指紋 函數包含: 提供一小型視窗,該小型視窗係在與該第一物件有 關之各位元組位置附近被參照;及 使用位於各位元組位置之該小型視窗來產生一指
    紋。
    1 0 ·如申請專利範圍第9項所述之系統,其中該第一處理器 另經組態以依據至少以下群組其中之一成員而調整與 該小型視窗有關之視窗大小:與該第一物件有關之一資 料類型、與該第二物件有關之一資料類型、與該遠端裝 置有關之一環境限制、與該區域裝置有關之環境限制、 該網路之特性、與該第一物件有關之一使用模型、以及 與該第二物件有關之一使用模型。 1 1 ·如申請專利範圍第1項所述之系統,其中該第一指紋函 數至少包含以下群組其中之一成員:使用一拉賓多項式 (Rabin polynomial)之一雜凑函數、一循環式移位雜 湊函數、一 32位元愛德勒雜湊函數。 1 2.如申請專利範圍第1項所述之系統,其中將該遠端裝置 42 1360336 ν.ί〇 in η rt 年月日修正替換頁 上的該第一物件分區包含判定至少一分區參數。 13.如申請專利範圍第12項所述之系統,其中用於分區該 遠端裝置上的該第一物件更包含: 從該至少一分區參數判定一分區界限; 計算該第一物件中之各位置的雜湊值;
    施加一數學函數至位於該第一物件中的各位置附 近的分區界限中的雜湊值; 於該數學函數被滿足時指定至少一分割點及分區 邊界;及 以該指定分割點分區該第一物件。 1 4.如申請專利範圍第1 3項所述之系統,其中該數學函數 包含至少以下群組其中之一成員:判定該界限中的一最 大值、判定該界限中的一最小值、以及評估該界限中雜
    1 5 ·如申請專利範圍第1 2項所述之系統,其中分區該遠端 裝置上的該第一物件包含: 自該至少一分區參數來判定一界限、一觸發值以及 一其他觸發列表; 於該第一物件中的各位置計算雜湊值; 施加一數學函數於各所計算的雜湊值; 43 1360336 400,. 1-0^3-年月日修正替換頁 於該數學函數獲得一特定偏移之該觸發值並獲 該界限所賦予之所有對應偏移之其他觸發時指定至 一分割點及分區邊界;及 以該指定分割點分區該第一物件。 得 少
    16.如申請專利範圍第13項所述之系統,其中該數學函 包含以下群組其中之一成員:映射雜湊值至一布林數 的一述語、以及分區雜湊值為一合適小型數域的另一 學函數。
    1 7.如申請專利範圍第1 2項所述之系統,其中該第二處 器另經組態以依據以下群組至少其中之一成員而調 該至少一分區參數:與該第一物件有關之一資料類型 與該第二物件有關之一資料類型、與該遠端裝置有關 一環境限制、與該區域裝置有關之一環境限制、該網 之特性、與該第一物件有關之一使用模型、以及與該 二物件有關之一使用模型。 1 8.如申請專利範圍第1項所述之系統,其中該第一處理 另經組態以: 回應接收的該至少一更新物件區塊之傳輸請求 從該遠端裝置之該第二物件摘取該至少一更新物件 塊。 數 值 數 理 整 、 之 路 第 器 而 區 44 1360336 100. 10. 0 3 年月日修正替換頁 19.如申請專利範圍第1項所述之系統,其中該第二處理器 另經组態以: 以該至少一更新物件區塊組合該區域裝置上的一 更新第一物件。
    20.如申請專利範圍第19項所述之系統,其中組合該更新 第一物件被進一步安排使得該更新第一物件包括該第 一物件之至少一未改變區塊。 21.如申請專利範圍第1項所述之系統,其中其中該第一處 理器另經組態以: 分區該遠端簽章及區塊長度列表以提供一分區遠 端簽章及區塊長度列表;
    計算與該分區遠端簽章及區塊長度列表有關的各 區塊的一遞迴遠端簽章; 以該遞迴遠端簽章產生一遞迴遠端簽章以及區塊 長度列表; 分區該區域裝置上的該區域簽章及區塊長度列 表,其中分區該區域簽章及區塊長度列表與分區該遠端 簽章及區塊長度列表相符; 其中該第二處理器另經組態以 計算與該分區區域簽章及區塊長度列表有關之各 45 Γ360336
    100. 10- 0 3 年月日修正替換頁 區塊的一遞迴區域簽章,其中計算該遞迴區域 算該遞迴遠端簽章相符; 以該遞迴區域簽章與該分區區域簽章與 度列表而產生該區域裝置上的一遞迴區域簽 長度列表,其中產生該遞迴區域簽章及區塊長 產生該遞迴遠端簽章及區塊長度列表相符; 於該網路上協調自該遠端裝置傳輸至該 的該遞迴遠端簽章及區塊長度列表以最小化 迴遠端簽章與區塊長度列表至該區域裝置時 頻寬;及 識別該遞迴遠端簽章及區塊長度列表與 置上的遞迴區域簽章及區塊長度列表之差異; 於該遞迴遠端簽章與區塊長度列表及該 簽章與區塊長度列表間的差異被該區域裝置 向該遠端裝置請求傳輸至少一更新物件區塊。 2 2.如申請專利範圍第2 1項所述之系統,其中協 端裝置傳输該遞迴遠端簽章及區塊長度列表 裝置至少包含:於該網路上自該遠端裝置送出 端簽章及區塊長度列表之至少一部份至該區域 23.如申請專利範圍第2 1項所述之系統,其中分 裝置之遠端簽章及區塊長度列表包含: 簽章與計 該區塊長 章及區塊 度列表與 區域裝置 傳送該遞 所使用的 該區域裝 遞迴區域 所識別時 調自該遠 至該區域 該遞迴遠 裝置。 區該遠端 46 Γ360336 100. 10. 0 3 年月日修正替換頁 於該遠端裝置之該遠端簽章及區塊長度列表之每 個位元組偏移計算一第三指纹函數;及 依據該第三指紋函數來分區該遠端裝置上的該遠 端簽章及區塊長度列表以提供該分區遠端簽章及區塊 長度列表。
    2 4.如申請專利範圍第23項所述之系統,其中用於分區該 區域裝置上的區域簽章及區塊長度列表包含: 於該區域裝置之該區域簽章及區塊長度列表之每 個位元組偏移計算一第四指紋函數,其中該第四指紋函 數與該第三指紋函數相符;及
    依據該第四指紋函數來分區該區域裝置上的該區 域簽章及區塊長度列表以提供該分區區域簽章及區塊 長度列表,其中用於分區該區域裝置上的區域簽章及區 塊長度列表的構件與用於分區該遠端裝置上的遠端簽 章及區塊長度列表的構件相符。 2 5.如申請專利範圍第2 4項所述之系統,其中計算該第三 指紋函數以及分區該遠端裝置上的遠端簽章及區塊長 度列表係使用一與用於計算該第一指紋函數以及分區 該遠端裝置上的該第一物件的不同之方法。 2 6 ·如申請專利範圍第2 3項所述之系統,其中計算該第三 47 1360336 mo. ίο. 〇3 年月日修正替換頁 指纹函數以及分區該遠端裝置上的遠端簽章及區塊長 度列表係使用一與用於計算該第一指紋函數件以及用 於分區該遠端裝置上的該第一物件的相同之方法。 27.如申請專利範圍第24項所述之系統,其中於該遠端裝 置上的該遠端簽章及區塊長度列表之每個位元組偏移 計算該第三指紋函數包含:
    提供在與該遠端簽章及區塊長度列表有關之每個 位元組位置附近被參照之一小型視窗;及 使用位於各位元組位置之該小型視窗來產生一指 紋。
    28.如申請專利範圍第27項所述之系統,其中該第一處理 器另經組態以:依據至少以下群組其中之一成員來調整 與該小型視窗有關之視窗大小:與該第一物件有關之一 資料類型、與該第二物件有關之一資料類型、與該遠端 裝置有關之一環境限制、與該區域裝置有關之環境限 制、該網路之特性、與該第一物件有關之一使用模型、 以及與該第二物件有關之一使用模型。 2 9 ·如申請專利範圍第2 3項所述之系統,其中該第三指紋 函數至少包含以下群組其中之一成員:使用一拉賓多項 式之一雜湊函數、一循環式移位雜湊函數、一 32位元 48 1360336 ιοο· m 〇3 • 年月曰修正替換頁 愛德勒雜湊函數、及具有循環位移的64位元隨機雜凑^ 30.如申請專利範圍第21項所述之系統,其中分區該遠端 裝置上的該遠端簽章及區塊長度列表包含判定至少一 遞迴分區參數。
    3 1.如申請專利範圍第3 0項所述之系統,其中分區該遠端 裝置上的該遠端簽章及區塊長度列表更包含: 從該至少一遞迴分區參數來判定一遞迴分區界限; 計算該遠端簽章及區塊長度列表内的各位置的雜 凑值; 施加一數學函數至位於該遠端簽章及區塊長度列 表内的各位置附近之遞迴分區界限中的雜湊值; 於該數學函數被滿足時指定該分區界限中的分割 點;及 以該指定分割點分區該遠端簽章及區塊長度列表。 32.如申請專利範圍第30項所述之系統,其中分區該遠端 裝置上的該遠端簽章及區塊長度列表更包含: 自該至少一遞迴分區參數來判定一遞迴界限、一遞 迴觸發值以及一其他遞迴觸發列表; 於該遠端簽章及區塊長度列表中的各位置計算雜 凑值; 49 Γ360336 ιοο· m 〇3 年月日修正替換頁 施加一數學函數於各已計算的雜凑值; 於該數學函數獲得一特定偏移之該遞迴觸發值並 獲得該遞迴界限所賦予之所有對應偏移之其他遞迴觸 發時指定至少一分割點及分區邊界;及 以該指定分割點分區該遠端簽章及區塊長度列表。
    33.如申請專利範圍第31項所述之系統,其中該數學函數 包含以下群组其中之一成員:映射雜凑值至一布林數值 的一述語、以及分區雜湊值為一合適小型數域的任何其 他數學函數。 3 4.如申請專利範圍第3 1項所述之系統,其中該數學函數 至少包含以下群組其中之一成員:判定該界限中的一最 大值、判定該界限中的一最小值、評估該界限中雜湊值 間的差異、總結該界限中的雜湊值、以及計算該界限中 雜湊值.的一平均值。 3 5 .如申請專利範圍第3 2項所述之系統,其中該第一處理 器更經組態以依據以下群組至少其中之一成員而調整 該至少一遞迴分區參數:與該第一物件有關之一資料類 型、與該第二物件有關之一資料類型、與該遠端裝置有 關之一環境限制、與該區域裝置有關之一環境限制、該 網路之特性、與該第一物件有關之一使用模型、以及與 50 1360336 100. 10. 0 3 年月日修正替換頁 該第二物件有關之一使用模型。 36.如申請專利範圍第28項所述之系統,其中計算與該遠 端裝置上的分區遠端簽章及區塊長度列表有關之各簽 章區塊的遞迴遠端簽章另包含施加一強雜湊函數至該 遠端裝置上的該簽章區塊。
    3 7.如申請專利範圍第2 1項所述之系統,其中該第一處理 器另經组態以: 回應接收的該至少一更新簽章區塊之傳輸請求而 從該遠端裝置之該遠端簽章及區塊長度列表摘取該至 少一更新簽章區塊。
    3 8.如申請專利範圍第3 7項所述之系統,其中組合該區域 簽章及區塊長度列表另包含提供該區域裝置上的該遠 端簽章及區塊長度列表的一新複本,其中該遠端簽章及 區塊長度列表之新複本包括至少一更新的簽章區塊。 3 9.如申請專利範圍第2 1項所述之系統,其中該第二處理 器另經組態以: 以該區域裝置自該網路接收該至少一更新簽章區 塊;及 以該至少一簽章物件區塊組合該區域裝置上的該 51 Γ360336
    100. 10_Q3_ 年月日修正替換頁 遠端簽章及區塊長度列表之一複本。 4 0.如申請專利範圍第37項所述之系統,其中該遠端簽 及區塊長度列表包括來自該區域簽章及區塊長度列 之至少一未改變區塊。 4 1.如申請專利範圍第2 1項所述之系統,其中識別該遞 遠端簽章及區塊長度列表與該區域裝置上的該區域 章及區塊長度列奉的差異包含: 比較該遞迴遠端簽章及區塊長度列表與該遞迴 域簽章及區塊長度列表; 識別與該遞迴遠端簽章及區塊長度列表與該遞 區域簽章及區塊長度列表彼此間的一差異有關的至 一簽章區塊; 映射該至少一簽章區塊至該遠端簽章及區塊長 列表;及 從該至少一簽章區塊與該遠端簽章及區塊長度 表彼此間的映射識別該至少一更新簽章區塊。 42.如申請專利範圍第1項所述之系統,其十於該網路上 調自該遠端裝置分區傳輸至該區域裝置的該遠端簽 及區塊長度列表另包含: 依據以下群組至少其中之一成員來判定遞迴處 章 表 迴 簽 迴 少 度 列 協 章 理 52 1360336 100. 10. 0 3 年月日修正替換頁 之一數量的重複:與該第一物件有關之一資料大小、與 該第二物件有關之一資料大小、與該遠端裝置有關之一 環境限制、以及與該區域裝置有關之一環境限制、該網 路之特性、與該第一物件有關之一使用模型、與該第二 物件有關之一使用模型、與該第一物件有關之數個區塊 簽章、以及與該分區遠端簽章及區塊長度物件有關之數 個區塊簽章。 43 .如申請專利範圍第42項所述之系統,其中該第一處理 器及該第二處理器另經組態以執行一遞迴程序,用以處 理一簽章及區塊長度列表,其包含:
    分區該簽章及區塊長度列表以提供一分區簽章 及區塊長度列表; 計算與該分區簽章及區塊長度列表有關之各區 塊的一遞迴簽章; 以該遞迴簽章及該分區簽章及區塊長度列表產 生一遞迴簽章及區塊長度列表; 於需要額外重複以供遞迴處理時將該簽章及區 塊長度列表初始化為遞迴簽章及區塊長度列表;及 於該遞迴程序已完成該重複數量時傳回該遞迴 53 1360336 100. 10. 0 3 年月日修正替換頁' 簽章及區塊長度列表;
    其中該第一處理器係另經組態以藉由傳送該遠端 簽章及區塊長度列表至該遞迴程序作為該簽章及區塊 長度列表並且藉由自該遞迴程序傳回該遞迴遠端簽章 及區塊長度列表而以該遞迴程序於該遠端裝置上處理 該遠端簽章及區塊長度列表;及 其中該第二處理器係另經組態以藉由傳送該區域簽章及區 塊長度列表至該遞迴程序作為該簽章及區塊長度列表並且 藉由自該遞迴程序傳回該遞迴區域簽章及區塊長度列表而 以該遞迴程序於該區域裝置上處理該區域簽章及區塊長度 列表。 44.如申請專利範圍第1項所述之系統,其中產生該遠端裝 置上的該遠端簽章及區塊長度列表另包含簡潔地將該 遠端簽章及區塊長度列表編碼。
    4 5.如申請專利範圍第1項所述之系統,其中產生該區域裝 置上的該區域簽章及區塊長度列表另包含簡潔地將該 區域簽章及區塊長度列表編碼。 4 6.如申請專利範圍第2 1項所述之系統,其中產生該遠端 裝置上的該遞迴遠端簽章及區塊長度列表另包含簡潔 地將該遞迴遠端簽章及區塊長度列表編碼。 54 Γ360336 100. 10. 0 3 年月日修正替換頁 47.如申請專利範圍第2 1項所述之系統,其中產生該區域 裝置上的該遞迴區域簽章及區塊長度列表另包含簡潔 地將該遞迴區域簽章及區塊長度列表編碼。 55 1360336
    -ieOH ο:-θ-β- 年月日修正替換頁 第料uom(號專利案^年(ύ月修正 100
    第1圖 Γ360336 M,J£L〇Jl__ • 年月日修正替換頁 第號專利案⑼年1明修正
    209 210 212 214 216 第2圖 1360336
    分區〇Λ ; \ 請未物/土〇;i (S分區〇B —.1_ S;2Ai .LcnA: 5 傳送簽章及區塊 Sig;.,. SigA2. LcnA2 ---------·*(___________j 1 @長度列表 Sig:l2 ·Ι-^π;1: Ng.U 丄enA3 J 請求區塊 SigA4 ,LenA4 L----------J *; — ► SigA,,LenA5 ! : [@傳送區塊 Sigf^ ,1 .on)1; 物件〇A ¢)重建〇ii 物件Ob 少. 裝置Λ 裝置li 第3Α圖
    @分區簽章及區塊長度列表Λ K坤Λ
    、重新組合的簽章及3 簽章及區塊 長度列表A U區瑰長度列表B 裝置A 傳送遞迴簽章及區塊 (jj)長度列表_ @請求遞迴簽章區塊 @傳送遞迴簽章區塊 ^^分區簽章及區塊 ί ϋ長度列表Β ; ΜΙ^ϋΜΜ 團 RSigB: 1 c 簽章ii塊 長度列表Β ΙΪ"β 第3Β圖 1360336
    裝置Λ 第4Α圖 裝置Β 1360336
    第4B圖 1360336 從步驟45: 從步驟40]
    第5A圖 ;131360336
    组合簽章
    設定SKK'L=空
    1360336
    原始物件 第一層SHAs 苐二層SHAs 9.1GB 42MB 395KB —- .
    3M區塊 33K
    Chunks 第6圖 1360336 VHS -dif x〇j >p3b-i _ VHS i VHS VHS 60P UM〇Jq Aze_ 9qra>0 jgp UMOJq-1 si -OU-UPIP -™-Aze°s •ωζ」9Λ0 jguldii xoj 9- m<HS;<-HS =SEMroop UMOJq-1,, •:31πε-λζ-0-. '-sdujnf.' 'xo/-g:5b 3LJi -.-.. .7..'、. r"o1;:rq 一 C λζΒ""ΛΟ···' sraM Bop iojq-1 a-ou-upip ---Azej os .e^fc>0 6uldif--- i The quick fo jumped:: _ ' . :-./:1 .over therlaz; brpwadog. .Λ.1Λυρ!ρ .^lJ-tlos ?.seM#'p;9ljl ,..vE!q 么 λ〇 6u'idEni.x^:-.(ux:J, H.1,··:;.·:: Bl: ΐι u. VHS Zl· VHS ει i ?- VHS 8001360336
    起始分I:點(雜凑.谆移I
    结果=為 801
    1360336 structure Entry I j var isMax as 巳⑵丨ean = false var hash as Integer = 0 var offset as Integer = C class LocalMaxCut h as Integer var min as Integer = 0 var max as Integer =〇 var M as Array of entry = new Entry[h]
    CutPoint(hash as Integer, offset as Integer) as Boolean var result = false step if M[max].offset + h + 1 = offset then result := M[max].isMax max := (max+1) mod h step while true do step step if hash > hash then step min := (min-1) mod h step
    M[min] := Entry(false, hash, offset) return result if M[min].hash = hash then M[min] := Entry(false, hash, offset) return result if M[min].hash < hash and min = max then M[min] := Entry(true, hash, offset) return result step 第9圖 structure Entry var offset as Integer = C var .sMax as Boo丨ean = false var hash as Integer = Q class LocalMaxCut horizon as Integer var hashes as Seq of Integer var k as Integer = 0 var I as Integer = 0 var A as Array of Entry = new Entry[honzon] var 巳 as Array of Entry = new Entry[hc「izon] CutPoints() as Seq of Integer var cuts as Seq of Integer =[] for window = 0 to Length(hashes)/horizon do step let first = window^horizon let last = min((window+1)*horizon,Length(hashes)))-1 cuts := cuts + CutPoint(first, last) return cuts CutPoi门t(first as Integer last as 丨ntege「)as Seq of Integer step // Initialize A with the first entry at the offset k:=0 A[0] := Entry(last,true,hashes[last]) last := last -1 step // Update A[k] in the interval up to B[l].s honzon while last > B[l].offset + horizon do step Insert(last) last := last - 1 step II Update A[k] and B[l] in the remaining interval while last >= first do step Insert(last) if B[l].hash <= hashes[iast] then 巳[l].isMax := false last := last -1 step // determine whether A['k] is a cuipomt w丨th respect ίο B A[k].isMax := A[k].isMax and forall j in {0. I} holds (B[j].offset + horizon < A[k].offset or B[j].hash < A[k].hash) step " Set 巳 ΐ〇 A for the next round and return cut—point B, I := A, k 第10圖 return if B[l].isMax then [B[l].offset] else [] 1360336
    class LocalMaxCut lnsert(offset as Integer) if hashes[offset] >= A[k].hash then if hashes[offset] = A[k].hash then // duphcaied hashes within distance // or’honzorT are not mayimaL A[k].isMax := false else A[k+1] ;= Entry(offset, true, hashes[offset])
TW094107741A 2004-04-15 2005-03-14 Efficient algorithm and protocol for remote differ TWI360336B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/825,735 US7555531B2 (en) 2004-04-15 2004-04-15 Efficient algorithm and protocol for remote differential compression

Publications (2)

Publication Number Publication Date
TW200537881A TW200537881A (en) 2005-11-16
TWI360336B true TWI360336B (en) 2012-03-11

Family

ID=34939140

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094107741A TWI360336B (en) 2004-04-15 2005-03-14 Efficient algorithm and protocol for remote differ

Country Status (18)

Country Link
US (1) US7555531B2 (zh)
EP (2) EP1587007A3 (zh)
JP (1) JP4796315B2 (zh)
KR (1) KR100922674B1 (zh)
CN (2) CN102170455B (zh)
AU (1) AU2005201386B2 (zh)
BR (1) BRPI0501166A (zh)
CA (1) CA2500894C (zh)
CO (1) CO5680121A1 (zh)
IL (1) IL167467A (zh)
MX (1) MXPA05002949A (zh)
MY (1) MY144798A (zh)
NO (1) NO20051344L (zh)
NZ (1) NZ538839A (zh)
RU (1) RU2382511C2 (zh)
SG (1) SG116576A1 (zh)
TW (1) TWI360336B (zh)
ZA (1) ZA200502115B (zh)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047855A1 (en) * 2004-05-13 2006-03-02 Microsoft Corporation Efficient chunking algorithm
US7555531B2 (en) 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US20050262167A1 (en) * 2004-05-13 2005-11-24 Microsoft Corporation Efficient algorithm and protocol for remote differential compression on a local device
US20050256974A1 (en) * 2004-05-13 2005-11-17 Microsoft Corporation Efficient algorithm and protocol for remote differential compression on a remote device
US8376855B2 (en) 2004-06-28 2013-02-19 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US8870639B2 (en) 2004-06-28 2014-10-28 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US10226698B1 (en) 2004-07-14 2019-03-12 Winview, Inc. Game of skill played by remote participants utilizing wireless devices in connection with a common game event
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US8073926B2 (en) * 2005-01-07 2011-12-06 Microsoft Corporation Virtual machine image server
US20070094348A1 (en) * 2005-01-07 2007-04-26 Microsoft Corporation BITS/RDC integration and BITS enhancements
US7849462B2 (en) * 2005-01-07 2010-12-07 Microsoft Corporation Image server
US20060184784A1 (en) * 2005-02-16 2006-08-17 Yosi Shani Method for secure transference of data
US20060277322A1 (en) * 2005-06-03 2006-12-07 Nokia Corporation System and method for implementing reference-based electronic mail compression
US10721543B2 (en) 2005-06-20 2020-07-21 Winview, Inc. Method of and system for managing client resources and assets for activities on computing devices
EP1904196A2 (en) 2005-06-20 2008-04-02 Airplay Network, Inc. Method of and system for managing client resources and assets for activities on computing devices
US20070070999A1 (en) * 2005-08-02 2007-03-29 Black Jeffrey T Synchronization of historical data without retransmission
US8149530B1 (en) 2006-04-12 2012-04-03 Winview, Inc. Methodology for equalizing systemic latencies in television reception in connection with games of skill played in connection with live television programming
US8705195B2 (en) 2006-04-12 2014-04-22 Winview, Inc. Synchronized gaming and programming
US9919210B2 (en) 2005-10-03 2018-03-20 Winview, Inc. Synchronized gaming and programming
US9511287B2 (en) 2005-10-03 2016-12-06 Winview, Inc. Cellular phone games based upon television archives
US9056251B2 (en) 2006-01-10 2015-06-16 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US8002618B1 (en) 2006-01-10 2011-08-23 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US10556183B2 (en) 2006-01-10 2020-02-11 Winview, Inc. Method of and system for conducting multiple contest of skill with a single performance
US20070226298A1 (en) * 2006-03-24 2007-09-27 Sap Ag. Methods and systems providing metadata in service signatures
US11082746B2 (en) 2006-04-12 2021-08-03 Winview, Inc. Synchronized gaming and programming
KR101381551B1 (ko) 2006-05-05 2014-04-11 하이버 인크 그룹 기반의 완료 및 증분 컴퓨터 파일 백업 시스템, 프로세스 및 장치
US7617322B2 (en) * 2006-09-29 2009-11-10 Microsoft Corporation Secure peer-to-peer cache sharing
US7844581B2 (en) * 2006-12-01 2010-11-30 Nec Laboratories America, Inc. Methods and systems for data management using multiple selection criteria
US8214517B2 (en) * 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US7954008B2 (en) * 2007-01-15 2011-05-31 Microsoft Corporation Objective assessment of application crashes from a customer environment
CN103516725B (zh) * 2007-03-12 2017-01-11 思杰系统有限公司 用于使用压缩历史来改进网络性能的系统和方法
US8255570B2 (en) 2007-03-12 2012-08-28 Citrix Systems, Inc. Systems and methods of compression history expiration and synchronization
AU2012203797B2 (en) * 2007-03-12 2015-05-07 Citrix Systems, Inc. Systems and methods for using compression histories to improve network performance
US7460038B2 (en) 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US7532134B2 (en) 2007-03-12 2009-05-12 Citrix Systems, Inc. Systems and methods for sharing compression histories between multiple devices
US7827237B2 (en) 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US7865585B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US7619545B2 (en) 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US8819288B2 (en) 2007-09-14 2014-08-26 Microsoft Corporation Optimized data stream compression using data-dependent chunking
US8813112B1 (en) 2007-10-23 2014-08-19 Winview, Inc. Method of and apparatus for utilizing SMS while running an application on a mobile device controlling a viewer's participation with a broadcast
US8200969B2 (en) * 2008-01-31 2012-06-12 Hewlett-Packard Development Company, L.P. Data verification by challenge
US8375396B2 (en) * 2008-01-31 2013-02-12 Hewlett-Packard Development Company, L.P. Backup procedure with transparent load balancing
WO2009108579A2 (en) 2008-02-26 2009-09-03 Vmware, Inc. Extending server-based desktop virtual machine architecture to client machines
JP2009245089A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 分散オブジェクト・プログラム及びレプリケーション処理方法
FR2929778B1 (fr) * 2008-04-07 2012-05-04 Canon Kk Procedes et dispositifs de codage et de decodage binaire iteratif pour documents de type xml.
WO2009132261A1 (en) 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor
US8527482B2 (en) * 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
US8255806B2 (en) * 2008-09-15 2012-08-28 Vmware, Inc. Unified secure virtual machine player and remote desktop client
US9716918B1 (en) 2008-11-10 2017-07-25 Winview, Inc. Interactive advertising system
US8380663B2 (en) * 2008-12-17 2013-02-19 Sybase, Inc. Data integrity in a database environment through background synchronization
US8977765B1 (en) * 2009-02-27 2015-03-10 Symantec Corporation Method and apparatus for streaming applications to a plurality of clients within a peer to-peer network
US8583625B2 (en) * 2009-03-20 2013-11-12 The Trustees Of Princeton Systems and methods for network acceleration and efficient indexing for caching file systems
US8805953B2 (en) * 2009-04-03 2014-08-12 Microsoft Corporation Differential file and system restores from peers and the cloud
US20100268784A1 (en) * 2009-04-17 2010-10-21 Marc Henness Data synchronization system and method
US20100318759A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Distributed rdc chunk store
US8321484B2 (en) * 2010-02-26 2012-11-27 Microsoft Corporation Minimizing bandwidth in file path-centric protocol message
US8909657B2 (en) * 2011-01-14 2014-12-09 Apple Inc. Content based file chunking
FR2972546B1 (fr) * 2011-03-07 2013-03-08 Bull Sas Procedes, dispositifs et programmes d'ordinateur pour optimiser la replication de donnees dans des systemes informatiques
EP2645286A1 (en) * 2012-03-09 2013-10-02 ABB Research Ltd. Authentication in an industrial control system
US8856445B2 (en) 2012-05-24 2014-10-07 International Business Machines Corporation Byte caching with chunk sizes based on data type
US8832375B2 (en) 2012-05-24 2014-09-09 International Business Machines Corporation Object type aware byte caching
CN103580982B (zh) * 2012-07-19 2017-12-15 腾讯科技(深圳)有限公司 代收电子邮件的方法、装置及系统
US9626373B2 (en) * 2012-10-01 2017-04-18 Western Digital Technologies, Inc. Optimizing data block size for deduplication
US9110964B1 (en) * 2013-03-05 2015-08-18 Emc Corporation Metadata optimization for network replication using differential encoding
US9235475B1 (en) 2013-03-05 2016-01-12 Emc Corporation Metadata optimization for network replication using representative of metadata batch
KR101479864B1 (ko) * 2013-11-08 2015-01-06 주식회사 엘지유플러스 멀티미디어 청크(chunk)를 수신하는 통신 단말기 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체
US10097868B2 (en) 2013-12-09 2018-10-09 Sony Corporation Data processing device and data processing method
CN105024970B (zh) * 2014-04-18 2018-07-13 中国电信股份有限公司 移动应用数据拷贝的控制方法、系统、客户端和服务器
WO2016088964A1 (ko) * 2014-12-02 2016-06-09 엘지전자(주) 무선 통신 시스템에서 블루투스 통신을 이용하여 객체 전송 서비스를 수행하기 위한 방법 및 장치
US9973597B1 (en) 2014-12-10 2018-05-15 Amazon Technologies, Inc. Differential dictionary compression of network-accessible content
US10574751B2 (en) 2016-03-22 2020-02-25 International Business Machines Corporation Identifying data for deduplication in a network storage environment
US11551529B2 (en) 2016-07-20 2023-01-10 Winview, Inc. Method of generating separate contests of skill or chance from two independent events
CN107783990B (zh) * 2016-08-26 2021-11-19 华为技术有限公司 一种数据压缩方法及终端
CN107468240B (zh) * 2017-09-18 2024-05-07 山东正心医疗科技有限公司 手持式心电监护系统
US11308765B2 (en) 2018-10-08 2022-04-19 Winview, Inc. Method and systems for reducing risk in setting odds for single fixed in-play propositions utilizing real time input
CN110443156B (zh) * 2019-07-16 2022-03-25 浙江大华技术股份有限公司 轨迹相似度度量方法、数据处理设备及存储设备
US11449325B2 (en) 2019-07-30 2022-09-20 Sony Interactive Entertainment LLC Data change detection using variable-sized data chunks
US11307841B2 (en) 2019-07-30 2022-04-19 Sony Interactive Entertainment LLC Application patching using variable-sized units
US11262927B2 (en) 2019-07-30 2022-03-01 Sony Interactive Entertainment LLC Update optimization using feedback on probability of change for regions of data
CN110740352B (zh) * 2019-11-14 2021-07-20 北京京航计算通讯研究所 显卡透传环境下基于spice协议的差异图像显示方法
CN110868614B (zh) * 2019-11-14 2021-09-28 北京京航计算通讯研究所 显卡透传环境下基于spice协议的差异图像显示系统
CN112286550B (zh) * 2020-10-22 2024-08-16 上海艾拉比智能科技有限公司 一种嵌入式设备系统升级的安全性签名算法
US11681659B2 (en) * 2021-05-21 2023-06-20 Red Hat, Inc. Hybrid file compression model

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446888A (en) 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
US5488364A (en) 1994-02-28 1996-01-30 Sam H. Eulmi Recursive data compression
US5486826A (en) 1994-05-19 1996-01-23 Ps Venture 1 Llc Method and apparatus for iterative compression of digital data
WO1996025801A1 (en) 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5933104A (en) 1995-11-22 1999-08-03 Microsoft Corporation Method and system for compression and decompression using variable-sized offset and length fields
WO1997027707A1 (en) 1996-01-22 1997-07-31 Matsushita Electric Industrial Co., Ltd. Digital image encoding and decoding method and digital image encoding and decoding device using the same
US5794254A (en) 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US5987022A (en) 1996-12-27 1999-11-16 Motorola, Inc. Method for transmitting multiple-protocol packetized data
US6374250B2 (en) 1997-02-03 2002-04-16 International Business Machines Corporation System and method for differential compression of data from a plurality of binary sources
AU6151598A (en) 1997-02-11 1998-08-26 Connected Corporation File comparison for data backup and file synchronization
US6226629B1 (en) 1997-02-28 2001-05-01 Compaq Computer Corporation Method and apparatus determining and using hash functions and hash values
US6449612B1 (en) 1998-03-17 2002-09-10 Microsoft Corporation Varying cluster number in a scalable clustering system for use with large databases
US6052531A (en) 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6317754B1 (en) 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
US6952823B2 (en) 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
BR9914551A (pt) * 1998-10-16 2002-03-05 Computer Ass Think Inc Processo e sistema para macro-linguagem extensìvel
US6819271B2 (en) 1999-01-29 2004-11-16 Quickshift, Inc. Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
US6791982B2 (en) 1999-09-29 2004-09-14 Telefonaktiebolaget Lm Ericsson Segmentation protocol that supports compressed segmentation headers
EP1168174A1 (en) 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Automatic backup/recovery process
AU2001272970A1 (en) * 2000-06-22 2002-01-02 Synchrologic, Inc. A system and method for file transmission using file differentiation
US6470329B1 (en) * 2000-07-11 2002-10-22 Sun Microsystems, Inc. One-way hash functions for distributed data synchronization
US7058941B1 (en) 2000-11-14 2006-06-06 Microsoft Corporation Minimum delta generator for program binaries
JP2004514214A (ja) 2000-11-17 2004-05-13 ビットフォン コーポレイション 情報をアップデートおよび配布するシステムおよび方法
US7054912B2 (en) 2001-03-12 2006-05-30 Kabushiki Kaisha Toshiba Data transfer scheme using caching technique for reducing network load
US20020152219A1 (en) 2001-04-16 2002-10-17 Singh Monmohan L. Data interexchange protocol
US8041803B2 (en) 2001-09-26 2011-10-18 Qurio Holdings, Inc. Method and system for delivering files in digital file marketplace
BR0206453A (pt) 2001-11-16 2004-01-13 Koninkl Philips Electronics Nv Método para atualizar, cliente compartilhador de arquivo arranjado para atualizar, servidor arranjado papa atualizar, um banco de dados compreendendo uma impressão digital de, e, um conjunto de metadados associado para cada um de, um número de objetos de multimìdia, e, rede de compartilhamento de arquivo
US7370120B2 (en) 2001-12-07 2008-05-06 Propel Software Corporation Method and system for reducing network latency in data communication
EP1326189A3 (en) * 2001-12-12 2005-08-17 Microsoft Corporation Controls and displays for acquiring preferences, inspecting behaviour, and guiding the learning and decision policies of an adaptive communications prioritization and routing systems
US6947604B2 (en) 2002-01-17 2005-09-20 Intel Corporation Method and hardware to implement two-dimensional compression
US7188160B2 (en) * 2002-01-22 2007-03-06 Ericsson Ab Method and apparatus for updating network device configuration information in a network management system
JP4020676B2 (ja) 2002-03-26 2007-12-12 株式会社東芝 Webシステム及びWebシステムの制御方法
JP3848209B2 (ja) * 2002-05-23 2006-11-22 株式会社東芝 データ転送装置、データ転送方法及びプログラム
US7360093B2 (en) 2002-07-22 2008-04-15 Xerox Corporation System and method for authentication of JPEG image data
US20040039716A1 (en) 2002-08-23 2004-02-26 Thompson Dean S. System and method for optimizing a computer program
JP2004094617A (ja) 2002-08-30 2004-03-25 Fujitsu Ltd 差分圧縮によるバックアップ方法、システム及び差分圧縮方法
US7099884B2 (en) * 2002-12-06 2006-08-29 Innopath Software System and method for data compression and decompression
US20060047855A1 (en) 2004-05-13 2006-03-02 Microsoft Corporation Efficient chunking algorithm
US7555531B2 (en) 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US20050262167A1 (en) 2004-05-13 2005-11-24 Microsoft Corporation Efficient algorithm and protocol for remote differential compression on a local device
US20050256974A1 (en) 2004-05-13 2005-11-17 Microsoft Corporation Efficient algorithm and protocol for remote differential compression on a remote device
US7613787B2 (en) 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
WO2006052897A2 (en) 2004-11-08 2006-05-18 Innopath Software, Inc. Reorganizing images in static file system differencing and updating
US7640363B2 (en) 2005-02-16 2009-12-29 Microsoft Corporation Applications for remote differential compression

Also Published As

Publication number Publication date
BRPI0501166A (pt) 2005-12-06
CA2500894C (en) 2013-07-02
EP1587007A3 (en) 2007-04-18
TW200537881A (en) 2005-11-16
ZA200502115B (en) 2007-08-29
EP2444909A2 (en) 2012-04-25
KR20060043620A (ko) 2006-05-15
NZ538839A (en) 2007-07-27
KR100922674B1 (ko) 2009-10-19
SG116576A1 (en) 2005-11-28
RU2005105759A (ru) 2006-08-10
JP4796315B2 (ja) 2011-10-19
MXPA05002949A (es) 2005-10-19
IL167467A (en) 2010-11-30
AU2005201386A1 (en) 2005-10-27
RU2382511C2 (ru) 2010-02-20
EP1587007A2 (en) 2005-10-19
CN102170455B (zh) 2015-12-16
NO20051344D0 (no) 2005-03-15
US20050235043A1 (en) 2005-10-20
US7555531B2 (en) 2009-06-30
CN1684464A (zh) 2005-10-19
CO5680121A1 (es) 2006-09-29
MY144798A (en) 2011-11-15
CA2500894A1 (en) 2005-10-15
NO20051344L (no) 2005-10-17
CN1684464B (zh) 2011-07-27
CN102170455A (zh) 2011-08-31
AU2005201386B2 (en) 2010-06-17
JP2005302004A (ja) 2005-10-27

Similar Documents

Publication Publication Date Title
TWI360336B (en) Efficient algorithm and protocol for remote differ
US8117173B2 (en) Efficient chunking algorithm
US8112496B2 (en) Efficient algorithm for finding candidate objects for remote differential compression
US20050262167A1 (en) Efficient algorithm and protocol for remote differential compression on a local device
US7447839B2 (en) System for a distributed column chunk data store
US20200285634A1 (en) System for data sharing platform based on distributed data sharing environment based on block chain, method of searching for data in the system, and method of providing search index in the system
US7640363B2 (en) Applications for remote differential compression
US7457935B2 (en) Method for a distributed column chunk data store
US8185498B2 (en) Data deduplication by separating data from meta data
US7447865B2 (en) System and method for compression in a distributed column chunk data store
US7478113B1 (en) Boundaries
AU1853699A (en) Data file synchronisation
US20050256974A1 (en) Efficient algorithm and protocol for remote differential compression on a remote device
JP7529673B2 (ja) コンテンツ不可知ファイルインデキシングの方法及びシステム
JP2010191903A (ja) 分散ファイルシステムのストライピング種別選択方法及びその分散ファイルシステム
Riza et al. Base-Delta Dynamic Block Length and Optimization on File Compression

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees