コンテンツへスキップ
uencoder

Three-Phase Commit

3 相コミット(3PC)は 2PC に PreCommit フェーズを追加し、コーディネータのクラッシュによるブロッキングを解消する。

目的

ノンブロッキングなアトミックコミットプロトコルと、その追加のメッセージオーバーヘッドを理解する。

メカニズム

CanCommit → PreCommit → DoCommit の順に進む。PreCommit フェーズで参加者は過半数がコミットに同意したことを知り、コーディネータがクラッシュしてもタイムアウト後に自力で決定(コミット)できる。同期ネットワークの仮定が必要である。

ユースケース

  • ノンブロッキングなコミット
  • 分散システムの耐障害性
  • コーディネータ障害からの復旧

関連ツール

References