【りーだーせんしゅつ】

リーダー選出 とは?

公開:
💡 代表を選び、任期で新旧を区別する

複数のノードから、処理を取りまとめるリーダーを選ぶ仕組み。Raftでは任期と過半数の投票を使い、同じ任期のリーダーを高々1台にする。

📌 このページのポイント
リーダー選出 Raftの例:任期7、5台中3票で選出 候補A → リーダー 自分の票:1票 B:Aへ投票 C:Aへ投票 D:未応答 E:未応答 同じ任期は1台に1票。投票にはログの条件もある 旧任期のリーダーが交代をまだ知らない場合はある
代表を選び、任期で新旧を区別する
ひよこ ひよこ
分散システムにもリーダーがいるの?
ペンギン先生 ペンギン先生
処理の順番やデータ複製をまとめるために置く設計があるよ。その役割を複数のノードから選び、必要に応じて交代する仕組みがリーダー選出なんだ。ここではRaftを例に見よう。
ひよこ ひよこ
止まったリーダーはどうやって見つけるの?
ペンギン先生 ペンギン先生
一定時間連絡が来なければ故障を疑って選挙を始める。ただし、相手が止まったのか通信が遅いのかはタイムアウトだけでは区別できない。Raftは待ち時間をランダム化して、候補が同時に立つ衝突を減らすよ。
ひよこ ひよこ
誰が勝つの?
ペンギン先生 ペンギン先生
候補は任期番号を進め、自分にも投票して他のノードに票を求める。5台なら3票が必要だよ。各ノードが同じ任期に複数候補へ投票しないので、同じ任期に過半数を得るリーダーは高々1台になるんだ。
ひよこ ひよこ
古いデータしか持っていない候補でもいいの?
ペンギン先生 ペンギン先生
よくないんだ。Raftは投票時にログの新しさも確かめる。最後のログ項目の任期を比べ、それが同じなら末尾の位置を比べる。単純にデータの件数だけで候補を決めるわけではないよ。
ひよこ ひよこ
前のリーダーがあとから戻ったらどうなるの?
ペンギン先生 ペンギン先生
より新しい任期を知ればフォロワーに戻るよ。ただ、通信が途切れている間は旧リーダーが交代を知らないこともある。選出できたことと、古い担当者の外部書き込みを防げることは別で、必要ならフェンシングも組み合わせるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「リーダー選出」は「代表を選び、任期で新旧を区別する」と押さえておこう!
📖 おまけ:英語の意味
「leader election」 = リーダーの選出
💬 leader electionは「リーダーの選出」という意味の表現だよ。

参考資料

← 用語集にもどる