Heartbeat - ノードの死活監視
ハートビート(heartbeat)は、ノードが「自分は生きている」という短い信号を一定間隔で送り続け、受け取る側がその途絶をもって障害と判断する仕組みです。ここでは、ノードが停止する故障だけを扱います。誤った値を返す故障(ビザンチン障害)の検知は、ハートビートの範囲外です。 ...
ハートビート(heartbeat)は、ノードが「自分は生きている」という短い信号を一定間隔で送り続け、受け取る側がその途絶をもって障害と判断する仕組みです。ここでは、ノードが停止する故障だけを扱います。誤った値を返す故障(ビザンチン障害)の検知は、ハートビートの範囲外です。 ...
Lease(リース)は、ある権利を期限付きで貸し出し、期限が過ぎたら自動的に失効させる仕組みです。貸す側は「これから 10 秒間、あなたがリーダーです」と伝え、借りた側は期限が来る前に更新を続けます。更新が途切れれば、誰の操作も無しに権利は消えます。 ...
WAL(Write-Ahead Log、書き込み先行ログ)は、状態を変更する前にその変更内容を追記専用のファイルへ書き、ディスクへ書き終えてから応答を返す仕組みです。再起動した時は、スナップショットやチェックポイント以降のログを読み直して同じ変更を適用し、停止する直前の状態を復元します。利用できるスナップショットが無ければ、ログの先頭から再生します。ここでは、1 台のサーバが状態を失わないための WAL から、ログを複製した時に現れる 2 つの位置までを扱います。 ...
Quorum(クォーラム、定足数)は、ある操作を成立させるために応答が必要なノードの最小数です。同じ値を複数のノードへ持たせる複製の構成では、全ノードの応答を待たず、この数だけ集まった時点で操作を確定させます。最も広く使われるのは過半数を要求する構成で、N 台のクラスタなら N / 2 + 1 台(小数点以下は切り捨て)の応答で成立します。ここでは、ノードが停止する故障とネットワークが分断される故障を扱い、誤った値を返す故障(ビザンチン障害)は対象外とします。 ...
Leader and Followers は、同じデータを複製して持つノードのうち 1 台を Leader に決め、更新を全て Leader が受け付けて残りの Follower へ配る構成です。更新の受け口が 1 台に絞られるため、同じデータへの更新の順序は Leader が決めた 1 つに定まります。ここでは、ノードが停止する故障とネットワークが分断される故障を扱い、誤った値を返す故障(ビザンチン障害)は対象外とします。 ...
2PC(Two-Phase Commit、2 相コミット)は、複数の DB にまたがる 1 つの更新について、関わった全員の最終的な判断が確定(commit)か中止(abort)のどちらか一方へ揃うようにする手順です。確定できるかを全員へ問い合わせる準備フェーズと、決めた結果を配る決定フェーズの 2 段階で進む事が名前の由来です。ここでは、参加するプロセスが停止する故障と通信の途絶を扱い、誤った値を返す故障(ビザンチン障害)は対象外とします。 ...