Raft elections in depth

Raft elections in depth#

PGDの書き込みリーダーの選択は、 PGDのRaftメカニズムに依存しています。 Raftメカニズムは、PGDのBDR Postgres拡張機能の完全な内部にあり、透過的に動作します。グループ内のノードは、グループのノード内にRaftリーダーを確立することから始めます。

ノードの相互作用#

Raftリーダーが確立されると、リーダーはカタログを照会して、プロキシルーティングの書き込みリーダーが指定されたかどうかを確認します。

書き込みリーダーが指定されていない場合、Raftリーダーは新しい書き込みリーダーを指定するための手順を実行します。プロセスは、グループ内のすべてのノードを照会してその状態を確立することから始まります。結果のノードのリストは、資格のないノードたとえば、監視ノードについてフィルタリングされ、優先順位が付けられます。リストの最初/一番上のエントリがRaftログの新しい書き込みリーダーとして設定されます。

プロキシの相互作用#

すべてのプロキシは、最初にグループ内の任意のデータノードに接続します。この動作により、現在の書き込みリーダーのカタログを照会し、そのノードへのルーティング接続を開始できます。

彼らはRaftリーダーに接続し、書き込みリーダーのカタログエントリの変更を監視します。書き込みリーダーの変更が通知されると、ルーティングを再構成し、新しい書き込みリーダーに接続を送信します。

ノードとプロキシの相互作用の両方が次のシーケンス図に示されています。 2つのノードと1つのプロキシが関係し、どのノードが書き込みリーダーになるかを調整し、プロキシはどのノードが書き込みリーダーであるかを学習するのを待機しています。

Sequence Diagram

Sequence Diagram#