JP2005302004A - 遠隔差分圧縮用の効率的アルゴリズムとプロトコル - Google Patents
遠隔差分圧縮用の効率的アルゴリズムとプロトコル Download PDFInfo
- Publication number
- JP2005302004A JP2005302004A JP2005073985A JP2005073985A JP2005302004A JP 2005302004 A JP2005302004 A JP 2005302004A JP 2005073985 A JP2005073985 A JP 2005073985A JP 2005073985 A JP2005073985 A JP 2005073985A JP 2005302004 A JP2005302004 A JP 2005302004A
- Authority
- JP
- Japan
- Prior art keywords
- chunk
- signature
- remote
- list
- recursive
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61M—DEVICES 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/00—Medical syringes, e.g. enemata; Irrigators
- A61M3/02—Enemata; Irrigators
- A61M3/06—Enemata; Irrigators combined with bidets
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99955—Archiving or backup
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Anesthesiology (AREA)
- Heart & Thoracic Surgery (AREA)
- Hematology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (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)
Abstract
【解決手段】 オブジェクトは、必要なデータ転送が最小化されるように遠隔差分圧縮(RDC)手法を使用して2つ以上のコンピューティングデバイスの間で更新される。効率的な大きなオブジェクトの転送が、それ自体のメタデータに対してこのRDCアルゴリズムを再帰的に適用することによって達成される。すなわち、1つまたは複数の再帰的ステップをこのケースにおいて使用してこのRDCアルゴリズムによってこのネットワーク上で送信されるメタデータの量を減少させることができる。オブジェクト、および/または、シグネチャおよびチャンク長リストを、動的に決定されたロケーションに境界を位置づけることによってチャンキングすることができる。数学関数が、可能性のあるチャンク境界に関連してホライズンウィンドウ内に関連づけられたハッシュ値を評価する。
【選択図】 図6
Description
図1は、本発明についての動作環境の一実施例を示す図である。この図に示すように、複数のデバイスが、ネットワーク上で情報をやりとりするように配置されている。これらのデバイスは、ネットワークに接続された汎用コンピューティングデバイス、専用コンピューティングデバイス、または他の任意の適切なデバイスでもよい。このネットワーク102は、それだけには限定されないが、直接配線接続(例えば、パラレルポート、シリアルポート、USB、IEEE1394など)、無線接続(例えば、IRポート、ブルートゥース(Bluetooth)ポートなど)、有線ネットワーク、無線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ウルトラワイドエリアネットワーク、インターネット、イントラネット、およびエクストラネットを含めて任意の接続トポロジに対応したものとすることができる。
図2は、本発明に従って構成されたコンピューティングデバイスの一実施例のブロック図である。基本的な構成においては、コンピューティングデバイス200は、一般に少なくとも1つの処理装置(202)およびシステムメモリ(204)を含んでいる。コンピューティングデバイスのその厳密な構成およびタイプに応じて、システムメモリ204は、(RAMなどの)揮発性、(ROM、フラッシュメモリなどの)不揮発性、またはこれら2つの何らかの組合せとすることができる。システムメモリ204は、一般にオペレーティングシステム(205)、1つまたは複数のプログラムモジュール(206)を含んでおり、またプログラムデータ(207)を含むこともある。この基本的な構成が、図2の破線208内のこれらのコンポーネントによって示されている。
図3Aおよび3Bは、本発明の少なくとも一態様によるRDCプロシージャの実施例を示す図である。特にチャンク数は、この実際のオブジェクトOAおよびOBに応じてインスタンスごとに変化することが可能である。
図4Aおよび4Bは、本発明の少なくとも一態様に従って構成される一実施例のRDCプロシージャ中のローカルデバイス(例えば、デバイスA)と、リモートデバイス(例えば、デバイスB)との間の対話についてのプロセスフローを示す図である。図4Aの左側は、このローカルデバイスA上で動作させられるステップ400〜413を示すが、一方、図4Aの右側は、このリモートデバイスB上で動作させられるステップ450〜456を示している。
図5Aおよび5Bは、本発明の少なくとも一態様に従って構成されるRDCプロシージャの一実施例におけるそのシグネチャおよびチャンク長のリストの再帰的な転送についてのプロセスフローを示す図である。以下で説明するプロシージャは、一般的に関連するオブジェクトを更新しようと試みるローカルデバイスとリモートデバイスの両方に対して適用することができる。
図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 him.(すばやい狐は、のろまな茶色の犬の上を飛び越えた。この犬はあまりにものろまだったので、狐が自分の上を飛び越えたことに気がつかなかった。)」を含んでいた。
前述のこの基本的なRDCプロシージャの有効性は、このオブジェクトデータをチャンキングし、かつ/またはこのシグネチャおよびチャンク長のリストをチャンキングするために使用されるチャンキングプロシージャを最適化することによって増大させることができる。
(S2)Σchunk_length、式中で(signature,chunk_length)∈Bからのシグネチャ、および
slack=Chunks1’−|s1|=Chunks2’−|s2|
オブジェクトOAおよびOBが、平均サイズKを共通にもつS個のセグメントを有するとき、このクライアント上でローカルに取得することができるチャンク数は、次式で与えられる。
すべてのチャンキングアルゴリズムは、スモールウィンドウ(小型のウィンドウ)、すなわち限られたバイトシーケンスに依存するフィンガプリント関数またはハッシュを使用する。これらのアルゴリズムが有限の差分(強度削減)最適化に従うとき、チャンキングのために使用されるハッシュアルゴリズムの実行時間は、このハッシュウィンドウサイズから独立している。したがって、サイズkのハッシュウィンドウでは、b0、bk、および#[b0,b1,...,bk−1]だけを使用してそのハッシュ#[b1,...,bk−1,bk]を計算することは簡単な(一定のステップ数しか必要としない)はずである。ラビン多項式を使用したハッシュ関数や、あらかじめ計算済みの乱数テーブルに基づいた計算上より効率的に見える他のハッシュ関数など、様々なハッシング関数(hashing function)を使用することができる。
sum1+=table[bk]−table[b0]
sum2+=sum1−k×table[b0]
hash=hash^((table[b0]<<l)|(table[b0]>>u))^table[bk];
hash=(hash<<l)|(hash>>63);
式中でl=k%64、およびu=64−l
以前のチャンキング手法では、所定のウィンドウサイズk(=48)を有するフィンガプリントハッシュを計算し、ハッシュビットのサブセットが所定のパターンとマッチングするかどうかに基づいてカットポイントを識別することによって決定される。ランダムハッシュ値を用いると、このパターンは、同様に0となることもあり、これに関連するサブセットも同様にこのハッシュの接頭辞になることもある。基本的な命令においては、これは、以下の形式の述語に変換される。
CutPoint(hash)≡0==(hash&((1<<c)−1))
式中、cはマッチングさせるべきビット数である。
C=m+2C
フィルタにおけるチャンキングは、長さmのパターンシーケンスとなっているフィルタを修正し、このフィルタに対してフィンガプリントハッシュシーケンスをマッチングさせることに基づいている。このフィルタが、ハッシュシーケンスをこのフィルタの接頭辞にも接尾辞にもマッチングさせないときには、任意の2つのマッチング部間の最小距離が、少なくともmになる必要があることが推論できる。フィルタの一実施例は、以前の技術で使用されたカットポイント述語から、最初のm−1個のパターンを次式のように設定し、
0!=(hash&((1<<c)−1))
また最後のパターンを次式のように
0==(hash&((1<<c)−1))
設定することによって得ることができる。
極大(Local Maxima)におけるチャンキングは、縛られたホライズン内部で最大となるカットポイント位置として選択することに基づいている。以下では、本発明者らは、ホライズン値についてはhを使用することにする。offset−h、...、offset−1、ならびにoffset+1、...、offset+hにおけるハッシュ値がすべて、offsetにおけるハッシュ値よりも小さい場合には、位置offsetにおけるハッシュは、h−極大であると言う。換言すれば、hステップ左からhステップ右までのすべての位置が、より小さなハッシュ値を有する。極大は、極小または(メジアンハッシュ値に対する「最近接」(closest to the median hash value)など)比較に基づく他の任意の距離で置き換えることもできることが当業者には理解されよう。
nバイトを有するオブジェクトは、所与のオブジェクトについて多くてもn個のエントリが挿入されるようにCutPointをn回呼び出すことによって処理される。n個より多いエントリを削除することがないように、ステップ805から開始されるループが反復されるたびに1つのエントリが除去される。したがって、この処理ループは、あらゆるエントリについて一度しか入ることができず、反復の結合回数は、多くてもn回とすることができる。これは、CutPointに対する各呼出しにおけるループ内のステップの平均数が2よりわずかに少なく、カットポイントを計算するステップ数が、hからは独立していることを意味する。
Σ0≦k<m1/m(k/m)2h
(1/m)2h+1Σ0≦k<mk2h
(1/m)2h+11/(2h+1)Σ0≦k<2h(2h+1)!/k!(2h+1−k)!Bkm2h+1−k
H∞ (2n)=(−1)n−122n−1π2nB2n/(2n)!
前述の極大手法とフィルタ手法では共に、最小のチャンクサイズが構築される。従来技術の実装形態では、最小のチャンクサイズには、追加のパラメータを別に供給することが必要になる。
前述のチャンキングプロシージャは、極大計算を使用してカットポイントを位置づける手段について説明しているが、本発明は、それだけには限定されない。任意の数学関数を構成して可能性のあるカットポイントを検査することができる。可能性のある各カットポイントは、考慮されたカットポイントについてのホライズンウィンドウ内に配置されたハッシュ値を評価することによって評価される。このハッシュ値の評価は、このホライズン内の最大値の位置を見つけるステップ、このホライズン内の最小値の位置を見つけるステップ、ハッシュ値の間の差分を評価するステップ、任意の定数に対してその結果を比較するステップのうちの少なくとも1つを含み得る数学関数、ならびに他の何らかの数学関数または統計的関数によって達成される。
101 デバイスB
102 ネットワーク
200 コンピューティングデバイス
202 処理装置
204 システムメモリ
205 オペレーティングシステム
206 プログラムモジュール
207 プログラムデータ
209 着脱可能ストレージ
210 着脱不能ストレージ
212 1つ(または複数)の入力デバイス
214 1つ(または複数)の出力デバイス
216 1つ(または複数)の通信接続
218 他のコンピューティングデバイス
Claims (77)
- ローカルデバイスとリモートデバイスとの間で、ネットワーク上でオブジェクトを更新するためのシステムであって、
前記リモートデバイス上の第1のオブジェクトのバイトオフセットごとに第1のフィンガプリント関数を計算する手段と、
前記第1のフィンガプリント関数に基づいて前記リモートデバイス上の前記第1のオブジェクトをチャンキングする手段と、
前記リモートデバイス上で前記第1のオブジェクトに関連するチャンクごとにリモートシグネチャを計算する手段と、
前記リモートデバイス上で前記第1のオブジェクトに関連するリモートのシグネチャおよびチャンク長のリストを生成する手段と、
前記ローカルデバイス上で第2のオブジェクトのバイトオフセットごとに第2のフィンガプリント関数を計算する手段であって、前記第1および第2のオブジェクトが互いに関連しており、ここで前記第1のフィンガプリント関数が前記第2のフィンガプリント関数にマッチングさせられる手段と、
前記第2のフィンガプリント関数に基づいて前記ローカルデバイス上で前記第2のオブジェクトをチャンキングする手段であって、該第2のオブジェクトをチャンキングする手段に、前記リモートデバイス上で前記第1のオブジェクトをチャンキングする手段が前記ローカルデバイス上でマッチングさせられる手段と、
前記ローカルデバイス上で前記第2のオブジェクトに関連する各チャンクごとにローカルシグネチャを計算する手段であって、該ローカルシグネチャを計算する手段が、前記リモートシグネチャを計算する手段にマッチングさせられる手段と、
前記ローカルデバイス上でローカルのシグネチャおよびチャンク長のリストを生成する手段であって、該ローカルのシグネチャおよびチャンク長のリストが前記第2のオブジェクトに関連する手段と、
帯域幅の使用が前記ローカルデバイスへの前記リモートのシグネチャおよびチャンク長のリストの転送について最小になるように、前記ネットワーク上で前記リモートデバイスから前記ローカルデバイスへの前記リモートのシグネチャおよびチャンク長のリストのチャンキングされた伝送をネゴシエーションする手段と、
前記ローカルデバイス上で前記ローカルのシグネチャおよびチャンク長のリストを前記リモートのシグネチャおよびチャンク長のリストと比較することによって前記第1のオブジェクトと前記第2のオブジェクトの間の差分を識別する手段と、
前記第1のオブジェクトと前記第2のオブジェクトの間の差分が前記ローカルデバイスによって識別されるとき前記リモートデバイスから少なくとも1つの更新されたオブジェクトチャンクの伝送を要求する手段と、
前記ネットワーク上で前記リモートデバイスから前記ローカルデバイスに前記少なくとも1つの更新されたオブジェクトチャンクを伝送する手段と、
前記少なくとも1つの更新されたオブジェクトチャンクを用いて前記ローカルデバイス上で前記第1のオブジェクトのコピーを再組立てする手段と
を備えることを特徴とするシステム。 - 前記リモートデバイスから前記第1のオブジェクトについての更新を要求する手段をさらに備えることを特徴とする請求項1に記載のシステム。
- 前記ローカルデバイスから前記第1のオブジェクトについての更新を要求する手段をさらに備えることを特徴とする請求項1に記載のシステム。
- 前記リモートのシグネチャおよびチャンク長のリストのチャンキングされた伝送をネゴシエーションすることは、前記リモートデバイスから前記ローカルデバイスに前記リモートのシグネチャおよびチャンク長のリストの少なくとも一部分を送信することを含むことを特徴とする請求項1に記載のシステム。
- 前記ローカルデバイスおよび前記リモートデバイスのうちの一方は、クライアントであり、前記ローカルデバイスおよび前記リモートデバイスのうちの他方は、サーバであることを特徴とする請求項1に記載のシステム。
- 前記ネットワークは、直接配線接続、パラレルポート、シリアルポート、USBポート、IEEE1394ポート、無線接続、IRポート、ブルートゥースポート、有線ネットワーク、無線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ウルトラワイドエリアネットワーク、インターネット、イントラネット、およびエクストラネットのうちの少なくともいずれか1つであることを特徴とする請求項1に記載のシステム。
- 前記ローカルデバイス上で前記第2のオブジェクトに関連するチャンクごとに前記ローカルシグネチャを計算する前記手段は、前記ローカルデバイス上で前記チャンクに対して適用される強化ハッシング関数を含むことを特徴とする請求項1に記載のシステム。
- 前記ローカルデバイス上で前記第1のオブジェクトと前記第2のオブジェクトの間の差分を識別する前記手段は、
前記リモートのシグネチャおよびチャンク長のリストを前記ローカルのシグネチャおよびチャンク長のリストと比較する手段と、
前記リモートのシグネチャおよびチャンク長のリストと前記ローカルのシグネチャおよびチャンク長のリストの間の少なくとも1つの差分を識別する手段と、
前記リモートのシグネチャおよびチャンク長のリストに前記少なくとも1つの差分をマッピングする手段と、
前記少なくとも1つの差分と前記リモートのシグネチャおよびチャンク長のリストの間での前記マッピングから前記少なくとも1つの更新されたオブジェクトチャンクを識別する手段と
を備えることを特徴とする請求項1に記載のシステム。 - 前記リモートデバイス上で前記第1のオブジェクトのバイトオフセットごとに前記第1のフィンガプリント関数を計算する前記手段は、
前記第1のオブジェクトに関連する各バイト位置の周囲で参照されるスモールウィンドウを提供する手段と、
バイト位置ごとに前記スモールウィンドウを使用してフィンガプリントを生成する手段と
を備えることを特徴とする請求項1に記載のシステム。 - 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記ネットワークの特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記スモールウィンドウに関連するウィンドウサイズを調整する手段をさらに備えることを特徴とする請求項9に記載のシステム。
- 前記第1のフィンガプリント関数は、ラビン多項式を使用したハッシュ関数、循環シフティングハッシュ関数、32ビットアドラーハッシュ関数のうちの少なくとも1つを含むことを特徴とする請求項1に記載のシステム。
- 前記リモートデバイス上で前記第1のオブジェクトをチャンキングする前記手段は、少なくとも1つのチャンキングパラメータを決定する手段を備えることを特徴とする請求項1に記載のシステム。
- 前記リモートデバイス上で前記第1のオブジェクトをチャンキングする前記手段は、
前記少なくとも1つのチャンキングパラメータからチャンキングホライズンを決定する手段と、
前記第1のオブジェクト内の各位置においてハッシュ値を計算する手段と、
前記第1のオブジェクト内の各位置の周囲の前記チャンキングホライズン内に位置づけられたハッシュ値に数学関数を適用する手段と、
前記数学関数が満たされるときにカットポイントおよびチャンキング境界のうちの少なくとも1つを指定する手段と、
前記指定されたカットポイントを用いて前記第1のオブジェクトをチャンキングする手段と
をさらに備えることを特徴とする請求項12に記載のシステム。 - 前記数学関数は、前記ホライズン内の最大値を決定するステップ、前記ホライズン内の最小値を決定するステップ、および前記ホライズン内のハッシュ値の間の差分を評価するステップのうちの少なくとも1つを含むことを特徴とする請求項13に記載のシステム。
- 前記リモートデバイス上で前記第1のオブジェクトをチャンキングする前記手段は、
前記少なくとも1つのチャンキングパラメータからホライズン、トリガ値、および他のトリガのリストを決定する手段と、
前記第1のオブジェクト内の位置ごとにハッシュ値を計算する手段と、
各計算済みのハッシュ値に数学関数を適用する手段と、
前記数学関数が、所与のオフセットにおいて前記トリガ値を獲得し、前記ホライズンが提供するすべての対応するオフセットにおいて前記他のトリガを獲得するときにカットポイントチャンキング境界の少なくとも1つを指定する手段と、
前記指定されたカットポイントを用いて前記第1のオブジェクトをチャンキングする手段と
を備えることを特徴とする請求項12に記載のシステム。 - 前記数学関数は、ハッシュ値をブール値にマッピングする述語、およびハッシュ値を適切な小さなドメイン中に区分する別の数学関数のうちの少なくとも1つを含むことを特徴とする請求項13に記載のシステム。
- 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記ネットワークの特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記少なくとも1つのチャンキングパラメータを調整する手段をさらに備えることを特徴とする請求項12に記載のシステム。
- 前記リモートデバイス上で前記少なくとも1つの更新されたオブジェクトチャンクの伝送を求める前記要求を受信する手段と、
前記少なくとも1つの更新されたオブジェクトチャンクの伝送を求める前記受信された要求に応答して前記リモートデバイス上で前記第2のオブジェクトから前記少なくとも1つの更新されたオブジェクトチャンクを抽出する手段と、
前記リモートデバイスを用いて前記ネットワーク上で前記少なくとも1つの更新されたオブジェクトチャンクを送信する手段と、
前記ローカルデバイスを用いて前記ネットワークから少なくとも1つの更新されたオブジェクトチャンクを受信する手段と、
前記少なくとも1つの更新されたオブジェクトチャンクを用いて前記ローカルデバイス上で前記第1のオブジェクトを更新する手段と
をさらに備えることを特徴とする請求項1に記載のシステム。 - 前記第1のオブジェクトを更新する前記手段は、前記ローカルデバイス上で、前記少なくとも1つの更新されたオブジェクトチャンクを含む新しいオブジェクトを提供するように構成されていることを特徴とする請求項18に記載のシステム。
- 前記ローカルデバイスを用いて前記ネットワークから前記少なくとも1つの更新されたオブジェクトチャンクを受信する手段と、
前記少なくとも1つの更新されたオブジェクトチャンクを用いて前記ローカルデバイス上で更新された第1のオブジェクトを組み立てる手段と
をさらに備えることを特徴とする請求項1に記載のシステム。 - 前記更新された第1のオブジェクトを組み立てる前記手段は、さらに前記更新された第1のオブジェクトが、前記第1のオブジェクトからの少なくとも1つの変更されていないチャンクを含むように構成されることを特徴とする請求項20に記載のシステム。
- 前記ネットワーク上で前記リモートデバイスから前記ローカルデバイスに前記リモートのシグネチャおよびチャンク長のリストの前記チャンキングされた伝送をネゴシエーションする前記手段は、
前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングしてチャンキングされたリモートのシグネチャおよびチャンク長のリストを提供する手段と、
前記リモートデバイス上で前記チャンキングされたリモートのシグネチャおよびチャンク長のリストに関連するチャンクごとに再帰的リモートシグネチャを計算する手段と、
前記再帰的リモートシグネチャと前記チャンキングされたリモートのシグネチャおよびチャンク長のリストを用いて前記リモートデバイス上で再帰的リモートシグネチャおよびチャンク長のリストを生成する手段と、
前記ローカルデバイス上で前記ローカルのシグネチャおよびチャンク長のリストをチャンキングする手段であって、前記ローカルのシグネチャおよびチャンク長のリストをチャンキングする前記手段が、前記リモートのシグネチャおよびチャンク長のリストをチャンキングする前記手段にマッチングさせられる手段と、
前記ローカルデバイス上で前記チャンキングされたローカルのシグネチャおよびチャンク長のリストに関連するチャンクごとに再帰的ローカルシグネチャを計算する手段であって、前記再帰的ローカルシグネチャを計算する前記手段が、前記再帰的リモートシグネチャを計算する前記手段にマッチングさせられる手段と、
前記再帰的ローカルシグネチャと、前記チャンキングされたローカルのシグネチャおよびチャンク長のリストとを用いて前記ローカルデバイス上で再帰的ローカルシグネチャおよびチャンク長のリストを生成する手段であって、前記再帰的ローカルシグネチャおよびチャンク長のリストを生成する前記手段が、前記再帰的リモートシグネチャおよびチャンク長のリストを生成する前記手段にマッチングさせられる手段と、
帯域幅の使用が、前記ローカルデバイスへの前記再帰的リモートシグネチャおよびチャンク長のリストの前記転送について最小になるように、前記ネットワーク上で前記リモートデバイスから前記ローカルデバイスへの前記再帰的リモートシグネチャおよびチャンク長のリストの伝送をネゴシエーションする手段と、
前記ローカルデバイス上で前記再帰的リモートシグネチャおよびチャンク長のリストと前記再帰的ローカルシグネチャおよびチャンク長のリストとの間の差分を識別する手段と、
前記再帰的リモートシグネチャおよびチャンク長のリストと前記再帰的ローカルシグネチャおよびチャンク長のリストとの間で前記ローカルデバイスによって差分が識別されるときに前記リモートデバイスからの少なくとも1つの更新されたシグネチャチャンクの伝送を要求する手段と、
前記ネットワーク上で前記リモートデバイスから前記ローカルデバイスに前記少なくとも1つの更新されたシグネチャチャンクを伝送する手段であって、前記要求された少なくとも1つの更新されたシグネチャチャンクが、前記リモートのシグネチャおよびチャンク長のリストに関連する手段と、
前記少なくとも1つの更新されたシグネチャチャンクを用いて前記ローカルデバイス上で前記リモートのシグネチャおよびチャンク長のリストのコピーを組み立てる手段と
を備えることを特徴とする請求項1に記載のシステム。 - 前記リモートデバイスから前記ローカルデバイスへの前記再帰的リモートシグネチャおよびチャンク長のリストの伝送をネゴシエーションする前記手段は、前記ネットワーク上で前記リモートデバイスから前記ローカルデバイスに前記再帰的リモートシグネチャおよびチャンク長のリストの少なくとも一部分を送信するステップを含むことを特徴とする請求項22に記載のシステム。
- 前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングする前記手段は、
前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストのバイトオフセットごとに第3のフィンガプリント関数を計算する手段と、
前記第3のフィンガプリント関数に基づいて前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングして前記チャンキングされたリモートのシグネチャおよびチャンク長のリストを提供する手段と
を備えることを特徴とする請求項22に記載のシステム。 - 前記ローカルデバイス上で前記ローカルのシグネチャおよびチャンク長のリストをチャンキングする前記手段は、
前記ローカルデバイス上で前記ローカルのシグネチャおよびチャンク長のリストのバイトオフセットごとに第4のフィンガプリント関数を計算する手段であって、前記第4のフィンガプリント関数は、前記第3のフィンガプリント関数にマッチングさせられる手段と、
前記第4のフィンガプリント関数に基づいて前記ローカルデバイス上で前記ローカルのシグネチャおよびチャンク長のリストをチャンキングして前記チャンキングされたローカルのシグネチャおよびチャンク長のリストを提供する手段であって、前記ローカルデバイス上で前記ローカルのシグネチャおよびチャンク長のリストをチャンキングする前記手段が、前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングする前記手段にマッチングさせられる手段と
を備えることを特徴とする請求項24に記載のシステム。 - 前記リモートデバイス上での前記第3のフィンガプリント関数を計算する前記手段および前記リモートのシグネチャおよびチャンク長のリストをチャンキングする前記手段は、前記リモートデバイス上での前記第1のフィンガプリント関数を計算する前記手段および前記第1のオブジェクトをチャンキングする前記手段とは異なる方法を使用することを特徴とする請求項25に記載のシステム。
- 前記リモートデバイス上での前記第3のフィンガプリント関数を計算する前記手段および前記リモートのシグネチャおよびチャンク長のリストをチャンキングする前記手段は、前記リモートデバイス上での前記第1のフィンガプリント関数を計算する前記手段および前記第1のオブジェクトをチャンキングする前記手段と同じやり方を使用することを特徴とする請求項24に記載のシステム。
- 前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストのバイトオフセットごとに前記第3のフィンガプリント関数を計算する前記手段は、
前記リモートのシグネチャおよびチャンク長のリストに関連する各バイト位置の周囲で参照されるスモールウィンドウを提供する手段と、
バイト位置ごとに前記スモールウィンドウを使用してフィンガプリントを生成する手段と
を備えることを特徴とする請求項24に記載のシステム。 - 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記ネットワークの特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記スモールウィンドウに関連するウィンドウサイズを調整する手段をさらに備えることを特徴とする請求項28に記載のシステム。
- 前記第3のフィンガプリント関数は、ラビン多項式を使用したハッシュ関数、循環シフティングハッシュ関数、32ビットアドラーハッシュ関数のうちの少なくとも1つを含むことを特徴とする請求項24に記載のシステム。
- 前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングする前記手段は、少なくとも1つの再帰的チャンキングパラメータを決定する手段を備えることを特徴とする請求項22に記載のシステム。
- 前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングする前記手段は、
前記少なくとも1つの再帰的チャンキングパラメータから再帰的チャンキングホライズンを決定する手段と、
前記リモートのシグネチャおよびチャンク長のリスト内の各位置においてハッシュ値を計算する手段と、
前記リモートのシグネチャおよびチャンク長のリスト内の各位置の周囲の前記再帰的チャンキングホライズン内に位置づけられたハッシュ値に数学関数を適用する手段と、
前記数学関数が満たされるときに前記チャンキング境界中にカットポイントを指定する手段と、
前記指定されたカットポイントを用いて前記リモートのシグネチャおよびチャンク長のリストをチャンキングする手段と
をさらに備えることを特徴とする請求項31に記載のシステム。 - 前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングする前記手段は、
前記少なくとも1つの再帰的チャンキングパラメータから再帰的ホライズン、再帰的トリガ値、および他の再帰的トリガのリストを決定する手段と、
前記リモートのシグネチャおよびチャンク長のリスト内の各位置においてハッシュ値を計算する手段と、
計算された各ハッシュ値に数学関数を適用する手段と、
前記数学関数が、所与のオフセットにおいて前記再帰的トリガ値を獲得し、前記再帰的ホライズンが提供するすべての対応するオフセットにおいて前記他の再帰的トリガを獲得するときに、少なくとも1つのカットポイントおよびチャンキング境界を指定する手段と、
前記指定されたカットポイントを用いて前記リモートのシグネチャおよびチャンク長のリストをチャンキングする手段と
をさらに備えることを特徴とする請求項31に記載のシステム。 - 前記数学関数は、ハッシュ値をブール値にマッピングする述語、およびハッシュ値を適切な小さなドメイン中に区分する他の任意の数学関数のうちの少なくとも1つを含むことを特徴とする請求項32に記載のシステム。
- 前記数学関数は、前記ホライズン内の最大値の決定、前記ホライズン内の最小値の決定、前記ホライズン内のハッシュ値の間の差分の評価、前記ホライズン内のハッシュ値の合計、および前記ホライズン内のハッシュ値の平均値の計算のうちの少なくとも1つを含むことを特徴とする請求項32に記載のシステム。
- 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記ネットワークの特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記少なくとも1つの再帰的チャンキングパラメータを調整する手段をさらに備えることを特徴とする請求項33に記載のシステム。
- 前記リモートデバイス上で前記チャンキングされたリモートのシグネチャおよびチャンク長のリストに関連するシグネチャチャンクごとに前記再帰的リモートシグネチャを計算する前記手段は、前記リモートデバイス上で前記シグネチャチャンクに対して適用される強化ハッシング関数を含むことを特徴とする請求項29に記載のシステム。
- 前記リモートデバイス上で前記少なくとも1つの更新されたシグネチャチャンクの伝送を求める前記要求を受信する手段と、
前記少なくとも1つの更新されたシグネチャチャンクの伝送を求める前記受信された要求に応答して前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストから前記少なくとも1つの更新されたシグネチャチャンクを抽出する手段と、
前記リモートデバイスを用いて前記ネットワーク上で前記少なくとも1つの更新されたシグネチャチャンクを送信する手段と、
前記ローカルデバイスを用いて前記ネットワークから少なくとも1つの更新されたシグネチャチャンクを受信する手段と、
前記少なくとも1つの更新されたシグネチャチャンクを用いて前記ローカルデバイス上で前記リモートのシグネチャおよびチャンク長のリストのコピーを組み立てる手段と
をさらに備えることを特徴とする請求項22に記載のシステム。 - 前記ローカルのシグネチャおよびチャンク長のリストを組み立てる前記手段は、前記ローカルデバイス上で、前記リモートのシグネチャおよびチャンク長のリストの新しいコピーを提供するように構成され、前記リモートのシグネチャおよびチャンク長のリストの前記新しいコピーは、前記少なくとも1つの更新されたシグネチャチャンクを含むことを特徴とする請求項38に記載のシステム。
- 前記ローカルデバイスを用いて前記ネットワークから前記少なくとも1つの更新されたシグネチャチャンクを受信する手段と、
前記少なくとも1つの更新されたシグネチャチャンクを用いて前記ローカルデバイス上で前記リモートのシグネチャおよびチャンク長のリストのコピーを組み立てる手段と
をさらに備えることを特徴とする請求項22に記載のシステム。 - 前記リモートのシグネチャおよびチャンク長のリストの前記コピーを組み立てる前記手段は、前記リモートのシグネチャおよびチャンク長のリストの前記コピーが、前記ローカルのシグネチャおよびチャンク長のリストからの少なくとも1つの変更されていないチャンクを含むようにさらに構成されることを特徴とする請求項38に記載のシステム。
- 前記ローカルデバイス上で前記再帰的リモートシグネチャおよびチャンク長のリストと前記再帰的ローカルシグネチャおよびチャンク長のリストとの間の差分を識別する前記手段は、
前記再帰的リモートシグネチャおよびチャンク長のリストを前記再帰的ローカルシグネチャおよびチャンク長のリストと比較する手段と、
前記再帰的リモートシグネチャおよびチャンク長のリストと前記再帰的ローカルシグネチャおよびチャンク長のリストとの間の差分に関連する少なくとも1つのシグネチャチャンクを識別する手段と、
前記少なくとも1つのシグネチャチャンクを前記リモートのシグネチャおよびチャンク長のリストにマッピングする手段と、
前記少なくとも1つのシグネチャチャンクと前記リモートのシグネチャおよびチャンク長のリストの間の前記マッピングから前記少なくとも1つの更新されたシグネチャチャンクを識別する手段と
を備えることを特徴とする請求項22に記載のシステム。 - 前記ネットワーク上で前記リモートデバイスから前記ローカルデバイスへの前記リモートのシグネチャおよびチャンク長のリストのチャンキングされた伝送をネゴシエーションする前記手段は、
前記第1のオブジェクトに関連するデータサイズ、前記第2のオブジェクトに関連するデータサイズ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記ネットワークの特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルと、前記第1のオブジェクトに関連するチャンクシグネチャの数、ならびに前記チャンキングされたリモートのシグネチャおよびチャンク長のリストに関連するチャンクシグネチャの数のうちの少なくとも1つに基づいて、再帰的処理のための反復の回数を決定する手段を備えることを特徴とする請求項1に記載のシステム。 - 前記シグネチャおよびチャンク長のリストをチャンキングしてチャンキングされたシグネチャおよびチャンク長のリストを提供する手段と、
前記チャンキングされたシグネチャおよびチャンク長のリストに関連するチャンクごとに再帰的シグネチャを計算する手段と、
前記再帰的シグネチャと前記チャンキングされたシグネチャおよびチャンク長のリストとを用いて、再帰的なシグネチャおよびチャンク長のリストを生成する手段と、
追加の反復が再帰的な処理について必要とされるときに前記シグネチャおよびチャンク長のリストを前記再帰的なシグネチャおよびチャンク長のリストに初期化する手段と、
前記再帰的手続きが反復の回数を完了しているときに前記再帰的なシグネチャおよびチャンク長のリストを返す手段と
を備える、シグネチャおよびチャンク長のリストを処理するための再帰的手続きと、
前記リモートのシグネチャおよびチャンク長のリストを前記シグネチャおよびチャンク長のリストとして前記再帰的手続きに渡し、前記再帰的手続きから前記再帰的リモートシグネチャおよびチャンク長のリストを返すことにより、前記リモートデバイス上で前記再帰的手続きを用いて前記リモートのシグネチャおよびチャンク長のリストを処理する手段と、
前記ローカルのシグネチャおよびチャンク長のリストを前記シグネチャおよびチャンク長のリストとして前記再帰的手続きに渡し、前記再帰的手続きから前記再帰的ローカルシグネチャおよびチャンク長のリストを返すことにより、前記ローカルデバイス上で前記再帰的手続きを用いて前記ローカルのシグネチャおよびチャンク長のリストを処理する手段と
をさらに含むことを特徴とする請求項43に記載のシステム。 - 前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストを生成する前記手段は、さらに前記リモートのシグネチャおよびチャンク長のリストをコンパクトに符号化するように構成されることを特徴とする請求項1に記載のシステム。
- 前記ローカルデバイス上で前記ローカルのシグネチャおよびチャンク長のリストを生成する前記手段は、さらに前記ローカルのシグネチャおよびチャンク長のリストをコンパクトに符号化するように構成されることを特徴とする請求項1に記載のシステム。
- 前記リモートデバイス上で前記再帰的リモートシグネチャおよびチャンク長のリストを生成する前記手段は、さらに前記再帰的リモートシグネチャおよびチャンク長のリストをコンパクトに符号化するように構成されることを特徴とする請求項22に記載のシステム。
- 前記ローカルデバイス上で前記再帰的ローカルシグネチャおよびチャンク長のリストを生成する前記手段は、さらに前記再帰的ローカルシグネチャおよびチャンク長のリストをコンパクトに符号化するように構成されることを特徴とする請求項22に記載のシステム。
- ローカルデバイスとリモートデバイスの間において通信媒体上でオブジェクトを更新するためのコンピュータ実行可能命令を有するコンピュータ読取り可能媒体であって、
前記リモートデバイス上で第1のオブジェクトをチャンキングするステップと、
前記リモートデバイス上で前記第1のオブジェクトに関連するチャンクごとにシグネチャを計算してリモートシグネチャを提供するステップと、
前記リモートシグネチャから前記リモートデバイス上でリモートのシグネチャおよびチャンク長のリストを組み立てるステップと、
前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングし、
前記リモートデバイス上で前記チャンキングされたリモートのシグネチャおよびチャンク長のリストに関連するチャンクごとにシグネチャを計算して再帰的リモートシグネチャを提供し、
前記再帰的リモートシグネチャを用いて前記リモートデバイス上で再帰的リモートシグネチャおよびチャンク長のリストを組み立てることにより、
前記リモートデバイス上で再帰的リモートシグネチャおよびチャンク長のリストを生成するステップと、
前記ローカルデバイス上で第2のオブジェクトをチャンキングするステップと、
前記ローカルデバイス上で前記第2のオブジェクトに関連するチャンクごとにシグネチャを計算してローカルシグネチャを提供するステップと、
前記第1のオブジェクトが前記第2のオブジェクトにマッチングさせられるときに前記ローカルのシグネチャおよびチャンク長のリストが前記リモートのシグネチャおよびチャンク長のリストにマッチングさせられるように前記ローカルシグネチャから前記ローカルデバイス上でローカルのシグネチャおよびチャンク長のリストを組み立てるステップと、
前記ローカルのシグネチャおよびチャンク長のリストをチャンキングし、
前記チャンキングされたローカルのシグネチャおよびチャンク長のリストに関連するチャンクごとにシグネチャを計算して再帰的ローカルシグネチャを提供し、
前記再帰的ローカルシグネチャを用いて再帰的ローカルシグネチャおよびチャンク長のリストを組み立てることにより、
前記ローカルデバイス上で再帰的ローカルシグネチャおよびチャンク長のリストを生成するステップと、
帯域幅の使用が、前記ローカルデバイスへの前記再帰的リモートシグネチャおよびチャンク長のリストの転送について最小になるように前記通信媒体上で前記リモートデバイスから前記ローカルデバイスへの前記再帰的リモートシグネチャおよびチャンク長のリストの伝送をネゴシエーションするステップと、
前記ローカルデバイス上で前記再帰的リモートシグネチャおよびチャンク長のリストと前記再帰的ローカルシグネチャおよびチャンク長のリストとを比較して差分を識別し、
前記第2のオブジェクトに関連する少なくとも1つのチャンクに前記差分をマッピングすることにより、
前記第1のオブジェクトと前記第2のオブジェクトとの間の少なくとも1つの差分を識別するステップと、
前記リモートデバイスからの少なくとも1つのチャンクの伝送を要求し、
前記通信媒体上で前記リモートデバイスから前記少なくとも1つのチャンクを含む伝送を受信し、
前記少なくとも1つのチャンクを用いてオブジェクトを組み立てることにより、
前記ローカルデバイス上で前記第1のオブジェクトを更新するステップと
を含むことを特徴とするコンピュータ読取り可能媒体。 - 前記リモートデバイス上で前記第1のオブジェクトをチャンキングするステップは、前記第1のオブジェクトにフィンガプリント関数を適用して第1の組のフィンガプリントを生成するステップと、前記第1の組のフィンガプリントに基づいて前記第1のオブジェクトを第1の組のチャンクに区分するステップとを含むことを特徴とする請求項49に記載のコンピュータ読取り可能媒体。
- 前記ローカルデバイス上で前記第2のオブジェクトをチャンキングするステップは、前記第2のオブジェクトに前記フィンガプリント関数を適用して第2の組のフィンガプリントを生成するステップと、前記第2の組のフィンガプリントに基づいて前記第2のオブジェクトを第2の組のチャンクに区分するステップとを含むことを特徴とする請求項50に記載のコンピュータ読取り可能媒体。
- 前記通信媒体は、直接配線接続、パラレルポート、シリアルポート、USBポート、IEEE1394ポート、無線接続、IRポート、ブルートゥースポート、有線ネットワーク、無線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ウルトラワイドエリアネットワーク、インターネット、イントラネット、およびエクストラネットのうちの少なくとも1つであることを特徴とする請求項49に記載のコンピュータ読取り可能媒体。
- 前記フィンガプリント関数は、前記第1のオブジェクトの各バイト位置の周囲で参照されるウィンドウを提供するステップと、前記ウィンドウ中に位置づけられる前記バイト値からハッシュを計算するステップとを含むことを特徴とする請求項50に記載のコンピュータ読取り可能媒体。
- 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記通信媒体の特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記ウィンドウに関連するウィンドウサイズを調整するステップをさらに含むことを特徴とする請求項53に記載のコンピュータ読取り可能媒体。
- 前記第1のオブジェクトと前記第2のオブジェクトとの間の少なくとも1つの差分を識別するステップは、
前記差分に基づいて前記リモートデバイス上で更新されたシグネチャチャンクを識別するステップと、
前記通信媒体上で前記リモートデバイスから前記ローカルデバイスへの前記更新されたシグネチャチャンクの伝送を要求するステップと、
前記通信媒体から前記ローカルデバイス上で前記更新されたシグネチャチャンクを受信するステップと、
前記更新されたシグネチャチャンクを用いて前記ローカルデバイス上で更新されたシグネチャおよびチャンク長のリストを組み立てるステップと
をさらに含むことを特徴とする請求項49に記載のコンピュータ読取り可能媒体。 - 前記第2のオブジェクトに関連する少なくとも1つのチャンクに前記差分をマッピングするステップは、前記更新されたシグネチャおよびチャンク長のリストを前記ローカルのシグネチャおよびチャンク長のリストと比較して前記リモートデバイス上で少なくとも1つの更新されたチャンクを識別するステップを含むことを特徴とする請求項55に記載のコンピュータ読取り可能媒体。
- 前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングするステップは、前記リモートのシグネチャおよびチャンク長のリストにフィンガプリント関数を適用して第1の組のフィンガプリントを生成するステップと、前記第1の組のフィンガプリントに基づいて前記リモートのシグネチャおよびチャンク長のリストを第1の組のチャンクに区分するステップとを含むことを特徴とする請求項49に記載のコンピュータ読取り可能媒体。
- 前記リモートデバイス上で前記ローカルのシグネチャおよびチャンク長のリストをチャンキングするステップは、前記ローカルのシグネチャおよびチャンク長のリストに前記フィンガプリント関数を適用して第2の組のフィンガプリントを生成するステップと、前記第2の組のフィンガプリントに基づいて前記ローカルのシグネチャおよびチャンク長のリストを第2の組のチャンクに区分するステップとを含むことを特徴とする請求項57に記載のコンピュータ読取り可能媒体。
- 前記フィンガプリント関数は、前記リモートのシグネチャおよびチャンク長のリストの各バイト位置の周囲で参照されるウィンドウを提供するステップと、前記ウィンドウ中に位置づけられる前記バイト値からハッシュ値を計算するステップとを含むことを特徴とする請求項57に記載のコンピュータ読取り可能媒体。
- 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記通信媒体の特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記ウィンドウに関連するウィンドウサイズを調整するステップをさらに含むことを特徴とする請求項59に記載のコンピュータ読取り可能媒体。
- 前記リモートデバイス上で前記リモートのシグネチャおよびチャンク長のリストをチャンキングするステップは、
少なくとも1つの再帰的チャンキングパラメータを決定するステップと、
前記少なくとも1つの再帰的チャンキングパラメータから再帰的ホライズンおよび少なくとも1つの再帰的トリガ値のうちの少なくとも一方を決定するステップと、
前記リモートのシグネチャおよびチャンク長のリスト内の位置ごとにハッシュ値を計算するステップと、
計算された各ハッシュ値に数学関数を適用するステップと、
前記数学関数が、所与のオフセットにおいて前記少なくとも1つの再帰的トリガ値を獲得するときにチャンキング境界を指定するステップと、
前記指定済みのカットポイントを用いて前記リモートのシグネチャおよびチャンク長のリストをチャンキングするステップと
を含むことを特徴とする請求項60に記載のコンピュータ読取り可能媒体。 - 前記数学関数は、ハッシュ値をブール値にマッピングする述語と、ハッシュ値を小さなドメイン中に区分する第1の関数と、前記ホライズン内の最大値を決定する第2の関数と、前記ホライズン内の最小値を決定する第3の関数と、前記ホライズン内のハッシュ値の間の差分を評価する第4の関数と、前記ホライズン内のハッシュ値を合計する第5の関数と、前記ホライズン内のハッシュ値の平均値を計算する第6の関数として構成されることを特徴とする請求項61に記載のコンピュータ読取り可能媒体。
- 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記通信媒体の特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記少なくとも1つの再帰的チャンキングパラメータを調整するステップをさらに含むことを特徴とする請求項61に記載のコンピュータ読取り可能媒体。
- ローカルデバイスとリモートデバイスとの間の通信チャネル上でオブジェクトを更新するための、コンピュータによって実施される方法であって、
前記リモートデバイス上で第1のオブジェクトをチャンキングするステップと、
前記リモートデバイス上で前記第1のオブジェクトに関連するチャンクごとにシグネチャを計算してリモートシグネチャを提供するステップと、
前記リモートシグネチャから前記リモートデバイス上でリモートのシグネチャおよびチャンク長のリストを組み立てるステップと、
前記計算済みのフィンガプリント関数に基づいて前記ローカルデバイス上で第2のオブジェクトをチャンキングするステップと、
前記ローカルデバイス上で前記第2のオブジェクトに関連するチャンクごとにシグネチャを計算してローカルシグネチャを提供するステップと、
前記第1のオブジェクトが前記第2のオブジェクトにマッチングさせられるときに前記ローカルのシグネチャおよびチャンク長のリストが前記リモートのシグネチャおよびチャンク長のリストにマッチングさせられるように、前記ローカルシグネチャから前記ローカルデバイス上でローカルのシグネチャおよびチャンク長のリストを組み立てるステップと、
前記指定されたシグネチャおよびチャンク長のリストをチャンキングしてチャンキングされたシグネチャおよびチャンク長のリストを提供し、
前記チャンキングされたシグネチャおよびチャンク長のリストに関連するチャンクごとに再帰的シグネチャを計算し、
前記再帰的シグネチャと前記チャンキングされたシグネチャおよびチャンク長のリストとを用いて再帰的なシグネチャおよびチャンク長のリストを生成し、
追加の反復が再帰的処理について必要とされるときに前記指定されたシグネチャおよびチャンク長のリストを前記再帰的なシグネチャおよびチャンク長のリストに初期化し、
前記再帰的手続きが、必要とされる反復の回数を完了しているときに、前記再帰的なシグネチャおよびチャンク長のリストを返すことにより、
前記ローカルデバイス上でも前記リモートデバイス上でも共に、指定されたシグネチャおよびチャンク長のリストを処理するように構成された再帰的手続きを提供するステップと、
前記リモートのシグネチャおよびチャンク長のリストを前記指定されたシグネチャおよびチャンク長のリストとして前記再帰的手続きに渡し、前記再帰的手続きから前記再帰的リモートシグネチャおよびチャンク長のリストを返すことにより、前記リモートデバイス上で再帰的リモートシグネチャおよびチャンク長のリストを生成するステップと、
前記ローカルのシグネチャおよびチャンク長のリストを前記指定されたシグネチャおよびチャンク長のリストとして前記再帰的手続きに渡し、前記再帰的手続きから前記再帰的ローカルシグネチャおよびチャンク長のリストを返すことにより、前記ローカルデバイス上で再帰的ローカルシグネチャおよびチャンク長のリストを生成するステップと、
前記通信チャネル上で前記リモートデバイスから前記ローカルデバイスに前記再帰的リモートシグネチャおよびチャンク長のリストを送信するステップと、
前記受信された再帰的リモートシグネチャおよびチャンク長のリストを前記再帰的ローカルシグネチャおよびチャンク長のリストと比較することにより、前記第1のオブジェクトと前記第2のオブジェクトの間の少なくとも1つの差分を識別するステップと、
前記少なくとも1つの差分に基づいて前記第2のオブジェクトに関連する少なくとも1つの更新されたチャンクを識別するステップと、
前記リモートデバイスから前記少なくとも1つの更新されたチャンクの伝送を要求し、
前記通信チャネル上で前記リモートデバイスから前記少なくとも1つの更新されたチャンクを含む伝送を受信し、
前記少なくとも1つの更新されたチャンクを用いてオブジェクトを組み立てることにより、
前記ローカルデバイス上で前記第1のオブジェクトを更新するステップと
を含むことを特徴とする方法。 - 前記リモートデバイス上で前記第1のオブジェクトをチャンキングするステップは、前記第1のオブジェクトにフィンガプリント関数を適用して第1の組のフィンガプリントを生成するステップと、前記第1の組のフィンガプリントに基づいて前記第1のオブジェクトを第1の組のチャンクに区分するステップとを含むことを特徴とする請求項64に記載のコンピュータによって実施される方法。
- 前記ローカルデバイス上で前記第2のオブジェクトをチャンキングするステップは、前記第2のオブジェクトに前記フィンガプリント関数を適用して第2の組のフィンガプリントを生成するステップと、前記第2の組のフィンガプリントに基づいて前記第2のオブジェクトを第2の組のチャンクに区分するステップとを含むことを特徴とする請求項65に記載のコンピュータによって実施される方法。
- 前記通信チャネルは、直接配線接続、パラレルポート、シリアルポート、USBポート、IEEE1394ポート、無線接続、IRポート、ブルートゥースポート、有線ネットワーク、無線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、ウルトラワイドエリアネットワーク、インターネット、イントラネット、およびエクストラネットのうちの少なくとも1つであることを特徴とする請求項64に記載のコンピュータによって実施される方法。
- 前記少なくとも1つの差分に基づいて前記第2のオブジェクトに関連する少なくとも1つのチャンクを識別するステップは、
前記再帰的ローカルシグネチャおよびチャンク長のリストとは異なる前記受信された再帰的リモートシグネチャおよびチャンク長のリストの少なくとも1つの再帰的チャンクを識別するステップと、
前記リモートのシグネチャおよびチャンク長のリストの少なくとも1つのチャンクに前記少なくとも1つの再帰的チャンクをマッピングするステップと、
前記リモートデバイスから前記リモートのシグネチャおよびチャンク長のリストの前記少なくとも1つのチャンクの伝送を要求するステップと、
前記通信チャネル上で前記リモートデバイスから前記リモートのシグネチャおよびチャンク長のリストの前記少なくとも1つのチャンクを含む伝送を受信するステップと、
前記リモートのシグネチャおよびチャンク長のリストの前記受信された少なくとも1つのチャンクから、更新されたシグネチャおよびチャンク長のリストを組み立てるステップと
を含むことを特徴とする請求項64に記載のコンピュータによって実施される方法。 - 前記少なくとも1つの差分に基づいて前記第2のオブジェクトに関連する少なくとも1つのチャンクを識別するステップは、前記更新されたシグネチャおよびチャンク長のリストを前記ローカルのシグネチャおよびチャンク長のリストと比較して、前記リモートデバイス上で前記少なくとも1つの更新されたチャンクを識別するステップを含むことを特徴とする請求項68に記載のコンピュータによって実施される方法。
- 前記指定されたシグネチャおよびチャンク長のリストをチャンキングするステップは、前記指定されたシグネチャおよびチャンク長のリストにフィンガプリント関数を適用して1組のフィンガプリントを生成するステップと、前記1組のフィンガプリントに基づいて前記指定されたシグネチャおよびチャンク長のリストを1組のチャンクに区分するステップとを含むことを特徴とする請求項64に記載のコンピュータによって実施される方法。
- 前記フィンガプリント関数は、前記指定されたシグネチャおよびチャンク長のリストに関連する各バイト位置の周囲で参照されるウィンドウを提供するステップと、前記ウィンドウ中に位置づけられる前記バイト値からハッシュ値を計算するステップとを含むことを特徴とする請求項70に記載のコンピュータによって実施される方法。
- 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記通信チャネルの特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記ウィンドウに関連するウィンドウサイズを調整するステップをさらに含むことを特徴とする請求項71に記載のコンピュータによって実施される方法。
- 前記指定されたシグネチャおよびチャンク長のリストをチャンキングして前記チャンキングされたシグネチャおよびチャンク長のリストを提供するステップは、
少なくとも1つの再帰的チャンキングパラメータを決定するステップと、
前記少なくとも1つの再帰的チャンキングパラメータから再帰的ホライズン、再帰的トリガ値、および再帰的トリガのリストのうちの少なくとも1つを決定するステップと、
前記指定されたシグネチャおよびチャンク長のリスト内の位置ごとにハッシュ値を計算するステップと、
指定されたシグネチャおよびチャンク長のリスト内の各位置の周囲の前記チャンキングホライズン内に位置づけられたハッシュ値に数学関数を適用するステップと、
前記数学関数が、満たされるときにカットポイントおよびチャンキング境界のうちの少なくとも1つを指定するステップと、
前記指定されたカットポイントを用いて前記指定されたシグネチャおよびチャンク長のリストをチャンキングするステップと
を含むことを特徴とする請求項64に記載のコンピュータによって実施される方法。 - 前記数学関数は、ハッシュ値をブール値にマッピングする述語と、ハッシュ値を小さなドメイン中に区分する第1の関数と、前記ホライズン内の最大値を決定する第2の関数と、前記ホライズン内の最小値を決定する第3の関数と、前記ホライズン内のハッシュ値の間の差分を評価する第4の関数と、前記ホライズン内のハッシュ値を合計する第5の関数と、前記ホライズン内のハッシュ値の平均値を計算する第6の関数として構成されることを特徴とする請求項73に記載のコンピュータによって実施される方法。
- 前記第1のオブジェクトに関連するデータタイプ、前記第2のオブジェクトに関連するデータタイプ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記通信媒体の特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルのうちの少なくとも1つに基づいて、前記少なくとも1つの再帰的チャンキングパラメータを調整するステップをさらに含むことを特徴とする請求項73に記載のコンピュータによって実施される方法。
- 前記第1のオブジェクトに関連するデータサイズ、前記第2のオブジェクトに関連するデータサイズ、前記リモートデバイスに関連する環境制約、および前記ローカルデバイスに関連する環境制約と、前記通信チャネルの特性と、前記第1のオブジェクトに関連する使用モデルと、前記第2のオブジェクトに関連する使用モデルと、前記第1のオブジェクトに関連するチャンクシグネチャの数、ならびに前記チャンキングされたリモートのシグネチャおよびチャンク長のリストに関連するチャンクシグネチャの数のうちの少なくとも1つに基づいて、再帰的処理のために必要とされる反復回数を決定するステップをさらに含むことを特徴とする請求項64に記載のコンピュータによって実施される方法。
- 再帰的処理のために必要とされる反復回数が、少なくとも1回の反復に対応することを特徴とする請求項64に記載のコンピュータによって実施される方法。
Applications Claiming Priority (2)
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 |
US10/825,735 | 2004-04-15 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005302004A true JP2005302004A (ja) | 2005-10-27 |
JP2005302004A5 JP2005302004A5 (ja) | 2008-05-01 |
JP4796315B2 JP4796315B2 (ja) | 2011-10-19 |
Family
ID=34939140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005073985A Expired - Fee Related JP4796315B2 (ja) | 2004-04-15 | 2005-03-15 | 遠隔差分圧縮用の効率的アルゴリズムとプロトコル |
Country Status (18)
Country | Link |
---|---|
US (1) | US7555531B2 (ja) |
EP (2) | EP1587007A3 (ja) |
JP (1) | JP4796315B2 (ja) |
KR (1) | KR100922674B1 (ja) |
CN (2) | CN102170455B (ja) |
AU (1) | AU2005201386B2 (ja) |
BR (1) | BRPI0501166A (ja) |
CA (1) | CA2500894C (ja) |
CO (1) | CO5680121A1 (ja) |
IL (1) | IL167467A (ja) |
MX (1) | MXPA05002949A (ja) |
MY (1) | MY144798A (ja) |
NO (1) | NO20051344L (ja) |
NZ (1) | NZ538839A (ja) |
RU (1) | RU2382511C2 (ja) |
SG (1) | SG116576A1 (ja) |
TW (1) | TWI360336B (ja) |
ZA (1) | ZA200502115B (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009245089A (ja) * | 2008-03-31 | 2009-10-22 | Fujitsu Ltd | 分散オブジェクト・プログラム及びレプリケーション処理方法 |
JP2010512565A (ja) * | 2006-12-01 | 2010-04-22 | エヌイーシー ラボラトリーズ アメリカ インク | 多数の選択基準を用いるデータ管理方法およびシステム |
JP2010539606A (ja) * | 2007-09-14 | 2010-12-16 | マイクロソフト コーポレーション | データ依存チャンキングを使用する最適化されたデータストリーム圧縮 |
JP2012523044A (ja) * | 2009-04-03 | 2012-09-27 | マイクロソフト コーポレーション | ピア及びクラウドからの差分ファイル及びシステムの復元 |
JP2014508990A (ja) * | 2011-01-14 | 2014-04-10 | アップル インコーポレイテッド | コンテンツベースのファイルチャンキング |
JP2014510970A (ja) * | 2011-03-07 | 2014-05-01 | ブル・エス・アー・エス | コンピュータシステムでのデータの複製を最適化するための方法、装置およびコンピュータプログラム |
Families Citing this family (76)
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 |
US20050256974A1 (en) * | 2004-05-13 | 2005-11-17 | Microsoft Corporation | Efficient algorithm and protocol for remote differential compression on a remote device |
US20050262167A1 (en) * | 2004-05-13 | 2005-11-24 | Microsoft Corporation | Efficient algorithm and protocol for remote differential compression on a local device |
US8870639B2 (en) | 2004-06-28 | 2014-10-28 | Winview, Inc. | Methods and apparatus for distributed gaming over a mobile device |
US8376855B2 (en) | 2004-06-28 | 2013-02-19 | 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 |
JP2008547122A (ja) | 2005-06-20 | 2008-12-25 | エアプレイ ネットワーク インコーポレイテッド | サービス提供方法、データ受信方法、データ提供システム、クライアント装置及びサーバ装置 |
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 |
US20070070999A1 (en) * | 2005-08-02 | 2007-03-29 | Black Jeffrey T | Synchronization of historical data without retransmission |
US9919210B2 (en) | 2005-10-03 | 2018-03-20 | Winview, Inc. | Synchronized gaming and programming |
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 |
US9511287B2 (en) | 2005-10-03 | 2016-12-06 | Winview, Inc. | Cellular phone games based upon television archives |
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 |
US9056251B2 (en) | 2006-01-10 | 2015-06-16 | Winview, Inc. | Method of and system for conducting multiple contests 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 |
JP5204099B2 (ja) | 2006-05-05 | 2013-06-05 | ハイバー インコーポレイテッド | グループ・ベースの完全および増分コンピュータ・ファイル・バックアップ・システム、処理および装置 |
US7617322B2 (en) * | 2006-09-29 | 2009-11-10 | Microsoft Corporation | Secure peer-to-peer cache sharing |
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 |
US7865585B2 (en) | 2007-03-12 | 2011-01-04 | Citrix Systems, Inc. | Systems and methods for providing dynamic ad hoc proxy-cache hierarchies |
US7827237B2 (en) | 2007-03-12 | 2010-11-02 | Citrix Systems, Inc. | Systems and methods for identifying long matches of data in a compression history |
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 |
BRPI0809005A2 (pt) * | 2007-03-12 | 2014-09-16 | Citrix Systems Inc | Sistemas e métodos para a utilização de históricos de compactação para aperfeiçoar o desempenho da rede |
AU2012203797B2 (en) * | 2007-03-12 | 2015-05-07 | Citrix Systems, Inc. | Systems and methods for using compression histories to improve network performance |
US8255570B2 (en) | 2007-03-12 | 2012-08-28 | Citrix Systems, Inc. | Systems and methods of compression history expiration and synchronization |
US7619545B2 (en) | 2007-03-12 | 2009-11-17 | Citrix Systems, Inc. | Systems and methods of using application and protocol specific parsing for compression |
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 |
US8375396B2 (en) * | 2008-01-31 | 2013-02-12 | Hewlett-Packard Development Company, L.P. | Backup procedure with transparent load balancing |
US8200969B2 (en) * | 2008-01-31 | 2012-06-12 | Hewlett-Packard Development Company, L.P. | Data verification by challenge |
CA2713876C (en) | 2008-02-26 | 2014-11-04 | Vmware, Inc. | Extending server-based desktop virtual machine architecture to client machines |
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. |
US8661428B2 (en) | 2008-04-25 | 2014-02-25 | 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 |
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 |
EP2645286A1 (en) * | 2012-03-09 | 2013-10-02 | ABB Research Ltd. | Authentication in an industrial control system |
US8832375B2 (en) | 2012-05-24 | 2014-09-09 | International Business Machines Corporation | Object type aware byte caching |
US8856445B2 (en) | 2012-05-24 | 2014-10-07 | International Business Machines Corporation | Byte caching with chunk sizes based on data type |
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 |
US9235475B1 (en) | 2013-03-05 | 2016-01-12 | Emc Corporation | Metadata optimization for network replication using representative of metadata batch |
US9110964B1 (en) * | 2013-03-05 | 2015-08-18 | Emc Corporation | Metadata optimization for network replication using differential encoding |
KR101479864B1 (ko) * | 2013-11-08 | 2015-01-06 | 주식회사 엘지유플러스 | 멀티미디어 청크(chunk)를 수신하는 통신 단말기 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체 |
SG11201604498XA (en) | 2013-12-09 | 2016-07-28 | Sony Corp | Data processing device and data processing method |
CN105024970B (zh) * | 2014-04-18 | 2018-07-13 | 中国电信股份有限公司 | 移动应用数据拷贝的控制方法、系统、客户端和服务器 |
US10924904B2 (en) | 2014-12-02 | 2021-02-16 | Lg Electronics Inc. | Method and apparatus for performing object transfer service by using bluetooth communication in wireless communication system |
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协议的差异图像显示系统 |
US11681659B2 (en) * | 2021-05-21 | 2023-06-20 | Red Hat, Inc. | Hybrid file compression model |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003345708A (ja) * | 2002-05-23 | 2003-12-05 | Toshiba Corp | データ転送装置、データ転送方法及びプログラム |
Family Cites Families (44)
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 |
US5990810A (en) | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating 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 |
KR100328416B1 (ko) | 1996-01-22 | 2002-05-09 | 모리시타 요이찌 | 디지털화상부호화,복호화방법및그것을사용한디지털화상부호화,복호화장치 |
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 |
WO1998035306A1 (en) | 1997-02-11 | 1998-08-13 | 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 |
DE69932344T2 (de) * | 1998-10-16 | 2007-07-05 | Computer Associates Think, Inc. | Zugriff zu hierarchischem datenspeicher via sql-eingabe |
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 |
EP1311988A4 (en) * | 2000-06-22 | 2006-06-21 | Synchrologic Inc | SYSTEM AND METHOD FOR TRANSMITTING FILES BASED ON 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 |
US7523312B2 (en) | 2001-11-16 | 2009-04-21 | Koninklijke Philips Electronics N.V. | Fingerprint database updating method, client and server |
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システムの制御方法 |
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 |
US20050256974A1 (en) | 2004-05-13 | 2005-11-17 | Microsoft Corporation | Efficient algorithm and protocol for remote differential compression on a remote device |
US20050262167A1 (en) | 2004-05-13 | 2005-11-24 | Microsoft Corporation | Efficient algorithm and protocol for remote differential compression on a local device |
US7613787B2 (en) | 2004-09-24 | 2009-11-03 | Microsoft Corporation | Efficient algorithm for finding candidate objects for remote differential compression |
JP2008522254A (ja) | 2004-11-08 | 2008-06-26 | イノパス・ソフトウェアー・インコーポレーテッド | スタティック・ファイル・システムの差異検出および更新 |
US7640363B2 (en) | 2005-02-16 | 2009-12-29 | Microsoft Corporation | Applications for remote differential compression |
-
2004
- 2004-04-15 US US10/825,735 patent/US7555531B2/en active Active
-
2005
- 2005-02-22 SG SG200501089A patent/SG116576A1/en unknown
- 2005-03-01 RU RU2005105759/09A patent/RU2382511C2/ru not_active IP Right Cessation
- 2005-03-09 BR BR0501166-3A patent/BRPI0501166A/pt not_active IP Right Cessation
- 2005-03-14 KR KR1020050021145A patent/KR100922674B1/ko active IP Right Grant
- 2005-03-14 ZA ZA2005/02115A patent/ZA200502115B/en unknown
- 2005-03-14 TW TW094107741A patent/TWI360336B/zh not_active IP Right Cessation
- 2005-03-15 CN CN201110150768.3A patent/CN102170455B/zh active Active
- 2005-03-15 NO NO20051344A patent/NO20051344L/no not_active Application Discontinuation
- 2005-03-15 CO CO05024087A patent/CO5680121A1/es not_active Application Discontinuation
- 2005-03-15 NZ NZ538839A patent/NZ538839A/en not_active IP Right Cessation
- 2005-03-15 JP JP2005073985A patent/JP4796315B2/ja not_active Expired - Fee Related
- 2005-03-15 CA CA2500894A patent/CA2500894C/en not_active Expired - Fee Related
- 2005-03-15 CN CN2005100551077A patent/CN1684464B/zh active Active
- 2005-03-15 MY MYPI20051086A patent/MY144798A/en unknown
- 2005-03-16 MX MXPA05002949A patent/MXPA05002949A/es active IP Right Grant
- 2005-03-16 IL IL167467A patent/IL167467A/en unknown
- 2005-04-01 AU AU2005201386A patent/AU2005201386B2/en not_active Ceased
- 2005-04-05 EP EP05102664A patent/EP1587007A3/en not_active Withdrawn
- 2005-04-05 EP EP11009555A patent/EP2444909A2/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003345708A (ja) * | 2002-05-23 | 2003-12-05 | Toshiba Corp | データ転送装置、データ転送方法及びプログラム |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010512565A (ja) * | 2006-12-01 | 2010-04-22 | エヌイーシー ラボラトリーズ アメリカ インク | 多数の選択基準を用いるデータ管理方法およびシステム |
JP2010539606A (ja) * | 2007-09-14 | 2010-12-16 | マイクロソフト コーポレーション | データ依存チャンキングを使用する最適化されたデータストリーム圧縮 |
US8819288B2 (en) | 2007-09-14 | 2014-08-26 | Microsoft Corporation | Optimized data stream compression using data-dependent chunking |
JP2009245089A (ja) * | 2008-03-31 | 2009-10-22 | Fujitsu Ltd | 分散オブジェクト・プログラム及びレプリケーション処理方法 |
JP2012523044A (ja) * | 2009-04-03 | 2012-09-27 | マイクロソフト コーポレーション | ピア及びクラウドからの差分ファイル及びシステムの復元 |
US8805953B2 (en) | 2009-04-03 | 2014-08-12 | Microsoft Corporation | Differential file and system restores from peers and the cloud |
JP2014508990A (ja) * | 2011-01-14 | 2014-04-10 | アップル インコーポレイテッド | コンテンツベースのファイルチャンキング |
US8909657B2 (en) | 2011-01-14 | 2014-12-09 | Apple Inc. | Content based file chunking |
JP2016001480A (ja) * | 2011-01-14 | 2016-01-07 | アップル インコーポレイテッド | コンテンツベースのファイルチャンキング |
US9305008B2 (en) | 2011-01-14 | 2016-04-05 | Apple Inc. | Content based file chunking |
JP2014510970A (ja) * | 2011-03-07 | 2014-05-01 | ブル・エス・アー・エス | コンピュータシステムでのデータの複製を最適化するための方法、装置およびコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
ZA200502115B (en) | 2007-08-29 |
CN102170455A (zh) | 2011-08-31 |
EP1587007A3 (en) | 2007-04-18 |
CO5680121A1 (es) | 2006-09-29 |
CA2500894C (en) | 2013-07-02 |
CN1684464B (zh) | 2011-07-27 |
KR20060043620A (ko) | 2006-05-15 |
TW200537881A (en) | 2005-11-16 |
NO20051344D0 (no) | 2005-03-15 |
US20050235043A1 (en) | 2005-10-20 |
SG116576A1 (en) | 2005-11-28 |
JP4796315B2 (ja) | 2011-10-19 |
CN102170455B (zh) | 2015-12-16 |
RU2005105759A (ru) | 2006-08-10 |
NO20051344L (no) | 2005-10-17 |
EP1587007A2 (en) | 2005-10-19 |
TWI360336B (en) | 2012-03-11 |
EP2444909A2 (en) | 2012-04-25 |
NZ538839A (en) | 2007-07-27 |
RU2382511C2 (ru) | 2010-02-20 |
KR100922674B1 (ko) | 2009-10-19 |
IL167467A (en) | 2010-11-30 |
AU2005201386A1 (en) | 2005-10-27 |
CN1684464A (zh) | 2005-10-19 |
BRPI0501166A (pt) | 2005-12-06 |
MXPA05002949A (es) | 2005-10-19 |
MY144798A (en) | 2011-11-15 |
CA2500894A1 (en) | 2005-10-15 |
AU2005201386B2 (en) | 2010-06-17 |
US7555531B2 (en) | 2009-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4796315B2 (ja) | 遠隔差分圧縮用の効率的アルゴリズムとプロトコル | |
US8117173B2 (en) | Efficient chunking algorithm | |
US7613787B2 (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 | |
US7640363B2 (en) | Applications for remote differential compression | |
US20050256974A1 (en) | Efficient algorithm and protocol for remote differential compression on a remote device | |
AU1853699A (en) | Data file synchronisation | |
US10339124B2 (en) | Data fingerprint strengthening | |
CN102318310A (zh) | 用于重建种子内容元数据的方法和设备 | |
Agarwal et al. | Bandwidth efficient string reconciliation using puzzles | |
US11669496B2 (en) | Method and apparatus for replicating a target file between devices | |
US20170048303A1 (en) | On the fly statistical delta differencing engine | |
US20120047142A1 (en) | Network coding with last modified dates for p2p web caching | |
WO2013136584A1 (ja) | データ転送システム | |
US20170048302A1 (en) | Static statistical delta differencing engine | |
Riza et al. | Base-Delta Dynamic Block Length and Optimization on File Compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080317 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080317 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101214 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110314 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110317 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110414 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110419 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110513 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110722 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110729 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4796315 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140805 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |