Two-Phase Commit
2 相コミット(2PC)はノードをまたぐアトミックなトランザクション確定プロトコルである。コーディネータがまずすべての参加者にコミット可否を尋ね、その後コミットか中断を決定する。
目的
分散トランザクションの原子性を実現し、そのブロッキングとコーディネータ単一障害点の問題を理解する。
メカニズム
フェーズ 1(prepare):コーディネータが prepare を送り、参加者は WAL を書いて yes/no で応答する。フェーズ 2(commit/abort):全員 yes ならコミット、そうでなければ中断する。コーディネータがクラッシュすると参加者はブロックされる(不確定)。
ユースケース
- 分散トランザクションの設計
- ノード間のアトミックコミット
- XA プロトコル