JP2006155614A - 一般化されたPaxos - Google Patents
一般化されたPaxos Download PDFInfo
- Publication number
- JP2006155614A JP2006155614A JP2005338653A JP2005338653A JP2006155614A JP 2006155614 A JP2006155614 A JP 2006155614A JP 2005338653 A JP2005338653 A JP 2005338653A JP 2005338653 A JP2005338653 A JP 2005338653A JP 2006155614 A JP2006155614 A JP 2006155614A
- Authority
- JP
- Japan
- Prior art keywords
- command structure
- proposed
- proposal number
- proposal
- message
- 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
- 230000005540 biological transmission Effects 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 395
- 230000004044 response Effects 0.000 claims description 52
- 238000000034 method Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 description 33
- 238000003860 storage Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 16
- 230000009471 action Effects 0.000 description 10
- 230000001934 delay Effects 0.000 description 9
- 239000000470 constituent Substances 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000005055 memory storage Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000006424 Flood reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 1
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
【解決手段】一般化されたコンセンサスを達成し、交換可能なコマンドを任意の順序で選択する。リーダーは、コマンドの前に選択されたシーケンスについて知ることができ、コマンドの互換シーケンスを提案する。デバイスは、前に選択されたシーケンスと互換のコマンドのシーケンスを選択する。追加コマンドは、前に選択されたシーケンスおよび追加コマンドを含むコマンドのシーケンスを選択する。デバイスがクライアントから直接に提案を受信する場合に、さらなる効率を実現することができる。さまざまなクライアントからさまざまな順序で到着する複数の提案が、さまざまな順序で選択される場合がある。これらの提案が交換可能である場合に、一般化されたコンセンサスが存在し、システムが効率的な動作を継続することを可能にする。
【選択図】図11c
Description
図面に移ると、図面では同一の符号が同一の要素を指すが、本発明が、図1に示された例示的な分散コンピューティングシステム10などの分散コンピューティングシステムによって実装されるものとして示されている。提示を簡単にするためにのみ、本発明を、図1に示されているように相互接続されたコンピューティングデバイス11から15を含むシステム10などの分散コンピューティングシステムに関して説明する。当業者が理解するように、本発明は、すべての分散コンピューティング環境に適用可能であり、いかなる形であれ、提示のために単純化されている図1の例示的な分散コンピューティングシステムに制限されることを意図されていない。
本発明によれば、分散コンピューティングシステムは、単一の機能ではなく機能の互換シリーズに合意することによって、一般化されたフォールトトレラントアルゴリズムを実装することができる。下で詳細に説明するPaxosアルゴリズムは、2倍の個数のコンピューティングデバイスが使用されるならば、その個数の障害を許容できる分散コンピューティングシステムを実装する機構を提供することができる。やはり下で詳細に説明する一般化されたPaxosアルゴリズムは、Paxosアルゴリズムの機構を利用して、フォールトトレランスを提供することができるが、単一の機能ではなく機能のシリーズを提案し、選択することができる。具体的に言うと、互いに交換可能なコマンドの相対順序だけが異なる機能のシリーズを、互換と考えることができ、定足数のデバイスによる投票を、機能のそのようなシリーズのすべての選択と考えることができる。
図1に示された分散システム10などの分散環境では、デバイスの間の調整が、困難な作業になる可能性がある。調整要因として時間に頼ることに固有の問題を回避する機構の1つが、機能の実行が状態機械をある状態から別の状態に移動する状態機械に関して分散コンピューティングシステムをモデル化することである。したがって、状態機械を、状態の組、コマンドの組、応答の組、および各応答/状態対を各コマンド/状態対にリンクする機能を参照して記述することができる。状態機械のクライアントは、状態機械が機能を実行することを要求するコマンドを発行することができる。この機能は、状態機械の状態を変更し、応答を作ることができる。
状態機械手法を使用することによって、図1に示された分散コンピューティングシステム10の構成デバイス11から15の同期化を、実行される機能およびそれらを実行する順序に合意することによって達成することができる。実行される機能に合意する方法の1つを、Paxosアルゴリズムと称する。Paxosアルゴリズムは、システム10が、デバイスが高度な警告なしで動作を停止する可能性がある障害にもかかわらず正しく動作することを可能にする。Paxosアルゴリズムは、システム全体がある機能を実行する前に、少なくとも定足数のデバイスがその機能に合意することを必要とする。Paxosアルゴリズムを用いると、定足数は、システムの特定の要件に応じて、単に過半数とすることができ、あるいは、それより多数のデバイスを含めることができる。どのように定義されても、定足数は、2つの定足数が少なくとも1つの共通のデバイスを有するように十分に多数とすることができる。
標準Paxosアルゴリズムの上の詳細な説明からわかるように、リーダーが、確立され、定足数に含まれるデバイスによって投票されたこれから来るすべてのステップ番号に関するさまざまな最大の番号の提案を知ったならば、リーダーは、Paxosアルゴリズムの第1フェーズをサイクルせずに投票について提案を請求することができる。クライアントの要求の送信とクライアントへの応答の送信の間のメッセージ遅延の数をさらに減らすために、Paxosアルゴリズムの第2フェーズでのリーダーの役割をなくすことができ、分散コンピューティングシステムのデバイスが、クライアント20などのクライアントから直接に要求を受信することができる。そのようなアルゴリズムを、「高速Paxosアルゴリズム」と呼ぶことができるが、このアルゴリズムは、リーダーが適当な提案番号を確立した後に、しばしばクライアント要求の単なる導管として働き、分散コンピューティングシステムのデバイスの追加のポーリングなしで要求された機能を提案する、Paxosアルゴリズムの上で説明したプロパティに頼る。
上で示したように、高速Paxosアルゴリズムは、定足数が各システムステップについて一意の機能を選択しない場合に、追加のメッセージ遅延を導入する可能性がある。そのような状況は、デバイス故障に起因して発生する可能性があり、その場合に、上で説明したように、Paxosアルゴリズムがより少数の動作するデバイスを用いてコンセンサスを達成できるので、Paxosアルゴリズムを使用することができるが、よりしばしば、2つまたはそれ以上の提案がほぼ同時に分散コンピューティングシステム10にサブミットされ、デバイス11〜15のそれぞれが同一の順序でこの提案を受信しないので、定足数によって一意の機能が選択されない状況が発生する。したがって、句「ほぼ同時に」は、期待されるネットワーク伝搬遅延を介して、2つまたはそれ以上の要求が分散コンピューティングシステムを実装するデバイスのそれぞれに同一の順序で到着すると期待できなくなるように、2つまたはそれ以上の要求が時間的に十分に近くで一緒に送信されることを記述することが意図されている。たとえば、現代のネットワークハードウェアは、デバイスが地理的に互いに近くに配置されている場合に、数ミリ秒以内でメッセージをデバイスの間で送信することを可能にする。そのようなデバイスの構成について、2つまたはそれ以上の要求が「ほぼ同時に」送信されると考えられるのは、これらが、互いに約50ミリ秒以内に送信される場合である。あるいはまた、デバイスが、全世界に配置されている場合に、期待されるネットワーク伝搬遅延は、デバイスの間でのメッセージの送信に10分の数秒程度を要する可能性がある。その場合に、2つまたはそれ以上の要求が「ほぼ同時に」送信されたと考えられるのは、これらが互いに約0.5秒以内に送信される場合である。
図10aに移ると、リーダーデバイス13は、コンセンサスを達成し、それ以上の提案がないことを知ったならば、システム10が一般化されたメッセージ遅延削減フォールトトレラントコンセンサスアルゴリズムを使用することを可能にすることができる。上で説明したように、提案番号が、システムによって使用されるアルゴリズムのタイプに相関しない場合に、リーダーは、メッセージ900に似たメッセージで、最後に選択されたコマンド構造が安全であることと、リーダーが使用していた提案番号も安全であることを単純に示すことができる。しかし、提案番号が、システムによって使用されるアルゴリズムのタイプに相関する場合には、リーダー13は、一般化された低メッセージ遅延アルゴリズムに対応する、リーダーが知っている前に使用された提案番号のどれよりも大きい提案番号を選択することができ、図8aに示された形でその提案番号をデバイス11〜15に提案することができる。定足数のデバイスが、図8bに示された形などで、新たに選択された提案番号に合意する場合に、リーダー13は、一般化された低メッセージ遅延アルゴリズムに対応する新しい提案番号を送信し、その提案番号および前に選択されたコマンド構造が安全であることを示すことができる。たとえば、図10aに示されているように、リーダー13が、一般化された低メッセージ遅延アルゴリズムに対応する選択された提案番号201を有し、定足数のデバイスからの合意を得たならば、リーダーは、提案番号201および機能シーケンス{a,b,c,g}によって表されるコマンド構造が安全であることを示すメッセージ900を送信することができる。各デバイスは、提案番号を対応するアルゴリズムに相関させるデータベースを維持することができる。その結果、メッセージ900の受信時に、デバイス11〜15のそれぞれは、提案番号201が一般化された低メッセージ遅延アルゴリズムに対応することを知ることができ、したがって、クライアントから直接に受信された要求に応答するのにその提案番号を使用することができる。代替案では、メッセージ900に、クライアントから直接に要求を受け入れ、その要求を201という提案番号を有するものとして扱うことの、デバイス11から15への明示的指示を含めることができる。
11、12、13、14、15、30、31 コンピューティングデバイス
130 システムメモリ
131 ROM
133 BIOS
132 RAM
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
100 コンピューティングデバイス
120 処理ユニット
190 ビデオインターフェース
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
121 システムバス
140 ノンリムーバブル不揮発性メモリインターフェース
150 リムーバブル不揮発性メモリインターフェース
160 ユーザ入力インターフェース
170 ネットワークインターフェース
171 一般的なネットワーク接続
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
161 マウス
162 キーボード
180 リモートコンピューティングデバイス
Claims (37)
- 分散コンピューティングシステムで提案されたコマンド構造を選択する方法であって、コマンド構造は、機能の同等なシーケンスのすべてを表し、より大きいコマンド構造のプレフィックスは、前記より大きいコマンド構造を得るために1つまたは複数の機能を追加できるようなより小さいコマンド構造であり、
前記分散コンピューティングシステム内の第1定足数のデバイスに前記提案されたコマンド構造を送信するステップであって、前記提案されたコマンド構造は、提案番号に関連する、送信するステップと、
前記提案されたコマンド構造の受け入れを示す受け入れメッセージを受信するステップであって、受け入れるデバイスは、前記提案番号より大きい提案された提案番号に応答しておらず、かつ前記提案番号を使用して提案された前記提案されたコマンド構造のプレフィックスに前に投票した場合、または前記提案番号を使用して提案されたどのコマンド構造にも前に投票していない場合、受け入れメッセージを送信することができる、受信するステップと、
前記受け入れメッセージは第2定足数のデバイスから受信された場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップと
を備えることを特徴とする方法。 - 前記分散コンピューティングシステム内の第3定足数のデバイスに、提議される次の提案番号を送信するステップと、
前記提議された次の提案番号より大きい提議された提案番号に前に応答していない応答デバイスから応答メッセージを受信するステップであって、前記応答メッセージは、前記提議された提案番号より小さい提案番号に関連するコマンド構造を受け入れないことの前記応答デバイスによる約束として働き、前記応答メッセージは、(1)デバイスが受け入れた最大の提案番号であって、前記デバイスが受け入れた最大の提案番号は、前記応答デバイスによって事前に容認された、前に受け入れられたコマンド構造に関連するすべての他の提案番号より大きい、デバイスが受け入れた最大の提案番号、(2)前記デバイスが受け入れた最大の提案番号に関連する前に受け入れられたコマンド構造、および(3)デバイスが応答した最大の提案番号であって、前記デバイスが応答した最大の提案番号は、前記デバイスが応答したすべての他の提議された提案番号より大きい、デバイスが応答した最大の提案番号を含む、受信するステップと
をさらに備えることを特徴とする請求項1に記載の方法。 - 応答メッセージが第4定足数のデバイスから受信された場合、前記提案されたコマンド構造は、前記第4定足数のデバイスからの前記応答メッセージで示される前に受け入れられたコマンド構造、または定足数の第1組のすべての基礎コマンド構造をプレフィックスとして有する共通コマンド構造のいずれかであることを特徴とする請求項2に記載の方法。
- 前記提案されたコマンド構造の前記送信は、前に送信されたコマンド構造の識別子および1つまたは複数の機能を送信するステップを含み、前記前に送信されたコマンド構造に前記1つまたは複数のコマンドを追加するステップは、前記提案されたコマンド構造をもたらすことを特徴とする請求項1に記載の方法。
- 前記提案されたコマンド構造がチェックポイントコマンドで終わる場合、前記提案されたコマンド構造の前記選択について前記分散コンピューティングシステムに知らせるステップであって、その結果、各デバイスは、前記提案されたコマンド構造の構成機能の実行の後にその状態を保存し、前記提案されたコマンド構造の後に選択されたコマンド構造を保存し、前記提案されたコマンド構造を破棄することができる、知らせるステップをさらに備えることを特徴とする請求項1に記載の方法。
- 分散コンピューティングシステムで提案されたコマンド構造を選択する方法であって、コマンド構造は、機能の同等なシーケンスのすべてを表し、より大きいコマンド構造のプレフィックスは、前記より大きいコマンド構造を得るために1つまたは複数の機能を追加できるようなより小さいコマンド構造であり、
要求された機能を実行する要求をクライアントから受信するステップと、
提案されたコマンド構造を形成するために前記要求された機能を前に受け入れられたコマンド構造に追加するステップと、
前記提案されたコマンド構造を提案番号に関連付けるステップであって、前記提案番号は、一般化された低メッセージ遅延フォールトトレラントコンセンサスアルゴリズムの使用を示す、関連付けるステップと、
前に応答された提案番号が前記提案番号より大きくない場合、前記提案されたコマンド構造を受け入れるステップと、
前記提案されたコマンド構造が受け入れられた場合、前記提案されたコマンド構造を識別する受け入れメッセージを送信するステップと
を備えることを特徴とする方法。 - 前記受け入れメッセージの前記送信は、前記分散コンピューティングシステムの他のデバイスに前記受け入れメッセージを送信するステップを含み、
前記分散コンピューティングシステムの他のデバイスから他のデバイスの受け入れメッセージを受信するステップと、
定足数の前記受信された他のデバイスの受け入れメッセージが、その前記提案されたコマンド構造がプレフィックスであるコマンド構造を識別する場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップと
をさらに備えることを特徴とする請求項6に記載の方法。 - 前記提案されたコマンド構造は選択されなかったと判定された場合、
後続提案番号を選択するステップであって、前記後続提案番号は、前記提案番号より大きく、前記後続提案番号は、前記一般化された低メッセージ遅延フォールトトレラントコンセンサスアルゴリズムの使用を示す、選択するステップと、
前記分散コンピューティングシステムの前記他のデバイスに情報メッセージを送信するステップであって、前記情報メッセージは、前記後続提案番号より小さい提案番号に関連するコマンド構造を受け入れないことの約束として働き、前記情報メッセージは、(1)デバイスが受け入れた最大の提案番号であって、前記デバイスが受け入れた最大の提案番号は、事前に容認された、前に受け入れられたコマンド構造に関連するすべての他の提案番号より大きい、デバイスが受け入れた最大の提案番号、(2)前記デバイスが受け入れた最大の提案番号に関連する前に受け入れられたコマンド構造、および(3)デバイスが応答した最大の提案番号であって、前記デバイスが応答した最大の提案番号は、応答されたすべての他の提議された提案番号より大きい、デバイスが応答した最大の提案番号を含む、送信するステップと、
所定の判断基準に基づいて、他のデバイスの情報メッセージから、後続の提案されたコマンド構造を選択するステップと、
前記後続の提案されたコマンド構造を前記後続提案番号に関連付けるステップと、
前に応答された提案番号が前記後続提案番号より大きくない場合、前記後続の提案されたコマンド構造を受け入れるステップと、
前記後続の提案されたコマンド構造は受け入れられた場合、前記後続の提案されたコマンド構造を識別する後続受け入れメッセージを送信するステップと
をさらに備えることを特徴とする請求項7に記載の方法。 - 前記受け入れメッセージの前記送信は、前記受け入れメッセージをラーナーデバイスに送信するステップを含み、前記ラーナーデバイスは、
前記分散コンピューティングシステムの他のデバイスから前記他のデバイスの受け入れメッセージを受信するステップと、
定足数の前記受信された他のデバイスの受け入れメッセージが、その前記提案されたコマンド構造がプレフィックスであるコマンド構造を識別する場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップと、
前記提案されたコマンド構造が選択されたと判定された場合、前記要求された機能を実行するステップと、
前記要求された機能の前記実行の結果を前記クライアントに送信するステップと
を実行することを特徴とする請求項6に記載の方法。 - 前記ラーナーデバイスは、提案されたコマンド構造が選択されないと判定する場合、前記方法は、リーダーデバイスを選択するステップをさらに備え、前記リーダーデバイスは、前記分散コンピューティングシステム内の第1定足数のデバイスに、提議された次の提案番号を送信するステップと、前記分散コンピューティングシステム内の第2定足数のデバイスに、後続の提案されたコマンド構造を送信するステップとを実行し、前記後続の提案されたコマンド構造は、所定の判断基準に基づいて、前記提議された次の提案番号の前記送信に応答して送信されたメッセージから選択され、さらに、前記後続の提案されたコマンド構造は、前記提議された次の提案番号に関連することを特徴とする請求項9に記載の方法。
- 前記提案されたコマンド構造の前記送信は、前に送信されたコマンド構造の識別子および1つまたは複数の機能を送信するステップを含み、前記前に送信されたコマンド構造への前記1つまたは複数の機能の追加は、前記提案されたコマンド構造をもたらすことを特徴とする請求項6に記載の方法。
- 前記提案されたコマンド構造はチェックポイントコマンドで終わる場合、前記提案されたコマンド構造の前記選択について前記分散コンピューティングシステムに知らせるステップであって、その結果、各デバイスは、前記提案されたコマンド構造の構成機能の実行の後にその状態を保存し、前記提案されたコマンド構造の後に選択されたコマンド構造を保存し、前記提案されたコマンド構造を破棄することができる、知らせるステップをさらに含むことを特徴とする請求項6に記載の方法。
- 分散コンピューティングシステムで提案されたコマンド構造を選択するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、コマンド構造は、機能の同等なシーケンスのすべてを表し、より大きいコマンド構造のプレフィックスは、前記より大きいコマンド構造を得るために1つまたは複数の機能を追加できるようなより小さいコマンド構造であり、前記コンピュータ実行可能命令は、
前記分散コンピューティングシステム内の第1定足数のデバイスに前記提案されたコマンド構造を送信するステップであって、前記提案されたコマンド構造は、提案番号に関連する、送信するステップと、
前記提案されたコマンド構造の受け入れを示す受け入れメッセージを受信するステップであって、受け入れるデバイスは、前記提案番号より大きい提案された提案番号に応答しておらず、かつ前記提案番号を使用して提案された前記提案されたコマンド構造のプレフィックスに前に投票した場合、または前記提案番号を使用して提案されたどのコマンド構造にも前に投票していない場合、受け入れメッセージを送信することができる、受信するステップと、
前記受け入れメッセージが第2定足数のデバイスから受信された場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップと
を実行することを特徴とするコンピュータ可読媒体。 - 前記コンピュータ実行可能命令は、
前記分散コンピューティングシステム内の第3定足数のデバイスに、提議される次の提案番号を送信するステップと、
前記提議された次の提案番号より大きい提議された提案番号に前に応答していない応答デバイスから応答メッセージを受信するステップであって、前記応答メッセージは、前記提議された提案番号より小さい提案番号に関連するコマンド構造を受け入れないことの前記応答デバイスによる約束として働き、前記応答メッセージは、(1)デバイスが受け入れた最大の提案番号であって、前記デバイスが受け入れた最大の提案番号は、前記応答デバイスによって事前に容認された、前に受け入れられたコマンド構造に関連するすべての他の提案番号より大きい、デバイスが受け入れた最大の提案番号、(2)前記デバイスが受け入れた最大の提案番号に関連する前に受け入れられたコマンド構造、および(3)デバイスが応答した最大の提案番号であって、前記デバイスが応答した最大の提案番号は、前記デバイスが応答したすべての他の提議された提案番号より大きい、デバイスが応答した最大の提案番号を含む、受信するステップと
をさらに実行することを特徴とする請求項13に記載のコンピュータ可読媒体。 - 前記コンピュータ実行可能命令が応答メッセージを第4定足数のデバイスから受信した場合、前記提案されたコマンド構造は、前記第4定足数のデバイスからの前記応答メッセージで示される前に受け入れられたコマンド構造、または定足数の第1組のすべての基礎コマンド構造をプレフィックスとして有する共通コマンド構造のいずれかであることを特徴とする請求項14に記載のコンピュータ可読媒体。
- 第1機能が既に追加されている第1コマンド構造に前記第1機能を追加することは、前記第1コマンド構造を変更しないことを特徴とする請求項13に記載のコンピュータ可読媒体。
- 前記提案されたコマンド構造を送信する前記コンピュータ実行可能命令は、前に送信されたコマンド構造の識別子および1つまたは複数の機能を送信するコンピュータ実行可能命令を含み、前記前に送信されたコマンド構造に前記1つまたは複数の機能を追加するステップは、前記提案されたコマンド構造をもたらすことを特徴とする請求項13に記載のコンピュータ可読媒体。
- 前記提案されたコマンド構造がチェックポイントコマンドで終わる場合、前記コンピュータ実行可能命令は、前記提案されたコマンド構造の前記選択について前記分散コンピューティングシステムに知らせるステップであって、その結果、各デバイスは、前記提案されたコマンド構造の構成機能の実行の後にその状態を保存し、前記提案されたコマンド構造の後に選択されたコマンド構造を保存し、前記提案されたコマンド構造を破棄することができる、知らせるステップをさらに実行することを特徴とする請求項13に記載のコンピュータ可読媒体。
- 分散コンピューティングシステムで提案されたコマンド構造を選択するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、コマンド構造は、機能の同等なシーケンスのすべてを表し、より大きいコマンド構造のプレフィックスは、前記より大きいコマンド構造を得るために1つまたは複数の機能を追加できるようなより小さいコマンド構造であり、前記コンピュータ実行可能命令は、
要求された機能を実行する要求をクライアントから受信するステップと、
提案されたコマンド構造を形成するために前記要求された機能を前に受け入れられたコマンド構造に追加するステップと、
前記提案されたコマンド構造を提案番号に関連付けるステップであって、前記提案番号は、一般化された低メッセージ遅延フォールトトレラントコンセンサスアルゴリズムの使用を示す、関連付けるステップと、
前に応答された提案番号は前記提案番号より大きくない場合、前記提案されたコマンド構造を受け入れるステップと、
前記提案されたコマンド構造が受け入れられた場合、前記提案されたコマンド構造を識別する後続受け入れメッセージを送信するステップと
を実行することを特徴とするコンピュータ可読媒体。 - 前記受け入れメッセージを送信する前記コンピュータ実行可能命令は、前記分散コンピューティングシステムの他のデバイスに前記受け入れメッセージを送信するコンピュータ実行可能命令を含み、前記コンピュータ実行可能命令は、
前記分散コンピューティングシステムの他のデバイスから前記他のデバイスの受け入れメッセージを受信するステップと、
定足数の前記受信された他のデバイスの受け入れメッセージが、その前記提案されたコマンド構造がプレフィックスであるコマンド構造を識別する場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップと
をさらに実行することを特徴とする請求項19に記載のコンピュータ可読媒体。 - 前記提案されたコマンド構造は選択されなかったと判定された場合、前記コンピュータ実行可能命令は、
後続提案番号を選択するステップであって、前記後続提案番号は、前記提案番号より大きく、前記後続提案番号は、前記一般化された低メッセージ遅延フォールトトレラントコンセンサスアルゴリズムの使用を示す、選択するステップと、
前記分散コンピューティングシステムの前記他のデバイスに情報メッセージを送信するステップであって、前記情報メッセージは、前記後続提案番号より小さい提案番号に関連するコマンド構造を受け入れないことの約束として働き、前記情報メッセージは、(1)デバイスが受け入れた最大の提案番号であって、前記デバイスが受け入れた最大の提案番号は、事前に容認された、前に受け入れられたコマンド構造に関連するすべての他の提案番号より大きい、デバイスが受け入れた最大の提案番号、(2)前記デバイスが受け入れた最大の提案番号に関連する前に受け入れられたコマンド構造、および(3)デバイスが応答した最大の提案番号であって、前記デバイスが応答した最大の提案番号は、応答されたすべての他の提議された提案番号より大きい、デバイスが応答した最大の提案番号を含む、送信するステップと、
所定の判断基準に基づいて、他のデバイスの情報メッセージから、後続の提案されたコマンド構造を選択するステップと、
前記後続の提案されたコマンド構造を前記後続提案番号に関連付けるステップと、
前に応答された提案番号が前記後続提案番号より大きくない場合、前記後続の提案されたコマンド構造を受け入れるステップと、
前記後続の提案されたコマンド構造が受け入れられた場合、前記後続の提案されたコマンド構造を識別する後続受け入れメッセージを送信するステップと
をさらに実行することを特徴とする請求項20に記載のコンピュータ可読媒体。 - 前記提案されたコマンド構造は選択されないと判定される場合、前記コンピュータ実行可能命令は、リーダーデバイスを選択するステップを実行し、前記リーダーデバイスは、前記分散コンピューティングシステム内の第1定足数のデバイスに、提議された次の提案番号を送信するステップと、前記分散コンピューティングシステム内の第2定足数のデバイスに、後続の提案されたコマンド構造を送信するステップとをさらに実行し、前記後続の提案されたコマンド構造は、所定の判断基準に基づいて、前記提議された次の提案番号の前記送信に応答して送信されたメッセージから選択され、さらに、前記後続の提案されたコマンド構造は、前記提議された次の提案番号に関連することを特徴とする請求項20に記載のコンピュータ可読媒体。
- 前記受け入れメッセージの前記送信は、前記受け入れメッセージをラーナーデバイスに送信するステップを含み、前記ラーナーデバイスは、
前記分散コンピューティングシステムの他のデバイスから前記他のデバイスの受け入れメッセージを受信するステップと、
定足数の前記受信された他のデバイスの受け入れメッセージが、その前記提案されたコマンド構造がプレフィックスであるコマンド構造を識別する場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップと、
前記提案されたコマンド構造は選択されたと判定された場合、前記要求された機能を実行するステップと、
前記要求された機能の前記実行の結果を前記クライアントに送信するステップと
を実行することを特徴とする請求項19に記載のコンピュータ可読媒体。 - 前記ラーナーデバイスは、提案されたコマンド構造が選択されないと判定する場合、前記コンピュータ実行可能命令は、リーダーデバイスを選択するステップをさらに実行し、前記リーダーデバイスは、前記分散コンピューティングシステム内の第1定足数のデバイスに、提議された次の提案番号を送信するステップと、前記分散コンピューティングシステム内の第2定足数のデバイスに、後続の提案されたコマンド構造を送信するステップとを実行し、前記後続の提案されたコマンド構造は、所定の判断基準に基づいて、前記提議された次の提案番号の前記送信に応答して送信されたメッセージから選択され、さらに、前記後続の提案されたコマンド構造は、前記提議された次の提案番号に関連することを特徴とする請求項23に記載のコンピュータ可読媒体。
- 第1機能が既に追加されている第1コマンド構造に前記第1機能を追加することは、前記第1コマンド構造を変更しないことを特徴とする請求項19に記載のコンピュータ可読媒体。
- 前記提案されたコマンド構造を送信する前記コンピュータ実行可能命令は、前に送信されたコマンド構造の識別子および1つまたは複数の機能を送信するコンピュータ実行可能命令を含み、前記前に送信されたコマンド構造への前記1つまたは複数の機能の追加は、前記提案されたコマンド構造をもたらすことを特徴とする請求項19に記載のコンピュータ可読媒体。
- 前記提案されたコマンド構造がチェックポイントコマンドで終わる場合、前記コンピュータ実行可能命令は、前記提案されたコマンド構造の前記選択について前記分散コンピューティングシステムに知らせるステップであって、その結果、各デバイスは、前記提案されたコマンド構造の構成機能の実行の後にその状態を保存し、前記提案されたコマンド構造の後に選択されたコマンド構造を保存し、前記提案されたコマンド構造を破棄することができる、知らせるステップをさらに実行することを特徴とする請求項19に記載のコンピュータ可読媒体。
- 分散コンピューティングシステム内のコンピューティングデバイスであって、
前記分散コンピューティングシステム内の第1定足数のデバイスに提案されたコマンド構造を送信するステップであって、前記提案されたコマンド構造は、提案番号に関連し、さらに、コマンド構造は、機能の同等なシーケンスのすべてを表し、より大きいコマンド構造のプレフィックスは、前記より大きいコマンド構造を得るために1つまたは複数の機能を追加できるようなより小さいコマンド構造である、送信するステップと、
前記提案されたコマンド構造の受け入れを示す受け入れメッセージを受信するステップであって、受け入れるデバイスは、前記提案番号より大きい提議された提案番号に応答しておらず、かつ前記提案番号を使用して提案された前記提案されたコマンド構造のプレフィックスに前に投票した場合、または前記提案番号を使用して提案されたどのコマンド構造にも前に投票していない場合、受け入れメッセージを送信することができる、受信するステップと
を実行するネットワークインターフェースと、
前記受け入れメッセージは第2定足数のデバイスから受信された場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップ
を実行する処理ユニットと
を備えることを特徴とするコンピューティングデバイス。 - 前記ネットワークインターフェースは、
前記分散コンピューティングシステム内の第3定足数のデバイスに、提議される次の提案番号を送信する追加ステップと、
前記提議された次の提案番号より大きい提議された提案番号に前に応答していない応答デバイスから応答メッセージを受信する追加ステップであって、前記応答メッセージは、前記提議された提案番号より小さい提案番号に関連するコマンド構造を受け入れないことの前記応答デバイスによる約束として働き、前記応答メッセージは、(1)デバイスが受け入れた最大の提案番号であって、前記デバイスが受け入れた最大の提案番号は、前記応答デバイスによって事前に容認された、前に受け入れられたコマンド構造に関連するすべての他の提案番号より大きい、デバイスが受け入れた最大の提案番号、(2)前記デバイスが受け入れた最大の提案番号に関連する前に受け入れられたコマンド構造、および(3)デバイスが応答した最大の提案番号であって、前記デバイスが応答した最大の提案番号は、前記デバイスが応答したすべての他の提議された提案番号より大きい、デバイスが応答した最大の提案番号を含む、受信する追加ステップと
を実行することを特徴とする請求項28に記載のコンピューティングデバイス。 - 応答メッセージが第4定足数のデバイスから受信された場合、前記提案されたコマンド構造は、前記第4定足数のデバイスからの前記応答メッセージで示される前に受け入れられたコマンド構造、または定足数の第1組のすべての基礎コマンド構造をプレフィックスとして有する共通コマンド構造のいずれかであることを特徴とする請求項28に記載のコンピューティングデバイス。
- 前記提案されたコマンド構造がチェックポイントコマンドで終わる場合、前記ネットワークインターフェースは、前記提案されたコマンド構造の前記選択について前記分散コンピューティングシステムに知らせるステップであって、その結果、各デバイスは、前記提案されたコマンド構造の構成機能の実行の後にその状態を保存し、前記提案されたコマンド構造の後に選択されたコマンド構造を保存し、前記提案されたコマンド構造を破棄することができる、知らせるステップをさらに実行することを特徴とする請求項28に記載のコンピューティングデバイス。
- 分散コンピューティングシステム内のコンピューティングデバイスであって、
要求された機能を実行する要求をクライアントから受信するステップと、
提案されたコマンド構造を形成するために前記要求された機能を前に受け入れられたコマンド構造に追加するステップであって、コマンド構造は、機能の同等なシーケンスのすべてを表し、より大きいコマンド構造のプレフィックスは、前記より大きいコマンド構造を得るために1つまたは複数の機能を追加できるようなより小さいコマンド構造である、追加するステップと、
前記提案されたコマンド構造が受け入れられた場合、前記提案されたコマンドを識別する受け入れメッセージを送信するステップと
を実行するネットワークインターフェースと、
前記提案されたコマンド構造を提案番号に関連付けるステップであって、前記提案番号は、一般化された低メッセージ遅延フォールトトレラントコンセンサスアルゴリズムの使用を示す、関連付けるステップと、
前に応答された提案番号は前記提案番号より大きくない場合、前記提案されたコマンド構造を受け入れるステップと
を実行する処理ユニットと
を備えることを特徴とするコンピューティングデバイス。 - 前記受け入れメッセージの前記送信は、前記分散コンピューティングシステムの他のデバイスに前記受け入れメッセージを送信するステップを含み、前記ネットワークインターフェースは、
前記分散コンピューティングシステムの他のデバイスから他のデバイスの受け入れメッセージを受信するステップ
をさらに実行し、前記処理ユニットは、
定足数の前記受信された他のデバイスの受け入れメッセージが、その前記提案されたコマンド構造がプレフィックスであるコマンド構造を識別する場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップ
をさらに実行することを特徴とする請求項32に記載のコンピューティングデバイス。 - 前記提案されたコマンド構造は選択されなかったと判定された場合、前記ネットワークインターフェースは、
前記分散コンピューティングシステムの前記他のデバイスに情報メッセージを送信するステップであって、前記情報メッセージは、後続提案番号より小さい提案番号に関連するコマンド構造を受け入れないことの約束として働き、前記情報メッセージは、(1)デバイスが受け入れた最大の提案番号であって、前記デバイスが受け入れた最大の提案番号は、事前に容認された、前に受け入れられたコマンド構造に関連するすべての他の提案番号より大きい、デバイスが受け入れた最大の提案番号、(2)前記デバイスが受け入れた最大の提案番号に関連する前に受け入れられたコマンド構造、および(3)デバイスが応答した最大の提案番号であって、前記デバイスが応答した最大の提案番号は、応答されたすべての他の提議された提案番号より大きい、デバイスが応答した最大の提案番号を含む、送信するステップと、
前記後続の提案されたコマンド構造が受け入れられた場合、前記後続の提案されたコマンド構造を識別する後続受け入れメッセージを送信するステップと
をさらに実行し、前記処理ユニットは、
前記後続提案番号を選択するステップであって、前記後続提案番号は、前記提案番号より大きく、前記後続提案番号は、前記一般化された低メッセージ遅延フォールトトレラントコンセンサスアルゴリズムの使用を示す、選択するステップと、
所定の判断基準に基づいて、他のデバイスの情報メッセージから、後続の提案されたコマンド構造を選択するステップと、
前記後続の提案されたコマンド構造を前記後続提案番号に関連付けるステップと、
前に応答された提案番号は前記後続提案番号より大きくない場合、前記後続の提案されたコマンド構造を受け入れるステップと
をさらに実行することを特徴とする請求項33に記載のコンピューティングデバイス。 - 前記受け入れメッセージの前記送信は、前記受け入れメッセージをラーナーデバイスに送信するステップを含み、前記ラーナーデバイスは、
前記分散コンピューティングシステムの他のデバイスから前記他のデバイスの受け入れメッセージを受信するステップと、
定足数の前記受信された他のデバイスの受け入れメッセージが、その前記提案されたコマンド構造がプレフィックスであるコマンド構造を識別する場合、前記提案されたコマンド構造は前記分散コンピューティングシステムによって選択されたと判定するステップと、
前記提案されたコマンド構造が選択されたと判定された場合、前記要求された機能を実行するステップと、
前記要求された機能の前記実行の結果を前記クライアントに送信するステップと
を実行することを特徴とする請求項32に記載のコンピューティングデバイス。 - 前記提案されたコマンド構造がチェックポイントコマンドで終わる場合、前記ネットワークインターフェースは、前記提案されたコマンド構造の前記選択について前記分散コンピューティングシステムに知らせるステップであって、その結果、各デバイスは、前記提案されたコマンド構造の構成機能の実行の後にその状態を保存し、前記提案されたコマンド構造の後に選択されたコマンド構造を保存し、前記提案されたコマンド構造を破棄することができる、知らせるステップをさらに実行することを特徴とする請求項32に記載のコンピューティングデバイス。
- 機能のアレイを含むコマンド構造であって、交換可能でない前記機能の対は、機能の前記対内の各機能に関して順序付けられ、交換可能である前記機能の対は、機能のすべての同等のシーケンスを機能の前記アレイから判定することを可能にする形で示され、機能の各同等のシーケンスは、機能のシーケンスを実行するデバイスの同等の状態をもたらし、さらに、1クライアントからの1機能の複数の要求がそれぞれ異なる機能識別子を割り当てられるように、各機能に割り当てられた機能識別子によって示されるように第1機能が既に機能の前記アレイに含まれる場合、前記コマンド構造への前記第1機能の追加は前記コマンド構造を変更しないことを特徴とするコマンド構造。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/996,351 US7698465B2 (en) | 2004-11-23 | 2004-11-23 | Generalized Paxos |
US10/996,351 | 2004-11-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006155614A true JP2006155614A (ja) | 2006-06-15 |
JP4986442B2 JP4986442B2 (ja) | 2012-07-25 |
Family
ID=36204309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005338653A Active JP4986442B2 (ja) | 2004-11-23 | 2005-11-24 | 一般化されたPaxos |
Country Status (5)
Country | Link |
---|---|
US (1) | US7698465B2 (ja) |
EP (1) | EP1659500B1 (ja) |
JP (1) | JP4986442B2 (ja) |
AT (1) | ATE428979T1 (ja) |
DE (1) | DE602005013891D1 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277467A (ja) * | 2009-05-29 | 2010-12-09 | Nippon Telegr & Teleph Corp <Ntt> | 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム |
WO2011096319A1 (ja) * | 2010-02-04 | 2011-08-11 | 株式会社トライテック | 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム |
JP2011253390A (ja) * | 2010-06-02 | 2011-12-15 | Trytech Co Ltd | 分散コンピューティングシステム |
JP2011253391A (ja) * | 2010-06-02 | 2011-12-15 | Trytech Co Ltd | 分散コンピューティングシステム |
JP2012033108A (ja) * | 2010-08-02 | 2012-02-16 | Trytech Co Ltd | 分散コンピューティングシステムの処理方法 |
WO2015186191A1 (ja) * | 2014-06-03 | 2015-12-10 | 株式会社日立製作所 | データ管理システム及びデータ管理方法 |
WO2016067426A1 (ja) * | 2014-10-30 | 2016-05-06 | 株式会社日立製作所 | 分散コンピューティングシステム及び分散処理方法 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620680B1 (en) * | 2002-08-15 | 2009-11-17 | Microsoft Corporation | Fast byzantine paxos |
US7856502B2 (en) * | 2004-06-18 | 2010-12-21 | Microsoft Corporation | Cheap paxos |
US7849223B2 (en) * | 2007-12-07 | 2010-12-07 | Microsoft Corporation | Virtually synchronous Paxos |
US20110178984A1 (en) * | 2010-01-18 | 2011-07-21 | Microsoft Corporation | Replication protocol for database systems |
US8825601B2 (en) | 2010-02-01 | 2014-09-02 | Microsoft Corporation | Logical data backup and rollback using incremental capture in a distributed database |
US8719432B1 (en) | 2010-04-30 | 2014-05-06 | Amazon Technologies, Inc. | System and method for determining staleness of data received from a distributed lock manager |
US8654650B1 (en) | 2010-04-30 | 2014-02-18 | Amazon Technologies, Inc. | System and method for determining node staleness in a distributed system |
US8458517B1 (en) | 2010-04-30 | 2013-06-04 | Amazon Technologies, Inc. | System and method for checkpointing state in a distributed system |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8694639B1 (en) | 2010-09-21 | 2014-04-08 | Amazon Technologies, Inc. | Determining maximum amount of resource allowed to be allocated to client in distributed system |
US8589479B2 (en) | 2010-11-22 | 2013-11-19 | Infosys Limited | Distributed registry for device discovery using quorum consensus protocol |
US8694647B2 (en) * | 2011-03-18 | 2014-04-08 | Microsoft Corporation | Read-only operations processing in a paxos replication system |
US9201742B2 (en) * | 2011-04-26 | 2015-12-01 | Brian J. Bulkowski | Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm |
US9203900B2 (en) | 2011-09-23 | 2015-12-01 | Netapp, Inc. | Storage area network attached clustered storage system |
US8683170B1 (en) | 2011-09-23 | 2014-03-25 | Netapp, Inc. | Consistent distributed storage communication protocol semantics in a clustered storage system |
US8849995B1 (en) * | 2011-09-30 | 2014-09-30 | Amazon Technologies, Inc. | Managing host computing devices |
US9690679B2 (en) | 2011-10-31 | 2017-06-27 | Hewlett Packard Enterprise Development Lp | Transaction commitment and replication in a storage system |
US9456053B2 (en) | 2011-12-14 | 2016-09-27 | Level 3 Communications, Llc | Content delivery network |
US9172670B1 (en) * | 2012-01-31 | 2015-10-27 | Google Inc. | Disaster-proof event data processing |
US10754710B1 (en) | 2012-06-20 | 2020-08-25 | Amazon Technologies, Inc. | Transactional watch mechanism |
US10630566B1 (en) | 2012-06-20 | 2020-04-21 | Amazon Technologies, Inc. | Tightly-coupled external cluster monitoring |
US9578130B1 (en) | 2012-06-20 | 2017-02-21 | Amazon Technologies, Inc. | Asynchronous and idempotent distributed lock interfaces |
US10191959B1 (en) | 2012-06-20 | 2019-01-29 | Amazon Technologies, Inc. | Versioned read-only snapshots of shared state in distributed computing environments |
US9342358B2 (en) | 2012-09-14 | 2016-05-17 | General Electric Company | System and method for synchronizing processor instruction execution |
US9256426B2 (en) | 2012-09-14 | 2016-02-09 | General Electric Company | Controlling total number of instructions executed to a desired number after iterations of monitoring for successively less number of instructions until a predetermined time period elapse |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9632828B1 (en) | 2012-09-24 | 2017-04-25 | Amazon Technologies, Inc. | Computing and tracking client staleness using transaction responses |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
CN103914313B (zh) * | 2012-12-31 | 2017-06-27 | 北京新媒传信科技有限公司 | 一种paxos实例更新方法、设备及系统 |
US9171019B1 (en) | 2013-02-19 | 2015-10-27 | Amazon Technologies, Inc. | Distributed lock service with external lock information database |
US9553951B1 (en) | 2013-04-24 | 2017-01-24 | Amazon Technologies, Inc. | Semaphores in distributed computing environments |
WO2015172107A1 (en) | 2014-05-09 | 2015-11-12 | Nutanix, Inc. | Mechanism for providing external access to a secured networked virtualization environment |
US9760529B1 (en) | 2014-09-17 | 2017-09-12 | Amazon Technologies, Inc. | Distributed state manager bootstrapping |
CN105763519A (zh) * | 2014-12-18 | 2016-07-13 | 华为技术有限公司 | 一种一致性控制方法,装置及系统 |
US9852221B1 (en) | 2015-03-26 | 2017-12-26 | Amazon Technologies, Inc. | Distributed state manager jury selection |
GB2554250B (en) | 2015-07-02 | 2021-09-01 | Google Llc | Distributed storage system with replica location selection |
US10083217B2 (en) * | 2015-11-26 | 2018-09-25 | International Business Machines Corporation | Method and system for upgrading a set of replicated state machine processes |
EP3193256B1 (en) * | 2016-01-12 | 2018-08-01 | Politechnika Poznanska | A fault-tolerant data processing computer system and method for implementing a distributed two-tier state machine |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
US10204341B2 (en) * | 2016-05-24 | 2019-02-12 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees |
CN106357604B (zh) * | 2016-08-18 | 2019-07-23 | 苏州超块链信息科技有限公司 | 一种一致性数据累积协同组装方法 |
CN108924240B (zh) * | 2018-07-19 | 2022-08-12 | 腾讯科技(深圳)有限公司 | 基于一致性协议的分布式处理方法、装置及存储介质 |
US11194680B2 (en) | 2018-07-20 | 2021-12-07 | Nutanix, Inc. | Two node clusters recovery on a failure |
US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
CN115835368B (zh) * | 2023-02-24 | 2023-06-02 | 深圳锦沃科技有限公司 | 一种去中心化的多基站时间槽同步方法、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5261085A (en) * | 1989-06-23 | 1993-11-09 | Digital Equipment Corporation | Fault-tolerant system and method for implementing a distributed state machine |
JP2005502957A (ja) * | 2001-09-06 | 2005-01-27 | ビーイーエイ システムズ, インコーポレイテッド | 厳密に一回のキャッシュフレームワーク |
JP2005196763A (ja) * | 2003-12-30 | 2005-07-21 | Microsoft Corp | 簡略化されたpaxos |
JP2006004434A (ja) * | 2004-06-18 | 2006-01-05 | Microsoft Corp | 分散障害許容型コンピューティングシステムにおける効率のよいレプリカセットの変更 |
JP2006004433A (ja) * | 2004-06-18 | 2006-01-05 | Microsoft Corp | Cheappaxos |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6226710B1 (en) * | 1997-11-14 | 2001-05-01 | Utmc Microelectronic Systems Inc. | Content addressable memory (CAM) engine |
US6470346B2 (en) * | 1998-10-07 | 2002-10-22 | Millennium Pharmaceuticals, Inc. | Remote computation framework |
US6779112B1 (en) * | 1999-11-05 | 2004-08-17 | Microsoft Corporation | Integrated circuit devices with steganographic authentication, and steganographic authentication methods |
US6671821B1 (en) | 1999-11-22 | 2003-12-30 | Massachusetts Institute Of Technology | Byzantine fault tolerance |
US6691171B1 (en) * | 2002-02-01 | 2004-02-10 | Micrel, Inc. | Method and system for address lookup in data communication |
-
2004
- 2004-11-23 US US10/996,351 patent/US7698465B2/en active Active
-
2005
- 2005-11-18 AT AT05110954T patent/ATE428979T1/de not_active IP Right Cessation
- 2005-11-18 DE DE602005013891T patent/DE602005013891D1/de active Active
- 2005-11-18 EP EP05110954A patent/EP1659500B1/en not_active Not-in-force
- 2005-11-24 JP JP2005338653A patent/JP4986442B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5261085A (en) * | 1989-06-23 | 1993-11-09 | Digital Equipment Corporation | Fault-tolerant system and method for implementing a distributed state machine |
JP2005502957A (ja) * | 2001-09-06 | 2005-01-27 | ビーイーエイ システムズ, インコーポレイテッド | 厳密に一回のキャッシュフレームワーク |
JP2005196763A (ja) * | 2003-12-30 | 2005-07-21 | Microsoft Corp | 簡略化されたpaxos |
JP2006004434A (ja) * | 2004-06-18 | 2006-01-05 | Microsoft Corp | 分散障害許容型コンピューティングシステムにおける効率のよいレプリカセットの変更 |
JP2006004433A (ja) * | 2004-06-18 | 2006-01-05 | Microsoft Corp | Cheappaxos |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277467A (ja) * | 2009-05-29 | 2010-12-09 | Nippon Telegr & Teleph Corp <Ntt> | 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム |
WO2011096319A1 (ja) * | 2010-02-04 | 2011-08-11 | 株式会社トライテック | 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム |
US8775500B2 (en) | 2010-02-04 | 2014-07-08 | Tritech Inc. | Distributed computing system having leader signaled agents to execute task after data acquisition completion |
JP2011253390A (ja) * | 2010-06-02 | 2011-12-15 | Trytech Co Ltd | 分散コンピューティングシステム |
JP2011253391A (ja) * | 2010-06-02 | 2011-12-15 | Trytech Co Ltd | 分散コンピューティングシステム |
JP2012033108A (ja) * | 2010-08-02 | 2012-02-16 | Trytech Co Ltd | 分散コンピューティングシステムの処理方法 |
US8745126B2 (en) | 2010-08-02 | 2014-06-03 | Tribeth Inc. | Method of processing distributed computing system |
WO2015186191A1 (ja) * | 2014-06-03 | 2015-12-10 | 株式会社日立製作所 | データ管理システム及びデータ管理方法 |
JPWO2015186191A1 (ja) * | 2014-06-03 | 2017-04-20 | 株式会社日立製作所 | データ管理システム及びデータ管理方法 |
WO2016067426A1 (ja) * | 2014-10-30 | 2016-05-06 | 株式会社日立製作所 | 分散コンピューティングシステム及び分散処理方法 |
US10489340B2 (en) | 2014-10-30 | 2019-11-26 | Hitachi, Ltd. | Distributed computing system and distributed processing method |
Also Published As
Publication number | Publication date |
---|---|
EP1659500B1 (en) | 2009-04-15 |
DE602005013891D1 (de) | 2009-05-28 |
EP1659500A2 (en) | 2006-05-24 |
JP4986442B2 (ja) | 2012-07-25 |
US20060136781A1 (en) | 2006-06-22 |
ATE428979T1 (de) | 2009-05-15 |
US7698465B2 (en) | 2010-04-13 |
EP1659500A3 (en) | 2007-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4986442B2 (ja) | 一般化されたPaxos | |
US7249280B2 (en) | Cheap paxos | |
US7555516B2 (en) | Fast Paxos recovery | |
JP4976661B2 (ja) | Cheappaxos | |
US7558883B1 (en) | Fast transaction commit | |
US7711825B2 (en) | Simplified Paxos | |
US8005888B2 (en) | Conflict fast consensus | |
EP1617331B1 (en) | Efficient changing of replica sets in distributed fault-tolerant computing system | |
Lamport et al. | Cheap paxos | |
EP2434729A2 (en) | Method for providing access to data items from a distributed storage system | |
EP3694148A1 (en) | Configuration modification method for storage cluster, storage cluster and computer system | |
Aguilera et al. | Reconfiguring replicated atomic storage: A tutorial | |
JP5900094B2 (ja) | データ整合システム、データ整合方法およびデータ整合プログラム | |
Liskov | From viewstamped replication to Byzantine fault tolerance | |
JP5342395B2 (ja) | 計算機システムおよびその方法 | |
Vieira et al. | Seamless paxos coordinators | |
CN112702206A (zh) | 一种主备集群部署方法及系统 | |
Snyder et al. | Robustness infrastructure for multi-agent systems | |
Nath | Fault tolerance of the application manager in Vigne | |
Kemme et al. | Self-Configuration and Elasticity | |
Turner | Unbounded Pipelining in Dynamically Reconfigurable Paxos Clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120327 |
|
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: 20120417 |
|
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: 20120424 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4986442 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: 20150511 Year of fee payment: 3 |
|
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 |
|
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 |