JP2005293560A - 項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法 - Google Patents
項目収束(すなわち、データ収束)を施行するための競合解決を伝播するシステムおよび方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01G—HORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
- A01G31/00—Soilless cultivation, e.g. hydroponics
- A01G31/02—Special apparatus therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01G—HORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
- A01G31/00—Soilless cultivation, e.g. hydroponics
-
- 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P60/00—Technologies relating to agriculture, livestock or agroalimentary industries
- Y02P60/20—Reduction of greenhouse gas [GHG] emissions in agriculture, e.g. CO2
- Y02P60/21—Dinitrogen oxide [N2O], e.g. using aquaponics, hydroponics or efficiency measures
-
- 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/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- 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
-
- 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/99954—Version 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
本発明の数多くの実施形態が、コンピュータ上で実行されることができる。図1および以下の説明は、本発明が実装され得る適切な計算機環境の簡潔かつ全体的な説明を提供することを意図している。そうすることが必要なわけではないが、クライアントワークステーションやサーバなどのコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令という一般的なコンテキストにおいて本発明が説明される。概して、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家電製品またはプログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなど他のコンピュータシステム構成とともに実施され得ることを当業者は理解するであろう。本発明は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実施される分散型計算機環境でも実施されることができる。分散型計算機環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶装置両方に置かれ得る。
本発明の特定の実施形態、たとえば項目ベースのシステムにとって、「変更単位」とは、本質的に、常に一単位として同期される1組のプロパティである。たとえば、連絡先項目の名前および名字というプロパティは合わせて、1個の変更単位を構成することができる。さらに、「バージョン」が、各変更単位に関連づけられて、アップデートが行われたときに対応するタイムスタンプとともに、その変更単位へのある特定の変更を最後に行ったパートナーを表す。したがって、表記を簡単にするため、本明細書で使用するパートナーは文字で表され、タイムスタンプは、整数を増やすことによって表され、その結果、パートナー(たとえば「A」)およびタイムスタンプ(たとえば「1」)を単に対にすることによって、各変更単位はそれ自体を、各パートナーによって特定の時間に行われた最新の変更を反映する一意の識別番号、たとえば「A1」に関連づけている。
本発明のいくつかの実施形態は、手作業での、および自動的な競合解決動作中に競合を検出し、競合解決を適用するシステムおよび方法を対象とする。というのは、たとえば、バージョンA1とB2の間に、A1のためにはパートナーXによって、かつB2のためにはパートナーYによって解決される競合が存在する場合などに、異なるピア(「パートナー」)は、同じ競合を異なるやり方で解決し得るからである。
図3で説明し図示した上記の方法を用いることによって、(基本同期スキーマでの場合のように)異なる変更単位値をもつが同じメタデータをもつ2つの変更単位の複製が認識されず、拡散状態のまま放置されるという状況が回避され、図4は、図2に示されるのと同様のシナリオを使用するが図3に示される本発明の方法を適用することによって、この点を説明する。
時間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に示すようにこの新しい値を反映する。
本発明の代替実施形態では、項目収束(すなわち、データ収束)は、競合時にすべての競合解決に対して特殊処理の決定論的手法を利用することによっても確実に行われる。ただし、この方法は、項目収束(すなわち、データ収束)を確実にする基本同期スキーマも可能にするが、必ずしも拡散し得るわけではない競合に対する恣意的な解決ももたらすので、本明細書において上で説明した高度な同期方法ほど堅牢ではない。
本明細書で説明した様々なシステム、方法、および技術は、ハードウェアまたはソフトウェア、あるいはそうすることが適切な場合には、両方の組合せを用いて実装されることができる。したがって、本発明の方法および装置、あるいは本発明の特定の態様または部分は、実体のある媒体、たとえばフロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、または他のどのマシン可読記憶媒体においても実施されるプログラムコード(すなわち、命令)の形をとることができ、プログラムコードがコンピュータなどのマシンにロードされるとともにそれによって実行されると、マシンは本発明を実施する装置となる。プログラム可能なコンピュータ上でのプログラムコードの実行の場合、コンピュータは概して、プロセッサ、プロセッサによって読取り可能な記憶媒体(揮発性、不揮発性メモリおよび/または記憶要素など)、少なくとも1つの入力デバイス、ならびに少なくとも1つの出力デバイスを含む。1つまたは複数のプログラムは好ましくは、高度な手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装されて、コンピュータシステムと通信する。ただし、プログラム(群)は、そうすることが望まれる場合、アセンブリでも機械言語でも実装されることができる。いずれの場合でも、言語は、コンパイル型言語でもインタープリト型言語でもよく、ハードウェアの実装と組み合わされることができる。
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)
- 同期コミュニティ内の少なくとも2つのピアコンピュータシステムの間で変更単位データを同期させる方法であって、
前記少なくとも2つのピアコンピュータシステムの間で前記変更単位データを同期させるステップと、
競合解決バージョンコンポーネントを含む、前記変更単位データに対応するメタデータコンポーネントを用いることによって、前記同期コミュニティ内での前記変更単位データの収束を確実にするステップとを含むことを特徴とする方法。 - 前記競合解決コンポーネントは、前記同期コミュニティを含む少なくとも2つのコンピュータシステムの中から、前記少なくとも2つのコンピュータシステムにおける前記変更単位の拡散状態を識別するために、同期中に使用されることを特徴とする請求項1に記載の方法。
- 前記変更単位の前記拡散状態を正し、前記同期コミュニティ全体に前記正された変更単位を伝播するステップをさらに含むことを特徴とする請求項2に記載の方法。
- 競合が起きたときにそれを解決する自動システムをさらに含むことを特徴とする請求項3に記載の方法。
- 同期コミュニティのためのピアツーピア同期システム、およびそのメンバーであるパートナーコンピュータシステムにおける変更単位データの拡散状態を解決する方法であって、前記データは、第1のコンピュータシステムにおける第1の変更単位、および第2のコンピュータシステムにおける第2の変更単位として具体化され、
第1の同期動作中に起こる競合解決を追跡するステップと、
後続同期動作中に、前記第1の変更単位と前記第2の変更単位の間の変更単位データの拡散状態を識別するステップと、
前記同期コミュニティにおける変更単位データを収束させるために、変更単位ソリューションを決定論的に選択するステップとを含むことを特徴とする方法。 - 前記第1の変更単位は、第1のバージョン番号をさらに含み、前記第2の変更単位は、第2のバージョン番号をさらに含み、前記同期コミュニティにおける変更単位データを収束させるための変更単位ソリューションを決定論的に選択する前記ステップは、前記第1のバージョン番号と前記第2のバージョン番号それぞれの比較から得られたより低いバージョン番号に基づく、前記第1の変更単位または前記第2の変更単位の選択を含むことを特徴とする請求項5に記載の方法。
- 第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をさらにアップデートし、そうすることによって、拡散状態が起こるのを防ぐステップとを含むことを特徴とする方法。 - 同期コミュニティ内の少なくとも2つのピアコンピュータシステムの間で変更単位データを同期させるシステムであって、
前記少なくとも2つのピアコンピュータシステムの間で前記変更単位データを同期させ、
競合解決バージョンコンポーネントを含む、前記変更単位データに対応するメタデータコンポーネントを用いることによって、前記同期コミュニティ内での前記変更単位データの収束を確実にする少なくとも1つのサブシステムを備えることを特徴とするシステム。 - 前記競合解決コンポーネントが、前記同期コミュニティを含む少なくとも2つのコンピュータシステムの中から、前記少なくとも2つのコンピュータシステムにおける前記変更単位の拡散状態を識別するために、同期中に使用されるようにするための少なくとも1つのサブシステムをさらに備えることを特徴とする請求項8に記載のシステム。
- 前記変更単位の前記拡散状態を正し、前記同期コミュニティ全体に前記正された変更単位を伝播する少なくとも1つのサブシステムをさらに備えることを特徴とする請求項9に記載のシステム。
- 競合が起きたときにそれを自動的に解決する少なくとも1つのサブシステムをさらに備えることを特徴とする請求項10に記載のシステム。
- 同期コミュニティのためのピアツーピア同期システム、およびそのメンバーであるパートナーコンピュータシステムにおける変更単位データの拡散状態を解決するシステムであって、前記データは、第1のコンピュータシステムにおける第1の変更単位、および第2のコンピュータシステムにおける第2の変更単位として具体化され、
第1の同期動作中に起こる競合解決を追跡し、
後続同期動作中に、前記第1の変更単位と前記第2の変更単位の間の変更単位データの拡散状態を識別し、
前記同期コミュニティにおける変更単位データを収束させるために、変更単位ソリューションを決定論的に選択する少なくとも1つのサブシステムを備えることを特徴とするシステム。 - 前記第1の変更単位が第1のバージョン番号をさらに含み、前記第2の変更単位が第2のバージョン番号をさらに含むための少なくとも1つのサブシステムをさらに備え、前記同期コミュニティにおける変更単位データを収束させるための変更単位ソリューションを決定論的に選択する前記ステップが、前記第1のバージョン番号と前記第2のバージョン番号それぞれの比較から得られたより低いバージョン番号に基づく、前記第1の変更単位または前記第2の変更単位の選択を含むための少なくとも1つのサブシステムをさらに備えることを特徴とする請求項12に記載のシステム。
- 第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つのサブシステムを備えることを特徴とするシステム。 - 同期コミュニティ内の少なくとも2つのピアコンピュータシステムの間で変更単位データを同期させるコンピュータ可読命令を含むコンピュータ可読媒体であって、
前記少なくとも2つのピアコンピュータシステムの間で前記変更単位データを同期させ、
競合解決バージョンコンポーネントを含む、前記変更単位データに対応するメタデータコンポーネントを用いることによって、前記同期コミュニティ内での前記変更単位データの収束を確実にする命令を含むことを特徴とするコンピュータ可読媒体。 - 前記競合解決コンポーネントが、前記同期コミュニティを含む少なくとも2つのコンピュータシステムの中から、前記少なくとも2つのコンピュータシステムにおける前記変更単位の拡散状態を識別するために、同期中に使用されるようにするための命令をさらに含むことを特徴とする請求項15に記載のコンピュータ可読媒体。
- 前記変更単位の前記拡散状態を正し、前記同期コミュニティ全体に前記正された変更単位を伝播する命令をさらに含むことを特徴とする請求項16に記載のコンピュータ可読媒体。
- 競合が起きたときにそれを自動的に解決する命令をさらに含むことを特徴とする請求項17に記載のコンピュータ可読媒体。
- 同期コミュニティのためのピアツーピア同期システム、およびそのメンバーであるパートナーコンピュータシステムにおける変更単位データの拡散状態を解決するコンピュータ可読命令を含むコンピュータ可読媒体であって、前記データは、第1のコンピュータシステムにおける第1の変更単位、および第2のコンピュータシステムにおける第2の変更単位として具体化され、
第1の同期動作中に起こる競合解決を追跡し、
後続同期動作中に、前記第1の変更単位と前記第2の変更単位の間の変更単位データの拡散状態を識別し、
前記同期コミュニティにおける変更単位データを収束させるために、変更単位ソリューションを決定論的に選択する命令を含むことを特徴とするコンピュータ可読媒体。 - 前記第1の変更単位が第1のバージョン番号をさらに含み、前記第2の変更単位が第2のバージョン番号をさらに含むための命令をさらに含み、前記同期コミュニティにおける変更単位データを収束させるための変更単位ソリューションを決定論的に選択する前記ステップが、前記第1のバージョン番号と前記第2のバージョン番号それぞれの比較から得られたより低いバージョン番号に基づく、前記第1の変更単位または前記第2の変更単位の選択を含むための命令をさらに含むことを特徴とする請求項19に記載のコンピュータ可読媒体。
- 第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をさらにアップデートし、そうすることによって、拡散状態が起こるのを防ぐ命令を含むことを特徴とするコンピュータ可読媒体。 - 同期コミュニティ内の少なくとも2つのピアコンピュータシステムの間で変更単位データを同期させるハードウェア制御装置であって、
前記少なくとも2つのピアコンピュータシステムの間で前記変更単位データを同期させる手段と、
競合解決バージョンコンポーネントを含む、前記変更単位データに対応するメタデータコンポーネントを用いることによって、前記同期コミュニティ内での前記変更単位データの収束を確実にする手段とを備えることを特徴とするハードウェア制御装置。 - 前記競合解決コンポーネントが、前記同期コミュニティを含む少なくとも2つのコンピュータシステムの中から、前記少なくとも2つのコンピュータシステムにおける前記変更単位の拡散状態を識別するために、同期中に使用されるようにするための手段をさらに備えることを特徴とする請求項22に記載のハードウェア制御装置。
- 前記変更単位の前記拡散状態を正し、前記同期コミュニティ全体に前記正された変更単位を伝播する手段をさらに備えることを特徴とする請求項23に記載のハードウェア制御装置。
- 競合が起きたときにそれを自動的に解決する手段をさらに備えることを特徴とする請求項24に記載のハードウェア制御装置。
- 同期コミュニティのためのピアツーピア同期システム、およびそのメンバーであるパートナーコンピュータシステムにおける変更単位データの拡散状態を解決するハードウェア制御装置であって、前記データは、第1のコンピュータシステムにおける第1の変更単位、および第2のコンピュータシステムにおける第2の変更単位として具体化され、
第1の同期動作中に起こる競合解決を追跡する手段と、
後続同期動作中に、前記第1の変更単位と前記第2の変更単位の間の変更単位データの拡散状態を識別する手段と、
前記同期コミュニティにおける変更単位データを収束させるために、変更単位ソリューションを決定論的に選択する手段とを備えることを特徴とするハードウェア制御装置。 - 前記第1の変更単位が第1のバージョン番号をさらに含み、前記第2の変更単位が第2のバージョン番号をさらに含むための手段をさらに備え、前記同期コミュニティにおける変更単位データを収束させるための変更単位ソリューションを決定論的に選択する前記ステップが、前記第1のバージョン番号と前記第2のバージョン番号それぞれの比較から得られたより低いバージョン番号に基づく、前記第1の変更単位または前記第2の変更単位の選択を含むための手段をさらに備えることを特徴とする請求項26に記載のハードウェア制御装置。
- 第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をさらにアップデートし、そうすることによって、拡散状態が起こるのを防ぐ手段とを備えることを特徴とするハードウェア制御装置。
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)
| 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)
| 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)
| 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)
| 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 |
-
2004
- 2004-09-01 US US10/932,474 patent/US7533134B2/en not_active Expired - Fee Related
-
2005
- 2005-02-14 KR KR1020050011819A patent/KR101109219B1/ko not_active Expired - Fee Related
- 2005-03-01 JP JP2005056021A patent/JP4690076B2/ja not_active Expired - Fee Related
- 2005-03-01 CN CNB2005100529694A patent/CN100485669C/zh not_active Expired - Fee Related
- 2005-03-24 EP EP05102381A patent/EP1582983A1/en not_active Withdrawn
Patent Citations (4)
| 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)
| 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 |