10分にはZAB(飼育係アトミックブロードキャスト)プロトコルを理解[ターン]

飼育係ベースZAB(飼育係アトミックブロードキャスト)、スタンバイモードに実装されたシステム・アーキテクチャは、各クラスタのコピー間のデータの整合性。

ZABプロトコルは選挙(選挙)、発見(発見)、同期(シンク)、放送(ブロードキャスト)四つの段階を定義します。

メインステージは、データ復旧を行うに際に選択された発見(発見)、同期(シンク);選挙(選挙は)マスターである選出されました。

マスタからホストと選択されたデータから、および同期良い、通常の位相同期が書き込みデータを書き込むための放送(ブロードキャスト)。

単に次ZAB契約を導入し、目的は、迅速ZAB契約を把握し、その本質を理解することです。そして、紙を通じて合意の具体的な詳細を理解します。それは2つの段階に分けて選挙放送を紹介しています。

基本コンセプト

私たちは、ZKの下で基本的な概念のいくつかを理解しています。

ZKクラスタは3つの役割があります。

  • リーダーは、私たちが主を呼んでいます。

  • 私たちが言うからフォロワー。

  • 観察者は、それを無視することができ、投票しない、クローンコピーのマスターと見なすことができます。

クラスタノードZK、3つの状態があります。

  • 状態の選挙を見て、現在のrudderless。

  • 主要な指導者だけの状態。

  • フォロワー以下の状態のみ。

それぞれの書き込みが成功した、zxidと呼ばれるグローバル一意識別子を持っています。これは、正の整数の64ビット高32と呼ばれるエポック代表選挙の時代、下位32ビットの自動インクリメントID、プラスライトワンスそれぞれです。中国の古代の治世を想像して、例えば、15年万里、万里はエポックで、15年はIDです。

ZKのクラスタマシンは、一般的に奇数(2N + 1)され、1つのホストのみのリーダー、残りはスレーブ・フォロワです。予備選挙やデータを書き込み、存在しなければならない> = N + 1の操作の選挙を行うために、同じ選挙を設定します。

投票の優先順位:最初zxidの比較、等しい場合は、マシンIDを比較し、彼らが降順です。

選挙

新しいクラスタ、またはホストのクラッシュ、または半分以上、またはホストとスレーブが接触を失ったときに後動作し、新しいホストを選択するトリガされます。そこ2つのアルゴリズムがあるfast paxosbasic paxos

高速Paxos

使用ZABのデフォルトのアルゴリズムは、高速Paxosアルゴリズムです。

選挙は、選挙のラウンドプラスエポック分野で同様zxid、相互干渉を防止するための選挙の異なるラウンドでなければなりません。

各ノードは、状態に探して自分自身に投票し始め、その後、他のマシンにメッセージを投票します。コンテンツ<議決権の最初のラウンドは、投票ノードzxidは、ノード番号を投げました>

状態が受け取る他のノードを探した後、

図1は、第1のチケットが有効であるか否かを判断します。投票ラウンドでと平等のための投票のローカルレコード数ラウンドの投票数を見るために効果的な方法かどうか:

2.1小さなローカル投票ラウンドの数の比は、破棄した場合。

2.2ローカル大きな車輪よりも議決権の数の場合

  1. 证明自己投票过期了,清空本地投票信息,

  2. 更新投票轮数和结果为收到的内容。

  3. 通知其他所有节点新的投票方案。

2.3は、ホイールに等しい票のローカル番号場合は、優先順位によって得票に応じて、自分の投票用紙を投票してキャストして比較します。

  2.3.1 如果收到的优先级大,更新自己的投票为对方发过来投票方案,把投票发出去。 

  2.3.2 如果收到的优先级小,则忽略该投票。

  2.3.3 如果收到的优先级相等,対応するノードを投票して更新されます。

3の後、それぞれの投票結果は、既にいずれかのノードが投票の半分以上に達することができるかどうかを確認するために、レコードのリストを受け取っ見るために票を集めました。あなたが終了票に達した場合、それは選挙が終わったことを、自分のステータスを更新発表しました。そして、発見と同期段階。そうでない場合は、投票を収集し続けます。

基本パクシ

1各要求ノードに見て、他のノードが投票するよう依頼しました。

他のノードは<zxid、IDのZK>彼らの投票に戻ります。最初は、自分自身をキャスト。

投票は彼らの投票は大きなzxidより受け取った場合2の結果を受け取った後、彼らの票を更新します。

すべてのノードを受信すると3は、投票数は、ノードの選挙は選挙の成功の半分以上に達している、返します。そうでなければ、最後までリーダーを選択し、尋ねる開始する次のラウンドに進みます。

基本パクシと高速Paxos差

ここに限り、結果が更新されると、それはすぐに他のノードに同期され、高速でアクティブなプッシュアウトです。他のノードは、すべてのノードに自分のチケットを気づく優先度の低い投票自分自身を発見、更新するために、投票し、すべてのノードに再度更新通知しない場合があります。

各ノードは、新しい選挙結果に他のノードを尋ねる行く、新しい結果を知るために、基本的な仕上げを依頼する必要があります。

速い速い基本的なところよりも、それが更新するかどうかを彼らの票を知るために情報交換を投票しませ後にノード、および各ノードです。これは、相互作用の数を減らすことができます。

ラジオ - マスタ - スレーブ同期

それはスレーブによって受信された場合、ホストは行くだろう、書き込み操作がある場合に、マスターからの同期データは、比較的簡単です。ホスト上で実行されている書き込みを確保するために、前方を行います。

返信の半分以上を受け取った後、取引前のメインの提案は、再発を提出しました。マスタは、書き込み動作、zxidを生成するトランザクションのための最初の局所的に生成されたビジネスを受け、その後、すべてのノードフォロワに送信します。フォロワーが業務を受信すると、最初のリーダーに正常に戻った後、ローカルディスクに書き込まれたトランザクションログを、提案しました。トランザクションに提出フィードバックの半分以上を受け取った後、リーダー。その後、提出後に受信フォロワーをクライアントに配布することができた後も、トランザクションをコミットし、トランザクションをコミットするために、すべてのフォロワーに通知します。

概要

唯一の書き込みによると、その後は、競合がグローバルzxidを生成しないことを確実にするために、メイン制御から同期します。グローバルに一意zxidは選挙のための優先順位を作成し、データを同期することができます。高速Paxos原則のセクションを返すことはできます。核となるアイデアは、最高の優先度メインノードを有するように確保するzxid昇順。マスター・スレーブによって同期提案し、二段階で提出されたノード成功した書き込みの半分以上では、データを書き込む成功したとみなされます。


 

ようこそ注意


---------------------
著者:owenandhisfriendsの
出典:CNBLOGS
オリジナルます。https://www.cnblogs.com/owenandhisfriends/p/9622208.html
免責事項:この記事作者オリジナルの記事は、再現し、ボーエンのリンクを添付してください!

おすすめ

転載: www.cnblogs.com/webfactory/p/11539719.html