コーミング分散コンセンサスアルゴリズム

  主流のプログラムのためのコンセンサスアルゴリズムの分散:2PC、3PC、リーダー/フォロワー、パクシ

  一貫性の2つのシナリオがあります。

  変形例において、同じデータの1、複数のコピー、より一貫性より確実にするために
  成功するために、一貫して、サービスデータの異なる変異体の2以上の部分を失敗に失敗した、成功しています

 

  矛盾が発生します。

  異常動作につながる1は、失敗した
  図2に示すように、ネットワークパーティション
  3、アプリケーション障害

  2フェーズ・コミット(2PC)

  トランザクションは、整合性アルゴリズムを達成するために2つの相の準備と提出に提出され、主にトランザクション管理のために使用され、一貫性が配布される、二相は、イニシエータと参加者の更新の途中でコーディネーターの役割を高める必要性をコミットします。次のように具体的な手順は次のとおりです。

  1変更要求は、各参加者が応答するためにすべての参加を待って、提出することができるかどうかを確認した後、変更はコーディネーターによって開始された
  参加者は(REDOログ、プロセスレコードのアンドゥを)命令のポイントに提出するトランザクション操作を実行し、2を
  3、参加者の次の命令を待っているコーディネーター、コーディネーターとブロックの結果に応じて提出する準備ができて
  、タイムアウト応答が受信されていないがある場合は4を、すべての参加者のコーディネーターは、応答を受け入れ、その後、ロールバック処理
  5、命令コーディネーターコミットやロールバックのすべての参加者に解放
  6人の参加者がコミットまたはロールバック、占有ロックおよび他のリソースの解放、およびに応答する
  7、の終わり

  二相は、欠陥をコミットします。

  コーディネーターを待っている間に1は、ブロックすることができ、参加者はブロックされ、準備が完了した場合、ダウンタイムのコーディネーターは、参加者がブロックされており
  、参加者はダウンタイム、2を、一貫性のない、コーディネータはコミットまたはロールバックコマンドを発行します矛盾(必要な手動処理)、その結果、メッセージを受信

  2PC実装:XA仕様では、JTAのフィールドを実現するJava

  三相は、(3PC)のコミット:発信前段階の増加やスーパーマーケットに生じる問題の2PCを解決するためのメカニズムを、具体的な手順:

  3PC欠点:プリコミット、コーディネーターのダウンタイムで一部の参加の失敗、後にタイムアウトを待っているが、一貫性のないデータが得られ、成功した参加者が提示されるプリコミット、およびタイムアウトが3PCので、何の工業的実施、制御が困難ではありません。

  リーダー/マスタープログラムは、一貫性のシーンの単純過半数を達成するために、指導者によって開始されたすべての更新操作は、たとえば、飼育係のために、この方法で配布されています。

  リーダー/マスタープログラムの短所:リーダー負荷、故障のクラスタのリーダーの一点は、(選挙中に新しいリーダー)使用できません。

  Paxosアルゴリズム

  役割:提案(提案書の責任提案者、)、アクセプター(投票の責任受信者)、学習者(学習は、投票に参加しない)、ノードは両方の提案することができアクセプタかもしれ

  提案構成:提案番号(グローバルに一意の増分、順序の提案を反映する)、更新された値を

  プロセスを書きます:

  受信者は、提案に同意した場合は1、準備フェーズ(投票フェーズ、受信者を取る案の提案者は、応答が約束製など)提案の現在の提案よりも低い数値を受け入れる(受け入れない約束されている
提案者は、受信しました応答の大部分、次の段階、または再提案
  現在の提案は、その数より約束を有する場合2、(フェーズコミット)変化位相を受け入れるように、提案者が受信者に送信されたメッセージを受け付け、受信者の比較提案番号を受け付け小さなは、NACK(船荷証券番号、リターンの彼らの現在の約束を)答え、または私達accpetを受け入れるように。

  同じ提案、提案者1、2提唱者が承認された、デモの通常のシナリオ

  図2および図3の受信機は、1つの提案は、接触を失った受信機、異常なプレゼンテーションシーンとの失われた接触を提唱します

  プロセスを読みます:

  1、電流値皆、取得するための受信ノードブロードキャストクライアント要求
  2を、同じ値の過半数を受け、その値が返され、その後のローカル値の値は更新しない場合は
  3を、同じ値の半分ではありません失敗を読みます

  此外还有一种常用的分布式一致性算法实现:RAFT,原理参考http://thesecretlivesofdata.com/raft/

  

おすすめ

転載: www.cnblogs.com/hhhshct/p/11567365.html