JP2005293560A - 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法 - Google Patents

項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法 Download PDF

Info

Publication number
JP2005293560A
JP2005293560A JP2005056021A JP2005056021A JP2005293560A JP 2005293560 A JP2005293560 A JP 2005293560A JP 2005056021 A JP2005056021 A JP 2005056021A JP 2005056021 A JP2005056021 A JP 2005056021A JP 2005293560 A JP2005293560 A JP 2005293560A
Authority
JP
Japan
Prior art keywords
change unit
synchronization
data
metadata
computer
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
Application number
JP2005056021A
Other languages
English (en)
Other versions
JP4690076B2 (ja
Inventor
Vivek J Jhaveri
ジェイ.ジャベリ ビベク
Douglas B Terry
ビー.テリー ダグラス
Lev Novik
ノビク レブ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
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 JP2005293560A publication Critical patent/JP2005293560A/ja
Application granted granted Critical
Publication of JP4690076B2 publication Critical patent/JP4690076B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01GHORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
    • A01G31/00Soilless cultivation, e.g. hydroponics
    • A01G31/02Special apparatus therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01GHORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
    • A01G31/00Soilless cultivation, e.g. hydroponics
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P60/00Technologies relating to agriculture, livestock or agroalimentary industries
    • Y02P60/20Reduction of greenhouse gas [GHG] emissions in agriculture, e.g. CO2
    • Y02P60/21Dinitrogen oxide [N2O], e.g. using aquaponics, hydroponics or efficiency measures
    • 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/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • 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
    • 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/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Environmental Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】 手作業での、および自動的な競合解決動作中に競合を検出し、競合解決を適用するシステムおよび方法を提供する。
【解決手段】 いくつかの実施形態は、(a)最終的に、パートナーが、拡散した定常状態になり得る(すなわち、未解決の競合がない状態で、異なるデータを有する)場合の競合解決の非収束、および(b)パートナーの間で、競合解決のピンポンが終わらない状態(各競合解決のためのメタデータを絶え間なく無限にアップデートする、非効率な特定のソリューションの場合に起こり得る)両方を防ぐことを対象とする。本発明の具体的な特定の実施形態は、異なるパートナーが異なる競合解決を適用する場合でも、データの収束を保証する知識を維持する方法を対象とする。
【選択図】 図3

Description

本発明は概して、コンピュータシステムに渡るデータ同期に関し、より詳細には、ピアツーピア同期システムにおける競合の解決、および項目収束(item convergence)(すなわち、データ収束(data convergence))(つまり、同期用に用いられる変更単位に基づくデータ収束)を確実にするやり方での競合解決の伝播(propagating)に関する。
同期中に起こる競合は、ピアツーピア同期環境内の異なる同期パートナーによって異なるやり方で解決され得る。このようなピアツーピア同期環境の1つおよびその基底にあるハードウェア/ソフトウェアインターフェイスシステムは、(オペレーティングシステムなどだがそれに限定されない)ハードウェア/ソフトウェアインターフェイスシステムであり、このシステムでは、他のものの中でも、格納可能な情報(項目)からなる自立単位が、同期のための基本データ変更要素を構成するいくつかのコンポーネント変更単位(CU)を含む。各CUは、ピアコンピュータシステム上でどのような変更がアップデートされる必要があるか、ならびに他のピアコンピュータシステムから受け取ったどのような変更が適用されるべきかを同期システムが追跡することを可能にするメタデータを関連づけている。
同期のための変更単位およびメタデータ(または類似の構造)を用いるシステム用の基本的な同期の例示的な一形式は概して、2つのピアコンピュータシステム上に存在する項目用の単一の変更単位に関して説明されることができる。この単一変更単位に関して、第1のピア、すなわちパートナーA(またはより簡単に「A」)が、第2のピア、すなわちパートナーB(またはより簡単に「B」)に対して、変更単位の複製(CUa)に関する、Aの現在のメタデータ(Ma)をBに送信することによって、変更を要求する。パートナーBは、(CUaに対応する)Maを受信すると、このメタデータを、同じ変更単位の複製(CUb)に関するB自体のメタデータ(Mb)と比較する。次いで、Mbが、Maで反映されていない、CUbに対するいずれかの変更を反映している場合、Bは、AにCUbおよびMb両方を送信する。それ以外の場合、Bは、AにMbのみを送信する(あるいは、「アップデートなし」というインジケータをAに送信する)。というのは、CUaは、CUbに対して行われたすべてのアップデートを既に反映しており、したがって、BからAにCUbをコピーする必要はないからである。
同期要求に対するBの応答に基づいて、Aが、CUbではなくMbのみ(あるいは、「アップデートなし」インジケータ)をBから受信した場合、Aは、CUaが、CUbと同じであるか、それともCUbよりもアップデートされているかを知る。しかし、Aが、MbおよびCUb両方をBから受信した場合、Aは、MaをMbと比較することによって、CUbが、CUaよりもアップデートされているかどうか、またはCUaおよびCUbが、競合する変更を有しているかどうか、判定しなければならない。CUbがCUaよりもアップデートされている場合、Aは、CUbでCUaをアップデートし、また、MbでMaをアップデートする。反対に、CUaおよびCUbが、競合する変更を有している場合、Aは、そのローカルな競合解決手順によってその競合を解決する。たとえば、この場合のAの競合解決手順が、リモートなソリューションよりもローカルなソリューションを選ぶものである場合、Aは、(CUbの変更を拒否して)CUaをもち続け、MaおよびMbに既に反映されているすべてのアップデート(MaおよびMbの合併)を含むようにMaをアップデートする。その後、Bが同じ手順を用いてAと同期する(かつ、追加の変更が介入しないと仮定する)と、Bは、CUaがそのCUbよりもアップデートされていると結論づけ、CUbをCUaでアップデートする。
同期に対する、この基本的な変更単位およびメタデータ(CUAM)手法は、2つのピアからなる同期コミュニティにとって容易であり有効である。しかし、3つ以上のピアの場合、この容易な手法は、2つのシステムが異なる競合解決ソリューションに到達するが同一のメタデータをもち得るようなデータの拡散(divergence)を生じる可能性があるので、この論理的な矛盾が、ピアコミュニティ内で認識されることも、適切に改められることもできない。(本明細書において、この現象の詳細な例が後で提示される。)
すべてのピア上のデータを収束させるために、当該分野において必要とされるのは、すべての関連ピアに及ぶ1つの競合解決法に一致して収束させるために、同期コミュニティ内のピアの間で特定の競合解決を正しく識別し伝播させ、同じ競合に対する異なる解決法を調停する、様々なタイプの同期システムのための同期方法である。
本発明の様々な実施形態は、手作業での、および自動的な競合解決動作中に競合を検出し、競合解決を適用するシステムおよび方法を対象とする。いくつかの実施形態は、(a)最終的に、パートナーが、拡散したままの定常状態になり得る(すなわち、未解決の競合がない状態で、異なるデータを有する)場合の競合解決の非収束、および(b)パートナーの間で、競合解決のピンポン(ping−pong)が終わらない状態(各競合解決のためのメタデータを絶え間なく無限にアップデートする、非効率な特定のソリューションの場合に起こり得る)両方を防ぐことを対象とする。本発明の具体的な特定の実施形態は、異なるパートナーが異なる競合解決を適用する場合でも、データの収束を保証する知識を維持する方法を対象とする。
上述の要約、ならびに以下の好ましい実施形態の詳細な説明は、添付の図面と併せ読むとよりよく理解されよう。本発明を説明するために、本発明の例示的な構成が図面に示される。ただし、本発明は、開示される特定の方法および手段に限定されない。
本主題が、法的要件を満たすために明確に説明される。ただし、説明自体は、本特許の範囲を限定することを意図していない。そうではなく、本発明者は、特許請求の対象が、本文書において説明されるものと類似した、異なるステップまたはステップの組合せを含むように、現在または将来の他の技術とともに、他の方法でも実施されることを企図している。さらに、「ステップ」という用語は、本明細書において、利用される方法の異なる要素を意味するのに用いられ得るが、この用語は、個々のステップの順序が明確に記述されない限り、本明細書において開示される様々なステップの間のいかなる具体的な順序も含意すると解釈されるべきでない。
(コンピュータ環境)
本発明の数多くの実施形態が、コンピュータ上で実行されることができる。図1および以下の説明は、本発明が実装され得る適切な計算機環境の簡潔かつ全体的な説明を提供することを意図している。そうすることが必要なわけではないが、クライアントワークステーションやサーバなどのコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令という一般的なコンテキストにおいて本発明が説明される。概して、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家電製品またはプログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなど他のコンピュータシステム構成とともに実施され得ることを当業者は理解するであろう。本発明は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実施される分散型計算機環境でも実施されることができる。分散型計算機環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶装置両方に置かれ得る。
図1に示すように、例示的な汎用計算機システムは、従来のパーソナルコンピュータ20などを含み、このコンピュータは、処理ユニット21、システムメモリ22、およびシステムメモリなど様々なシステムコンポーネントを処理ユニット21に結合するシステムバス23を含む。システムバス23は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。システムメモリは、ROM(読出し専用メモリ)24およびRAM(ランダムアクセスメモリ)25を含む。BIOS26(基本入出力システム)は、たとえば起動中にパーソナルコンピュータ20内部の要素間の情報の転送を助ける基本ルーチンを含み、ROM24に格納される。パーソナルコンピュータ20は、図示していないハードディスクからの読出しおよびそこへの書込みを行うハードディスクドライブ27、着脱式磁気ディスク29からの読出しまたはそこへの書込みを行う磁気ディスクドライブ28、および、たとえばCD ROMや他の光学媒体などの着脱式光ディスク31からの読出しまたはそこへの書込みを行う光ディスクドライブ30をさらに含むことができる。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれハードディスクドライブインターフェイス32、磁気ディスクドライブインターフェイス33、および光ドライブインターフェイス34によって、システムバス23に接続される。こうしたドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶をパーソナルコンピュータ20にもたらす。本明細書で説明される例示的な環境は、ハードディスク、着脱式磁気ディスク29、および着脱式光ディスク31を使用するが、コンピュータによってアクセス可能なデータを格納することができる、コンピュータ可読な他のタイプの媒体も、例示的な動作環境において使われ得ることが、当業者には理解されるべきである。このような他のタイプの媒体として、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、RAM(ランダムアクセスメモリ)、ROM(読出し専用メモリ)などがある。
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、他のプログラムモジュール37、およびプログラムデータ38などいくつかのプログラムモジュールが、ハードディスク、磁気ディスク29、光ディスク31、ROM24、またはRAM25に格納されることができる。ユーザは、キーボード40などの入力デバイス、およびポインティングデバイス42を介して、コマンドおよび情報をパーソナルコンピュータ20に入力することができる。他の入力デバイス(図示せず)は、マイクロホン、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどを含み得る。こうしたおよび他の入力デバイスはしばしば、システムバスに結合されるシリアルポートインターフェイス46を介して処理ユニット21に接続されるが、他のインターフェイス、たとえば並列ポート、ゲームポート、USB(ユニバーサルシリアルバス)によって接続されることもできる。モニタ47または他のタイプの表示デバイスも、ビデオアダプタ48などのインターフェイスを介してシステムバス23に接続される。モニタ47に加え、パーソナルコンピュータは通常、他の周辺出力デバイス(図示せず)、たとえばスピーカおよびプリンタを含む。図1の例示的なシステムは、ホストアダプタ55、SCSI(小型計算機システムインターフェイス)バス56、およびSCSIバス56に接続された外部記憶装置62も含む。
パーソナルコンピュータ20は、リモートコンピュータ49など1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続された環境において動作することができる。リモートコンピュータ49は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードでよく、通常、パーソナルコンピュータ20に関連して上述した要素の多くまたはすべてを含むが、図1にはメモリ記憶装置50のみが示されている。図1に示した論理接続は、LAN(ローカルエリアネットワーク)51およびWAN(ワイドエリアネットワーク)52を含む。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。
LANネットワーク環境において使われる場合、パーソナルコンピュータ20は、ネットワークインターフェイスまたはアダプタ53を介してLAN51に接続される。WANネットワーク環境において使われる場合、パーソナルコンピュータ20は通常、モデム54、または、たとえばインターネットなどのワイドエリアネットワーク52を介した通信を確立する他の手段を含む。モデム54は、内部にあっても外部にあってもよく、シリアルポートインターフェイス46を介してシステムバス23に接続される。ネットワーク接続された環境では、パーソナルコンピュータ20に関連して図示したプログラムモジュールまたはその一部は、リモートメモリ記憶装置に格納されることができる。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使われ得ることが理解されよう。
本発明の数多くの実施形態は、コンピュータによるシステムに特に適合すると想像されるが、本文書のどの部分も、本発明をこのような実施形態に限定することを意図していない。反対に、本明細書で使用する「コンピュータシステム」という用語は、デバイスが本質的に電子、機械、論理、または仮想であるかに関わらず、情報を格納し処理することができ、かつ/またはこのようなデバイス自体の動作または実行を制御するのに、格納された情報を使うことができるあらゆるデバイスを包含することを意図する。
(基本同期スキーマおよび項目拡散)
本発明の特定の実施形態、たとえば項目ベースのシステムにとって、「変更単位」とは、本質的に、常に一単位として同期される1組のプロパティである。たとえば、連絡先項目の名前および名字というプロパティは合わせて、1個の変更単位を構成することができる。さらに、「バージョン」が、各変更単位に関連づけられて、アップデートが行われたときに対応するタイムスタンプとともに、その変更単位へのある特定の変更を最後に行ったパートナーを表す。したがって、表記を簡単にするため、本明細書で使用するパートナーは文字で表され、タイムスタンプは、整数を増やすことによって表され、その結果、パートナー(たとえば「A」)およびタイムスタンプ(たとえば「1」)を単に対にすることによって、各変更単位はそれ自体を、各パートナーによって特定の時間に行われた最新の変更を反映する一意の識別番号、たとえば「A1」に関連づけている。
本明細書において上で説明されたような(データの非収束を生じ得る)基本同期スキーマの場合、各変更単位に関するメタデータは、2つのコンポーネントを含む。すなわち、変更単位の現在の「アップデート」状況を示す現在のバージョン(cv)、ならびにピアコミュニティ内の各パートナー(あるいは少なくとも、何らかの変更を行ったパートナー)に関する、前記変更単位に起こったアップデートに対応する認識ベクトル(av)(別名、「バージョン配列」)である。変更単位のメタデータ用の一般的な形式は、<変更バージョン,認識ベクトル>、またはより簡単には、<cv,[av]>である。この情報はともに、たとえば、<A13,[A13,B11]>というメタデータ(Ma)をもつ、パートナーAにおける変更単位(CUa)が、<B11,[A12,B11]>というメタデータ(Mb)をもつ、パートナーBにおける変更単位(CUb)よりもアップデートされていることを容易に判定するのに用いられ得る。というのは、各バージョン番号のタイムスタンプ部分が、時間とともに徐々に増加することを考えると、Maは、Mbに反映されていない変更(すなわちA13)を含むからである。
図2は、最終的に競合解決の非収束(パートナーが拡散定常状態になり得る)を生じる、(3つのパートナーによる同期コミュニティのための)3つのピアによる同期動作を示す、テーブルに基づくタイムフロー図である。テーブル「T」の第1列は、イベントの相対的な時系列に対応し、第2、第3、および第4の列は、同期コミュニティ内の3つのパートナーシステムA、B、およびCそれぞれにおけるアクティビティに対応する。便宜上、図に示されるように、各パートナーA、B、およびCにおける変更単位の複製に対する時間0での初期状態は、完全に同期した状態で始まり、この状態において、各パートナーA、B、およびCに関する変更単位の複製は、対応する各列のデータによって個別に表されている。
時間1で、Aは、変更単位の複製(これ以降、CUa)中のデータをアップデートし、そのアップデートを、新しい値(A11)でcvを増分しアップデートされた状態を反映するようにavをアップデートすることによって反映させる。時間2で、Bも、変更単位の複製(これ以降、CUb)中のデータを独自にアップデートし、cvおよびavを適切にアップデートする。
時間3で、CがBと同期して、第1の同期動作が起こる。動作の際、本明細書において上で説明した論理を用いて、Cは、そのメタデータ(Mc)をBに送り、Bは、応答として、その変更単位のコピー(CUb)およびそれに関連するメタデータ(Mb)両方を、さらに処理させるためにCに送る。Cは、CUbおよびMbを受け取ると、AVcのすべてがAVbに反映されているのにBの認識ベクトル(AVb)中のバージョン「B11」がCの認識ベクトル(AVc)に反映されていないので、CUbおよびMbがCUcおよびMcより現在のものに近いことを突き止め、したがってこのことは、CUbが、CUcに関して「最終アップデート済み」である(より最新のものである)ことを意味する。その結果、Cは、CUbのデータでCUcをアップデートし、Mbのメタデータで、関連するメタデータMcをさらにアップデートする。
時間4で、Bは次いで、パートナーAと同期し、Aの変更単位(CUa)およびメタデータ(Ma)を(ここでは便宜上説明が省略されるが、後で論理的に説明されるやり方によって)受け取った後、Bは、BおよびA両方がそれぞれの変更単位の複製CUbおよびCUaに対して個別に変更を行っているので、競合が存在することを突き止める。Bは次いで、その競合解決プロセス(この例では、「リモートを選択」、つまり、そのローカルバージョンよりもリモートバージョンを選ぶことである)を利用して、CUbよりもCUaを選び(CUaのデータをCUbにコピーし)、その現在のバージョン(CVb)をA11に変更しBおよびA両方の認識ベクトル(AVbおよびAVa)をマージさせることによってこの解決法をメタデータに反映させる。
時間5で、Cは次いで、パートナーAと同期し、Aの変更単位(CUa)およびメタデータ(Ma)を受け取った後、Cもやはり、CおよびA両方がそれぞれの変更単位の複製CUcおよびCUaに対して個別に変更を行っているので、競合が存在することを突き止める(しかし実際には、CUcの変更は、時間3でCがBと同期した結果によるが、この違いは重要でない)。競合により、Cは次いで、その競合解決プロセス(この例では、「ローカルを選択」、つまり、リモートバージョンよりもCのローカルバージョンを選ぶことである)を利用して、CUaよりもCUcを選び(変更単位データをさらにコピーする必要はない)、その現在のバージョン(CVc)をB11としてもち続けCおよびA両方の認識ベクトル(AVcおよびAVa)をマージさせることによってこの解決法をメタデータに反映させる。
時間6で、Aは次いで、Bと同期し、交換したメタデータ(AがBにMaを送り、次いでBが、CUaとともにMbをAに戻す)に基づいて、Aは、(MbはMaのすべてを反映し、バージョンB11も反映しているが、Maは反映していないので)CUbおよびMbがCUaおよびMaよりもアップデートされていると認識し、したがってAは、そのCUaおよびMaにCUbおよびMbを適用する(ただし、この場合、CUbおよびCUaは実際には同じもの、つまりA11であり、したがって代替実施形態では、Bは、この事実を認識し、CUbを送らなくてもよく、Aも、CUaにCUbにコピーしなくてもよいことが留意されるべきである)。
最後に、時間7で、Aは次いで、Cと同期するが、MaがMcと同一なので、Cは、AにCUcを送らず、したがって、AおよびCそれぞれにおけるCUaおよびCUcのデータは拡散しており、現在の同期システムによって認識されることができず調停されにくい状態にある。
(競合解決の伝播)
本発明のいくつかの実施形態は、手作業での、および自動的な競合解決動作中に競合を検出し、競合解決を適用するシステムおよび方法を対象とする。というのは、たとえば、バージョンA1とB2の間に、A1のためにはパートナーXによって、かつB2のためにはパートナーYによって解決される競合が存在する場合などに、異なるピア(「パートナー」)は、同じ競合を異なるやり方で解決し得るからである。
本発明の様々な実施形態は、(未解決の競合がない場合に異なるデータをもつことなどによって、パートナーが拡散した定常状態になり得る)競合解決の非収束、およびパートナーの間の競合解決の無限ピンポンを防止する1つまたは複数の方法を利用する。
いくつかの本発明の実施形態の場合、同期用メタデータは、変更バージョン(cv)および認識ベクトル(av)を含むだけでなく、拡散状態につながり得る競合解決を特に追跡する競合解決バージョン(crv)をさらに含む。変更単位のメタデータへのcrvの追加に基づいて、同期プロセスは、本明細書において説明されるように、メタデータ中のこの新しい要素を使うように修正される。便宜上、cv、crv、およびavを含む前記同期メタデータは、変更単位の各複製(たとえば、<A10,B12,[A11,B12,C10]>に対して、<cv,crv,[av]>の形で表されることができる。
図3は、本発明のいくつかの実施形態で用いられる、メタデータへのcrvの追加に基づく改良された同期プロセス、および本明細書において説明されるようにメタデータを修正する他のプロセスを示すプロセスフロー図である。図3において、プロセスは、ステップ312で始まり、第1のパートナーP1(別のピアとの同期を捜し求めているパートナー)が、そのローカルな変更単位の複製(CU1)の認識ベクトル(AV1)をP2に送ることによって、第2のパートナーP2との同期動作を開始する。P2は、P1からAV1を受け取った後、ステップ316で、AV1が、それ自体の、ローカルであるが対応する変更単位の複製(CU2)の現在のバージョン(CV2)を含むかどうか最初に判定し、含む場合、ステップ318で、P2は、AV1がCU2(存在する場合)の競合解決バージョン(CRV2)も含むかどうかも判定する。AV1が、こうした条件両方を満たす場合、次いで、ステップ320で、P2は、CU2自体を送らずに、CV2、CRV2、およびAV2を含む、P2がもつCU2のメタデータ(M2)を直ちにP1に送る。AV1がCRV2を含まない場合、ステップ322で、P2は、P1にCU2を送り、かつ、ステップ320で、M2を送る。
P1に戻ると、ステップ324で、P1は最初に、P2からCU2を受け取ったかどうか判定する。受け取っていない場合、次いで、P1は、その変更単位の複製(CU1)がP1とP2の間に関して最も新しいアップデートを反映していると結論づけることができ、したがってステップ326で、P1は、(必要な場合)AV2でAV1を単にアップデートし、そうすることによって、AV1は、(まだ反映していない場合)AV2中のすべてのアップデートバージョンを反映し、同期プロセスは終わる。
逆に、ステップ324で、P1がP2からCU2を実際に受け取っていた場合、ステップ328で、P1は、CV2によって反映されるバージョンをAV1が含むかどうか最初に判定しなければならず、含む場合、ステップ330で、CRV2によって反映されるバージョンをAV1が含むかどうかも判定しなければならない。含む場合、次いで、P1は、やはりステップ326に進んで、(必要な場合)AV1をアップデートし、同期プロセスは終わる。反対に、AV1が、ステップ328で、CV2によって反映されるバージョンを含むが、ステップ330で、CRV2によって反映されるバージョンを含まないとP1が判定した場合、ステップ332で、P1は、CV1によって反映されるバージョンの少なくとも一部をAV2が含むかどうか判定する。「一部」という言葉は、特定の代替実施形態の場合、CV1が1組の複数のcv値であり得ることを期待しているが、この例のように1個のcv値の場合は、問題となっているcv値を含むことと同じであり(したがって、1個のcvの組に対してステップ334がある程度重複する)、したがって、1個のcvの組においてステップ334に自動的に進むことになるが、これは全体を通して用いられるケースであり、AV2がCV1の一部を含まない場合、ステップ326で、P1は、(必要な場合)AV2でAV1をやはりアップデートし、同期プロセスは終わる。
対照的に、ステップ328で、AV1がCV2を含まない場合、またはステップ332で、AV2がCV1の一部を実際に含む場合、ステップ334で、P1は次に、AV2がCV1を含むかどうか判定する。含む場合、ステップ336で、P1は、CV2によって反映されるバージョンの少なくとも一部をAV1が含むかどうか突き止め、含まない場合、ステップ338で、P1は、CU1にCU2を適用し(またはCU2からCU1にデータをコピーし)、(CV1、CRV1、AV1を含む)対応するメタデータM1を、<CV2,CRV2,AV1+AV2>という値(AV1+AV2は、各認識ベクトルの最新バージョンの合併であり、たとえば、AV1=[A11,B10,C10]、かつAV2=[A10,B11,C12]の場合、AV1+AV2=[A11,B11,C12]となる)に設定し、同期プロセスは終わる。しかし、ステップ336で、AV1がCV2の一部を実際に含むとP1が判定した場合、ステップ340で、P1は、AV2がCRV1を含むかどうかも判定し、含む場合、P1は、やはりステップ338に進んで、上で説明したようにCU2を適用し、同期プロセスは終わる。
別法では、ステップ334で、AV2がCV1を含まないとP1が判定した場合、またはステップ340で、AV2がCRV1を含まないとP1が判定した場合、いずれの場合も、P1は、ステップ342で、AV1がCV2を含むかどうか突き止め、含む場合、ステップ344で、P1は、「特殊な処理」を利用して、ソリューション(競合が存在しないので)を選び、その後、同期プロセスを終える。AV1がCV2を含まない場合、ステップ346で、P1は、「競合プロセス」(または競合解決プロセス)を開始して、競合を解決し、2組のデータの間の勝者を選び、同期プロセスを終える。
(高度な同期スキーマおよび項目収束(すなわち、データ収束))
図3で説明し図示した上記の方法を用いることによって、(基本同期スキーマでの場合のように)異なる変更単位値をもつが同じメタデータをもつ2つの変更単位の複製が認識されず、拡散状態のまま放置されるという状況が回避され、図4は、図2に示されるのと同様のシナリオを使用するが図3に示される本発明の方法を適用することによって、この点を説明する。
より具体的には、図4は、最終的に競合解決の収束を生じる、3つのピアによる同期動作を示す、テーブルを基にしたタイムフロー図である。さらに、図5は、図3に示すプロセスの結果生じる特定の最終状態に対する具体的な処理および競合プロセスに関する、結果として生じるメタデータ、ならびに(新規ローカル変更は同期動作の直接の一部ではないので、比較のためだが、時間1および2において後で説明されるように、ローカルなアップデートに対してメタデータがどのように変わるかの理解のために)新規ローカル変更に関するメタデータを示すテーブルである。
再度図4を参照すると、テーブル「T」の第1列は今回も、イベントの相対的な時系列に対応し、第2、第3、および第4の列は、同期コミュニティ内の3つのパートナーシステムA、B、およびCそれぞれにおけるアクティビティに対応する。便宜上、図に示されるように、各パートナーA、B、およびCにおける変更単位の複製に対する時間0での初期状態は、完全に同期した状態で始まり、この状態において、各パートナーA、B、およびCに対する変更単位の複製は、対応する各列のデータによって個別に表されている。
時間1で、Aは、変更単位の複製(これ以降、CUa)中のデータをアップデートし、そのアップデートを、新しい値(A11)でその現在のバージョン(cv)を増分しアップデートされた状態を反映するように認識ベクトル(av)をアップデートすることによって反映させ、競合解決バージョン(crv)には、(競合が解決されなかったので)アップデートが行われない。時間2で、Bも、変更単位の複製(これ以降、CUb)中のデータを独自にアップデートし、対応するそのメタデータ(Mb)コンポーネントを図に示すように適切にアップデートする。(これ以降、便宜上、各パートナーcv、crv、およびavは、パートナーごとに、たとえば、ピアAのメタデータコンポーネントに対してはCVa、CRVa、およびAVaと示され、パートナーBおよびCにおける対応するメタデータの場合も同様の名称となる。同じことが集合メタデータにも適用され、たとえば、システムA用はMa、変更単位に関しては、たとえばシステムA用はCUa、などとなる。)
時間3で、CがBと同期して、第1の同期動作が起こる。図3のフローチャートで示される方法を用いて、Cは、BにAVcを送り、Bは、CにCUbおよびMb両方を返す。MbおよびMcを分析することにより、Cは、CUbがCUcよりもアップデートされていると判定することができ、最終的に、CUbを適用し(すなわち、CUcにCUbをコピーし)、そのメタデータMcコンポーネントCVc、CRVc、およびAVcを、<CVb,CRVb,AVc+AVb>に等しい値にアップデートする(ここで、AVc+AVbは、本明細書において上で説明したように、AVcとAVbの合併である)。より具体的には、図3で示されるプロセスに関して、論理プロセスは、ステップ312、316、322、320、324、328、334、336、340、および338をこの順序でトラバースする。(結果は、本明細書において上で説明した基本同期システムから予期されるであろう結果と同様であることに留意されたい。)
再度図4を参照すると、時間4で、Bは次いで、パートナーAと同期し、Aの変更単位(CUa)およびメタデータ(Ma)を(やはり図3のフローチャートで示される方法に従って)受け取った後、Bは、BおよびA両方がそれぞれの変更単位の複製CUbおよびCUaに対して個別に変更を行っているので、競合が存在することを突き止め、その競合解決プロセスを利用する。より具体的には、図3で示されるプロセスに関して、論理プロセスは、ステップ312、316、322、320、324、328、334、342、および346をこの順序でトラバースする。競合を解決するために、Bは、その競合解決手順に従って、ローカルなアップデートよりもリモートなアップデートを選び、その結果得られるMbのメタデータの値は、図5に示されるように、<CVa,CRVnew,AVa+AVb+CRVnew>であり、ここで、CRVnewの「new」は、パートナーB用の次の増分アップデートバージョンであり(たとえば、この例では、時間2での変更に対する最終アップデートバージョンはB11であったので、この競合解決用の次の増分アップデートバージョンはB12である)、CRVbおよびAVb両方(ただしCVbは除く)が、時間4でのMbの最終状態に対して、図4に示すようにこの新しい値を反映する。
時間5で、Cは次いで、パートナーAと同期し、Aの変更単位(CUa)およびメタデータ(Ma)を受け取った後、Cもやはり、(312、316、322、320、324、328、334、342、および346をこの順序でトラバースする図3のプロセスによって)CおよびA両方がそれぞれの変更単位の複製CUcおよびCUaに対して個別に変更を行っているので、競合が存在することを突き止める(しかし実際には、CUcの変更は、時間3でCがBと前に同期していた結果によるが、この違いは重要でない)。競合により、Cは次いで、その競合解決プロセス(この例では、リモートなアップデートよりもローカルなアップデートを選択することである)を利用して、CUaよりもCUcを選び、この選択は、図5に示されるように、<CVc,CRVnew,AVa+AVc+CRVnew>としてメタデータに反映され、ここで、やはりCRVnewは、パートナーC用の次の増分アップデートバージョン(たとえば、この例ではC11)であり、時間5でのMcの最終状態に関して図4に示すように、得られたCRVcおよび得られたAVc両方(ただしCVcを除く)によって反映されている。
時間6で、Aは次いで、Bと同期し、交換したメタデータ(AがBにMaを送り、次いでBが、CUaとともにMbをAに戻す)に基づいて、Aは、(MbはMaのすべてを反映し、バージョンB11も反映しているが、Maは反映していないので)CUbおよびMbがCUaおよびMaよりもアップデートされていると認識し、したがってAは、図に示されるようにそのCUaおよびMaにCUbおよびMbの値を適用する(ただし、この場合、CUbおよびCUaは実際には同じもの、つまりA11であり、したがって代替実施形態では、Bは、この事実を認識し、CUbを送らなくてもよく、Aも、CUaにCUbにコピーしなくてもよいことが留意されるべきである)。図3に関して、この同期のための具体的なトラバースは、312、316、318、322、320、324、328、334、336、340、および338の順序である。
再度図4に戻ると、時間7で、Aは次いで、Cと同期するが、競合が起きたときに、本明細書において上で説明した、競合解決バージョン(crv)と認識バージョン(av)へのcrvの論理的な組込みとを使用したことにより、Maは、もはやMcと同一ではない(標準同期スキーマを用いる場合に起こる)ので、Cは、CUcおよびMcを、(図3で説明されたプロセスに従って)さらに処理させるためにAに実際に送り、Aは最終的に、(図3のプロセスを、ステップ312、316、318、322、320、324、328、330、332、334、336、340、342、および344の順序でトラバースすることによって)特殊な処理をとる。この特殊な処理は、具体的には項目収束(すなわち、データ収束)の施行を意図しており、次いで、同期コミュニティ内で、他のアップデートよりもある1つのアップデート(たとえば、この例では、アップデート番号が最も小さいアップデートであり、このアップデートはやはり、一意のコンピュータシステムi.d.および前記アップデートに対するタイムスタンプの組合せである)が全域において選択されるようにする決定論的なソリューションに到達する方法を利用する。このソリューションは次いで、図5に示す、アップデートされたメタデータ<CVdet,CRVdet,AV1+AV2>と結合され、あるいは、「A11」の対応する値が「B11」の対応する値より小さく、したがってA11が決定されたソリューションである場合、メタデータMaは、図4に時間7で示す値をもつ<CVa,CRVa,AVa+AVc>となる。
図4の時間8および時間9で、次いで、時間7でのこの特殊な処理によるソリューションがどのようにして同期コミュニティに伝播し、最終的に項目収束(すなわち、データ収束)(各システムにおける変更単位はやはり同一である)をもたらすかが容易に明らかになる。時間8で、方法の(図3に示されるプロセスのステップ312、316、318、320、324、および326による)論理プロセスのトラバースは、MbのAVbのアップデートを生じる。時間9で、方法の(図3に示されるプロセスのステップ312、316、318、322、320、324、328、330、332、334、336、340、および338による)論理プロセスのトラバースは、CUcおよびMcへのCUbおよびMbの適用を生じ、ここで、得られるメタデータMcは、<CUb,CRVb,AVb+AVc>に等しい値を含む。
(項目収束(すなわち、データ収束)のための代替方法)
本発明の代替実施形態では、項目収束(すなわち、データ収束)は、競合時にすべての競合解決に対して特殊処理の決定論的手法を利用することによっても確実に行われる。ただし、この方法は、項目収束(すなわち、データ収束)を確実にする基本同期スキーマも可能にするが、必ずしも拡散し得るわけではない競合に対する恣意的な解決ももたらすので、本明細書において上で説明した高度な同期方法ほど堅牢ではない。
(結論)
本明細書で説明した様々なシステム、方法、および技術は、ハードウェアまたはソフトウェア、あるいはそうすることが適切な場合には、両方の組合せを用いて実装されることができる。したがって、本発明の方法および装置、あるいは本発明の特定の態様または部分は、実体のある媒体、たとえばフロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、または他のどのマシン可読記憶媒体においても実施されるプログラムコード(すなわち、命令)の形をとることができ、プログラムコードがコンピュータなどのマシンにロードされるとともにそれによって実行されると、マシンは本発明を実施する装置となる。プログラム可能なコンピュータ上でのプログラムコードの実行の場合、コンピュータは概して、プロセッサ、プロセッサによって読取り可能な記憶媒体(揮発性、不揮発性メモリおよび/または記憶要素など)、少なくとも1つの入力デバイス、ならびに少なくとも1つの出力デバイスを含む。1つまたは複数のプログラムは好ましくは、高度な手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装されて、コンピュータシステムと通信する。ただし、プログラム(群)は、そうすることが望まれる場合、アセンブリでも機械言語でも実装されることができる。いずれの場合でも、言語は、コンパイル型言語でもインタープリト型言語でもよく、ハードウェアの実装と組み合わされることができる。
本発明の方法および装置は、たとえば、電気的接続またはケーブル布線、光ファイバ、あるいは他のどの伝送の形でもよい何らかの伝送媒体を介して伝送されるプログラムコードの形で実現されることもでき、プログラムコードが受信され、たとえばEPROM、ゲートアレイ、PLD(プログラム可能な論理回路)、クライアントコンピュータ、ビデオレコーダなどのマシンにロードされるとともにそれによって実行されると、マシンは、本発明を実施する装置となる。汎用プロセッサ上で実装されると、プログラムコードは、プロセッサと結合して、本発明の索引づけ機能を実施するように動作する独自の装置を提供する。
本発明は、様々な図面の好ましい実施形態に関連して説明されたが、本発明から逸脱することなく本発明の同じ機能を実施するために、他の類似の実施形態が使用されることもでき、説明した実施形態に修正および追加が行われ得ることが理解されるべきである。たとえば、例示的な本発明の実施形態は、パーソナルコンピュータの機能をエミュレートするデジタルデバイスという状況で説明されているが、本発明は、このようなデジタルデバイスに限定されず、本出願において述べたように、有線または無線に関わらず、任意の数の既存または新興の計算装置または環境、たとえばゲーム用コンソール、ハンドヘルドコンピュータ、可搬型コンピュータなどにも当てはまり、通信ネットワークを介して接続され、ネットワーク経由で相互作用するこのような任意の数の計算装置に適用され得ることを当業者は理解するであろう。さらに、ハンドヘルドデバイスのオペレーティングシステムおよび他のアプリケーション特有のハードウェア/ソフトウェアインターフェイスシステムを含む様々なコンピュータプラットフォームが本明細書において企図され、特に、無線ネットワーク接続された装置の数は増加し続けることが強調されるべきである。したがって、本発明は、どの1つの実施形態にも限定されるべきではなく、添付の特許請求の範囲による広がりおよび範囲内で解釈されるべきである。
本発明の態様が組み込まれ得るコンピュータシステムを表すブロック図である。 最終的に競合解決の非収束(パートナーが拡散定常状態になり得る)を生じる、3つのピアによる同期動作を示す、テーブルを基にしたタイムフロー図である。 本発明のいくつかの実施形態で用いられる、改良された同期プロセスを示すプロセスフロー図である。 最終的に競合解決の収束を生じる、3つのピアによる同期動作を示す、テーブルを基にしたタイムフロー図である。 図3に示すプロセスの結果生じる特定の最終状態に対する具体的な処理および競合プロセスに関する、結果として生じるメタデータ、ならびに(新規ローカル変更は同期動作の直接の一部ではないので、比較のために)新規ローカル変更に関するメタデータを示すテーブルである。
符号の説明
20 コンピュータ
21 処理ユニット
22 システムメモリ
23 システムバス
27 ハードドライブ
28 フロッピー(登録商標)ドライブ
29 着脱式記憶装置
30 光ドライブ
32 ハードディスクドライブI/F
33 磁気ディスクドライブI/F
34 光ドライブI/F
36 アプリケーションプログラム
36’ アプリケーション
37 他のプログラム
38 プログラムデータ
40 キーボード
42 マウス
46 シリアルポートI/F
47 モニタ
48 ビデオアダプタ
49 リモートコンピュータ(群)
50 フロッピー(登録商標)ドライブ
53 ネットワークI/F
54 モデム
55 ホストアダプタ
56 SCSIバス
62 記憶装置

Claims (28)

  1. 同期コミュニティ内の少なくとも2つのピアコンピュータシステムの間で変更単位データを同期させる方法であって、
    前記少なくとも2つのピアコンピュータシステムの間で前記変更単位データを同期させるステップと、
    競合解決バージョンコンポーネントを含む、前記変更単位データに対応するメタデータコンポーネントを用いることによって、前記同期コミュニティ内での前記変更単位データの収束を確実にするステップとを含むことを特徴とする方法。
  2. 前記競合解決コンポーネントは、前記同期コミュニティを含む少なくとも2つのコンピュータシステムの中から、前記少なくとも2つのコンピュータシステムにおける前記変更単位の拡散状態を識別するために、同期中に使用されることを特徴とする請求項1に記載の方法。
  3. 前記変更単位の前記拡散状態を正し、前記同期コミュニティ全体に前記正された変更単位を伝播するステップをさらに含むことを特徴とする請求項2に記載の方法。
  4. 競合が起きたときにそれを解決する自動システムをさらに含むことを特徴とする請求項3に記載の方法。
  5. 同期コミュニティのためのピアツーピア同期システム、およびそのメンバーであるパートナーコンピュータシステムにおける変更単位データの拡散状態を解決する方法であって、前記データは、第1のコンピュータシステムにおける第1の変更単位、および第2のコンピュータシステムにおける第2の変更単位として具体化され、
    第1の同期動作中に起こる競合解決を追跡するステップと、
    後続同期動作中に、前記第1の変更単位と前記第2の変更単位の間の変更単位データの拡散状態を識別するステップと、
    前記同期コミュニティにおける変更単位データを収束させるために、変更単位ソリューションを決定論的に選択するステップとを含むことを特徴とする方法。
  6. 前記第1の変更単位は、第1のバージョン番号をさらに含み、前記第2の変更単位は、第2のバージョン番号をさらに含み、前記同期コミュニティにおける変更単位データを収束させるための変更単位ソリューションを決定論的に選択する前記ステップは、前記第1のバージョン番号と前記第2のバージョン番号それぞれの比較から得られたより低いバージョン番号に基づく、前記第1の変更単位または前記第2の変更単位の選択を含むことを特徴とする請求項5に記載の方法。
  7. 第1のコンピュータシステム(P1)と第2のコンピュータシステム(P2)の間の変更単位データを同期させる方法であって、前記第1のコンピュータシステムは、前記変更単位の第1の複製(CU1)、および前記第1の複製に対応する第1のメタデータ(M1)を含み、前記メタデータは、第1の変更バージョン(CV1)、第1の競合解決バージョン(CRV1)、および第1の認識ベクトル(AV1)をさらに含み、前記第2のコンピュータシステムは、前記変更単位の第2の複製(CU2)、および前記第2の複製に対応する第2のメタデータ(M2)を含み、前記メタデータは、第2の変更バージョン(CV2)、第2の競合解決バージョン(CRV2)、および第2の認識ベクトル(AV2)をさらに含み、
    P1からP2にAV1を送るステップと、
    AV1が、CV2およびCRV2を含むかどうか判定し、含む場合、P2からP1にCU2を送るステップと、
    P2からP1にM2を送るステップと、
    M2をM1と比較し、必要とされるどの同期アップデートも完了させ、起こったどの競合も特殊な処理状況も解決するステップと、
    CU1およびM1をアップデートし、競合が起きた場合、競合解決を反映するようにCRV1およびAV1をさらにアップデートし、そうすることによって、拡散状態が起こるのを防ぐステップとを含むことを特徴とする方法。
  8. 同期コミュニティ内の少なくとも2つのピアコンピュータシステムの間で変更単位データを同期させるシステムであって、
    前記少なくとも2つのピアコンピュータシステムの間で前記変更単位データを同期させ、
    競合解決バージョンコンポーネントを含む、前記変更単位データに対応するメタデータコンポーネントを用いることによって、前記同期コミュニティ内での前記変更単位データの収束を確実にする少なくとも1つのサブシステムを備えることを特徴とするシステム。
  9. 前記競合解決コンポーネントが、前記同期コミュニティを含む少なくとも2つのコンピュータシステムの中から、前記少なくとも2つのコンピュータシステムにおける前記変更単位の拡散状態を識別するために、同期中に使用されるようにするための少なくとも1つのサブシステムをさらに備えることを特徴とする請求項8に記載のシステム。
  10. 前記変更単位の前記拡散状態を正し、前記同期コミュニティ全体に前記正された変更単位を伝播する少なくとも1つのサブシステムをさらに備えることを特徴とする請求項9に記載のシステム。
  11. 競合が起きたときにそれを自動的に解決する少なくとも1つのサブシステムをさらに備えることを特徴とする請求項10に記載のシステム。
  12. 同期コミュニティのためのピアツーピア同期システム、およびそのメンバーであるパートナーコンピュータシステムにおける変更単位データの拡散状態を解決するシステムであって、前記データは、第1のコンピュータシステムにおける第1の変更単位、および第2のコンピュータシステムにおける第2の変更単位として具体化され、
    第1の同期動作中に起こる競合解決を追跡し、
    後続同期動作中に、前記第1の変更単位と前記第2の変更単位の間の変更単位データの拡散状態を識別し、
    前記同期コミュニティにおける変更単位データを収束させるために、変更単位ソリューションを決定論的に選択する少なくとも1つのサブシステムを備えることを特徴とするシステム。
  13. 前記第1の変更単位が第1のバージョン番号をさらに含み、前記第2の変更単位が第2のバージョン番号をさらに含むための少なくとも1つのサブシステムをさらに備え、前記同期コミュニティにおける変更単位データを収束させるための変更単位ソリューションを決定論的に選択する前記ステップが、前記第1のバージョン番号と前記第2のバージョン番号それぞれの比較から得られたより低いバージョン番号に基づく、前記第1の変更単位または前記第2の変更単位の選択を含むための少なくとも1つのサブシステムをさらに備えることを特徴とする請求項12に記載のシステム。
  14. 第1のコンピュータシステム(P1)と第2のコンピュータシステム(P2)の間の変更単位データを同期させるシステムであって、前記第1のコンピュータシステムは、前記変更単位の第1の複製(CU1)、および前記第1の複製に対応する第1のメタデータ(M1)を含み、前記メタデータは、第1の変更バージョン(CV1)、第1の競合解決バージョン(CRV1)、および第1の認識ベクトル(AV1)をさらに含み、前記第2のコンピュータシステムは、前記変更単位の第2の複製(CU2)、および前記第2の複製に対応する第2のメタデータ(M2)を含み、前記メタデータは、第2の変更バージョン(CV2)、第2の競合解決バージョン(CRV2)、および第2の認識ベクトル(AV2)をさらに含み、
    P1からP2にAV1を送り、
    AV1が、CV2およびCRV2を含むかどうか判定し、含む場合、P2からP1にCU2を送り、
    P2からP1にM2を送り、
    M2をM1と比較し、必要とされるどの同期アップデートも完了させ、起こったどの競合も特殊な処理状況も解決し、
    CU1およびM1をアップデートし、競合が起きた場合、競合解決を反映するようにCRV1およびAV1をさらにアップデートし、そうすることによって、拡散状態が起こるのを防ぐ少なくとも1つのサブシステムを備えることを特徴とするシステム。
  15. 同期コミュニティ内の少なくとも2つのピアコンピュータシステムの間で変更単位データを同期させるコンピュータ可読命令を含むコンピュータ可読媒体であって、
    前記少なくとも2つのピアコンピュータシステムの間で前記変更単位データを同期させ、
    競合解決バージョンコンポーネントを含む、前記変更単位データに対応するメタデータコンポーネントを用いることによって、前記同期コミュニティ内での前記変更単位データの収束を確実にする命令を含むことを特徴とするコンピュータ可読媒体。
  16. 前記競合解決コンポーネントが、前記同期コミュニティを含む少なくとも2つのコンピュータシステムの中から、前記少なくとも2つのコンピュータシステムにおける前記変更単位の拡散状態を識別するために、同期中に使用されるようにするための命令をさらに含むことを特徴とする請求項15に記載のコンピュータ可読媒体。
  17. 前記変更単位の前記拡散状態を正し、前記同期コミュニティ全体に前記正された変更単位を伝播する命令をさらに含むことを特徴とする請求項16に記載のコンピュータ可読媒体。
  18. 競合が起きたときにそれを自動的に解決する命令をさらに含むことを特徴とする請求項17に記載のコンピュータ可読媒体。
  19. 同期コミュニティのためのピアツーピア同期システム、およびそのメンバーであるパートナーコンピュータシステムにおける変更単位データの拡散状態を解決するコンピュータ可読命令を含むコンピュータ可読媒体であって、前記データは、第1のコンピュータシステムにおける第1の変更単位、および第2のコンピュータシステムにおける第2の変更単位として具体化され、
    第1の同期動作中に起こる競合解決を追跡し、
    後続同期動作中に、前記第1の変更単位と前記第2の変更単位の間の変更単位データの拡散状態を識別し、
    前記同期コミュニティにおける変更単位データを収束させるために、変更単位ソリューションを決定論的に選択する命令を含むことを特徴とするコンピュータ可読媒体。
  20. 前記第1の変更単位が第1のバージョン番号をさらに含み、前記第2の変更単位が第2のバージョン番号をさらに含むための命令をさらに含み、前記同期コミュニティにおける変更単位データを収束させるための変更単位ソリューションを決定論的に選択する前記ステップが、前記第1のバージョン番号と前記第2のバージョン番号それぞれの比較から得られたより低いバージョン番号に基づく、前記第1の変更単位または前記第2の変更単位の選択を含むための命令をさらに含むことを特徴とする請求項19に記載のコンピュータ可読媒体。
  21. 第1のコンピュータシステム(P1)と第2のコンピュータシステム(P2)の間の変更単位データを同期させるコンピュータ可読命令を含むコンピュータ可読媒体であって、前記第1のコンピュータシステムは、前記変更単位の第1の複製(CU1)、および前記第1の複製に対応する第1のメタデータ(M1)を含み、前記メタデータは、第1の変更バージョン(CV1)、第1の競合解決バージョン(CRV1)、および第1の認識ベクトル(AV1)をさらに含み、前記第2のコンピュータシステムは、前記変更単位の第2の複製(CU2)、および前記第2の複製に対応する第2のメタデータ(M2)を含み、前記メタデータは、第2の変更バージョン(CV2)、第2の競合解決バージョン(CRV2)、および第2の認識ベクトル(AV2)をさらに含み、
    P1からP2にAV1を送り、
    AV1が、CV2およびCRV2を含むかどうか判定し、含む場合、P2からP1にCU2を送り、
    P2からP1にM2を送り、
    M2をM1と比較し、必要とされるどの同期アップデートも完了させ、起こったどの競合も特殊な処理状況も解決し、
    CU1およびM1をアップデートし、競合が起きた場合、競合解決を反映するようにCRV1およびAV1をさらにアップデートし、そうすることによって、拡散状態が起こるのを防ぐ命令を含むことを特徴とするコンピュータ可読媒体。
  22. 同期コミュニティ内の少なくとも2つのピアコンピュータシステムの間で変更単位データを同期させるハードウェア制御装置であって、
    前記少なくとも2つのピアコンピュータシステムの間で前記変更単位データを同期させる手段と、
    競合解決バージョンコンポーネントを含む、前記変更単位データに対応するメタデータコンポーネントを用いることによって、前記同期コミュニティ内での前記変更単位データの収束を確実にする手段とを備えることを特徴とするハードウェア制御装置。
  23. 前記競合解決コンポーネントが、前記同期コミュニティを含む少なくとも2つのコンピュータシステムの中から、前記少なくとも2つのコンピュータシステムにおける前記変更単位の拡散状態を識別するために、同期中に使用されるようにするための手段をさらに備えることを特徴とする請求項22に記載のハードウェア制御装置。
  24. 前記変更単位の前記拡散状態を正し、前記同期コミュニティ全体に前記正された変更単位を伝播する手段をさらに備えることを特徴とする請求項23に記載のハードウェア制御装置。
  25. 競合が起きたときにそれを自動的に解決する手段をさらに備えることを特徴とする請求項24に記載のハードウェア制御装置。
  26. 同期コミュニティのためのピアツーピア同期システム、およびそのメンバーであるパートナーコンピュータシステムにおける変更単位データの拡散状態を解決するハードウェア制御装置であって、前記データは、第1のコンピュータシステムにおける第1の変更単位、および第2のコンピュータシステムにおける第2の変更単位として具体化され、
    第1の同期動作中に起こる競合解決を追跡する手段と、
    後続同期動作中に、前記第1の変更単位と前記第2の変更単位の間の変更単位データの拡散状態を識別する手段と、
    前記同期コミュニティにおける変更単位データを収束させるために、変更単位ソリューションを決定論的に選択する手段とを備えることを特徴とするハードウェア制御装置。
  27. 前記第1の変更単位が第1のバージョン番号をさらに含み、前記第2の変更単位が第2のバージョン番号をさらに含むための手段をさらに備え、前記同期コミュニティにおける変更単位データを収束させるための変更単位ソリューションを決定論的に選択する前記ステップが、前記第1のバージョン番号と前記第2のバージョン番号それぞれの比較から得られたより低いバージョン番号に基づく、前記第1の変更単位または前記第2の変更単位の選択を含むための手段をさらに備えることを特徴とする請求項26に記載のハードウェア制御装置。
  28. 第1のコンピュータシステム(P1)と第2のコンピュータシステム(P2)の間の変更単位データを同期させるハードウェア制御装置であって、前記第1のコンピュータシステムは、前記変更単位の第1の複製(CU1)、および前記第1の複製に対応する第1のメタデータ(M1)を含み、前記メタデータは、第1の変更バージョン(CV1)、第1の競合解決バージョン(CRV1)、および第1の認識ベクトル(AV1)をさらに含み、前記第2のコンピュータシステムは、前記変更単位の第2の複製(CU2)、および前記第2の複製に対応する第2のメタデータ(M2)を含み、前記メタデータは、第2の変更バージョン(CV2)、第2の競合解決バージョン(CRV2)、および第2の認識ベクトル(AV2)をさらに含み、
    P1からP2にAV1を送る手段と、
    AV1が、CV2およびCRV2を含むかどうか判定し、含む場合、P2からP1にCU2を送る手段と、
    P2からP1にM2を送る手段と、
    M2をM1と比較し、必要とされるどの同期アップデートも完了させ、起こったどの競合も特殊な処理状況も解決する手段と、
    CU1およびM1をアップデートし、競合が起きた場合、競合解決を反映するようにCRV1およびAV1をさらにアップデートし、そうすることによって、拡散状態が起こるのを防ぐ手段とを備えることを特徴とするハードウェア制御装置。
JP2005056021A 2004-04-01 2005-03-01 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法 Expired - Fee Related JP4690076B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US55838804P 2004-04-01 2004-04-01
US60/558,388 2004-04-01
US10/932,474 2004-09-01
US10/932,474 US7533134B2 (en) 2004-04-01 2004-09-01 Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence)

Publications (2)

Publication Number Publication Date
JP2005293560A true JP2005293560A (ja) 2005-10-20
JP4690076B2 JP4690076B2 (ja) 2011-06-01

Family

ID=34890593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005056021A Expired - Fee Related JP4690076B2 (ja) 2004-04-01 2005-03-01 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法

Country Status (5)

Country Link
US (1) US7533134B2 (ja)
EP (1) EP1582983A1 (ja)
JP (1) JP4690076B2 (ja)
KR (1) KR101109219B1 (ja)
CN (1) CN100485669C (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164523A (ja) * 2005-12-14 2007-06-28 Nec Corp 情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラム
JP2007535037A (ja) * 2004-04-27 2007-11-29 インテル・コーポレーション 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル
JP2009544070A (ja) * 2006-07-12 2009-12-10 イーストマン コダック カンパニー グローバルアセット管理
JP2011519441A (ja) * 2008-03-11 2011-07-07 マイクロソフト コーポレーション 切断データ/オフラインデータの処理/入力の同期化
US20240095258A1 (en) * 2015-04-22 2024-03-21 The Bank Of New York Mellon Multi-modal-based generation of data synchronization instructions

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917646B2 (en) 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
US7580867B2 (en) * 2004-05-04 2009-08-25 Paul Nykamp Methods for interactively displaying product information and for collaborative product design
US7574456B2 (en) * 2004-12-16 2009-08-11 Sap Ag Bidirectional update of client-server objects
US8495015B2 (en) * 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
DE102006005840B4 (de) * 2006-02-08 2007-10-31 Combots Product Gmbh & Co. Kg Verfahren zum gemeinsamen Bearbeiten einer Datenmenge sowie ein Netzwerksystem und ein Kommunikationssystem zur Durchführung des Verfahrens
US9710508B2 (en) * 2006-03-09 2017-07-18 Quickbase, Inc. Method and system for managing data in a workflow process
US8359297B2 (en) * 2006-06-29 2013-01-22 International Business Machines Corporation Multiple source data management using a conflict rule
CN101145152B (zh) * 2006-09-14 2010-08-11 国际商业机器公司 在特定上下文内自动精细化本体的系统和方法
US7778282B2 (en) * 2006-12-18 2010-08-17 Microsoft Corporation Propagation of conflict knowledge
US8527660B2 (en) * 2006-12-22 2013-09-03 Palm, Inc. Data synchronization by communication of modifications
US7657769B2 (en) * 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US20080294701A1 (en) * 2007-05-21 2008-11-27 Microsoft Corporation Item-set knowledge for partial replica synchronization
US8505065B2 (en) * 2007-06-20 2013-08-06 Microsoft Corporation Access control policy in a weakly-coherent distributed collection
US20090006489A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Hierarchical synchronization of replicas
US9401957B2 (en) * 2007-09-14 2016-07-26 International Business Machines Corporation System and method for synchronization between servers
US7836053B2 (en) * 2007-12-28 2010-11-16 Group Logic, Inc. Apparatus and methods of identifying potentially similar content for data reduction
US8473543B2 (en) 2009-07-06 2013-06-25 Microsoft Corporation Automatic conflict resolution when synchronizing data objects between two or more devices
US8572022B2 (en) 2010-03-02 2013-10-29 Microsoft Corporation Automatic synchronization conflict resolution
US9053165B2 (en) * 2013-07-08 2015-06-09 Dropbox, Inc. Structured content item synchronization
US9626176B2 (en) 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
US9830142B2 (en) 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
US10026064B2 (en) 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9665359B2 (en) * 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US10091287B2 (en) 2014-04-08 2018-10-02 Dropbox, Inc. Determining presence in an application accessing shared and synchronized content
US10270871B2 (en) 2014-04-08 2019-04-23 Dropbox, Inc. Browser display of native application presence and interaction data
US10171579B2 (en) 2014-04-08 2019-01-01 Dropbox, Inc. Managing presence among devices accessing shared and synchronized content
US9998555B2 (en) 2014-04-08 2018-06-12 Dropbox, Inc. Displaying presence in an application accessing shared and synchronized content
JP2016126690A (ja) * 2015-01-08 2016-07-11 キヤノン株式会社 管理装置、管理装置の制御方法、及びプログラム
US9846528B2 (en) 2015-03-02 2017-12-19 Dropbox, Inc. Native application collaboration
CN106470230B (zh) * 2015-08-19 2019-08-20 互联网域名系统北京市工程研究中心有限公司 分布式dns节点数据一致性同步方法和装置
US10248933B2 (en) 2015-12-29 2019-04-02 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US10620811B2 (en) 2015-12-30 2020-04-14 Dropbox, Inc. Native application collaboration
US10382502B2 (en) 2016-04-04 2019-08-13 Dropbox, Inc. Change comments for synchronized content items
US11934378B2 (en) * 2021-03-11 2024-03-19 International Business Machines Corporation Recording changes to records whilst preserving record immutability

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149464A (ja) * 2000-08-17 2002-05-24 Fusionone Inc データ転送および同期システム用のベースローリングエンジン
WO2003044698A1 (en) * 2001-11-15 2003-05-30 Visto Corporation System and methods for asychronous synchronization
JP2004021995A (ja) * 2002-06-18 2004-01-22 Microsoft Corp グループコネクティビティのためのビジュアルグループインタフェース

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900870A (en) 1989-06-30 1999-05-04 Massachusetts Institute Of Technology Object-oriented computer user interface
US5710922A (en) * 1993-06-02 1998-01-20 Apple Computer, Inc. Method for synchronizing and archiving information between computer systems
US6078925A (en) 1995-05-01 2000-06-20 International Business Machines Corporation Computer program product for database relational extenders
US5774717A (en) * 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US6112024A (en) * 1996-10-02 2000-08-29 Sybase, Inc. Development system providing methods for managing different versions of objects with a meta model
US6708221B1 (en) * 1996-12-13 2004-03-16 Visto Corporation System and method for globally and securely accessing unified information in a computer network
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6108004A (en) 1997-10-21 2000-08-22 International Business Machines Corporation GUI guide for data mining
US6052735A (en) * 1997-10-24 2000-04-18 Microsoft Corporation Electronic mail object synchronization between a desktop computer and mobile device
US6263342B1 (en) 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
FR2780178B1 (fr) 1998-06-18 2001-08-10 Inst Nat Rech Inf Automat Procede de transformation et d'acheminement de donnees entre des serveurs d'agents presents sur des machines et un serveur d'agent central present sur une autre machine
US6317754B1 (en) * 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
US6519597B1 (en) 1998-10-08 2003-02-11 International Business Machines Corporation Method and apparatus for indexing structured documents with rich data types
US6338056B1 (en) 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
US6757896B1 (en) * 1999-01-29 2004-06-29 International Business Machines Corporation Method and apparatus for enabling partial replication of object stores
KR100382851B1 (ko) * 1999-03-31 2003-05-09 인터내셔널 비지네스 머신즈 코포레이션 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치
US6199195B1 (en) 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6370541B1 (en) 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6556983B1 (en) 2000-01-12 2003-04-29 Microsoft Corporation Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
WO2001098936A2 (en) * 2000-06-22 2001-12-27 Microsoft Corporation Distributed computing services platform
US6999956B2 (en) 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
US7178100B2 (en) 2000-12-15 2007-02-13 Call Charles G Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
US6877111B2 (en) 2001-03-26 2005-04-05 Sun Microsystems, Inc. Method and apparatus for managing replicated and migration capable session state for a Java platform
US6961723B2 (en) 2001-05-04 2005-11-01 Sun Microsystems, Inc. System and method for determining relevancy of query responses in a distributed network search mechanism
US6697818B2 (en) 2001-06-14 2004-02-24 International Business Machines Corporation Methods and apparatus for constructing and implementing a universal extension module for processing objects in a database
US6772178B2 (en) 2001-07-27 2004-08-03 Sun Microsystems, Inc. Method and apparatus for managing remote data replication in a distributed computer system
US7177865B2 (en) * 2003-06-30 2007-02-13 Sap Ag Data synchronization method and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002149464A (ja) * 2000-08-17 2002-05-24 Fusionone Inc データ転送および同期システム用のベースローリングエンジン
WO2003044698A1 (en) * 2001-11-15 2003-05-30 Visto Corporation System and methods for asychronous synchronization
JP2005509979A (ja) * 2001-11-15 2005-04-14 ヴィスト・コーポレーション 非同期型同期のシステムおよび方法
JP2004021995A (ja) * 2002-06-18 2004-01-22 Microsoft Corp グループコネクティビティのためのビジュアルグループインタフェース

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007535037A (ja) * 2004-04-27 2007-11-29 インテル・コーポレーション 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル
JP4789926B2 (ja) * 2004-04-27 2011-10-12 インテル・コーポレーション 効率的な2つのホップ・キャッシュ・コヒーレンシ・プロトコル
JP2007164523A (ja) * 2005-12-14 2007-06-28 Nec Corp 情報処理装置、分散同期型情報システム、情報同期方法、及び、プログラム
JP2009544070A (ja) * 2006-07-12 2009-12-10 イーストマン コダック カンパニー グローバルアセット管理
JP2011519441A (ja) * 2008-03-11 2011-07-07 マイクロソフト コーポレーション 切断データ/オフラインデータの処理/入力の同期化
US20240095258A1 (en) * 2015-04-22 2024-03-21 The Bank Of New York Mellon Multi-modal-based generation of data synchronization instructions
US12259908B2 (en) * 2015-04-22 2025-03-25 The Bank Of New York Mellon Multi-modal-based generation of data synchronization instructions

Also Published As

Publication number Publication date
CN100485669C (zh) 2009-05-06
KR101109219B1 (ko) 2012-01-30
KR20060041906A (ko) 2006-05-12
JP4690076B2 (ja) 2011-06-01
CN1677392A (zh) 2005-10-05
EP1582983A1 (en) 2005-10-05
US7533134B2 (en) 2009-05-12
US20050223117A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
JP4690076B2 (ja) 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法
JP5289063B2 (ja) 同期ピア参加モデル
JP4753693B2 (ja) スナップショットなしでアイテムを同期化するシステムおよび方法
US7149759B2 (en) Method and system for detecting conflicts in replicated data in a database network
US7778984B2 (en) System and method for a distributed object store
RU2372649C2 (ru) Гранулярное управление полномочиями дублируемой информации при помощи ограничения и снятия ограничения
CA2458249C (en) A method for managing multiple file states for replicated files
US20080195759A1 (en) Efficient knowledge representation in data synchronization systems
US20170220820A1 (en) Group based complete and incremental computer file backup system, process and apparatus
US20090077002A1 (en) Knowledge based synchronization of subsets of data with no move condition
WO2007130178A1 (en) Filtered replication of data stores
EP1994479A2 (en) Indempotent journal mechanism for file system
US7577691B2 (en) Extending hierarchical synchronization scopes to non-hierarchical scenarios
US20090132534A1 (en) Remote replication synchronizing/accessing system and method thereof
US20080104206A1 (en) Efficient knowledge representation in data synchronization systems
US20090234872A1 (en) Synchronization of disconnected/offline data processing/entry
US8635280B2 (en) Method for utilizing heterogeneous storage systems by cooperating with server side storage software
US20060129616A1 (en) System and method for synchronizing computer files between a local computer and a remote server
US20100106744A1 (en) Conflict prevention for peer-to-peer replication
JP2011522337A (ja) サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用
GB2565932B (en) Storing data in dispersed storage network with consistency
KR20210121865A (ko) 특허 중개 과정에서의 특허 명세서 관리용 블록체인 기반 패치 관리 장치
HK1067430A (en) A method for managing multiple file states for replicated files

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110126

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: 20110215

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: 20110217

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees
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