Three-Phase Commit
3 相コミット(3PC)は 2PC に PreCommit フェーズを追加し、コーディネータのクラッシュによるブロッキングを解消する。
目的
ノンブロッキングなアトミックコミットプロトコルと、その追加のメッセージオーバーヘッドを理解する。
メカニズム
CanCommit → PreCommit → DoCommit の順に進む。PreCommit フェーズで参加者は過半数がコミットに同意したことを知り、コーディネータがクラッシュしてもタイムアウト後に自力で決定(コミット)できる。同期ネットワークの仮定が必要である。
ユースケース
- ノンブロッキングなコミット
- 分散システムの耐障害性
- コーディネータ障害からの復旧