コンテンツへスキップ
uencoder

Two-Phase Commit

2 相コミット(2PC)はノードをまたぐアトミックなトランザクション確定プロトコルである。コーディネータがまずすべての参加者にコミット可否を尋ね、その後コミットか中断を決定する。

目的

分散トランザクションの原子性を実現し、そのブロッキングとコーディネータ単一障害点の問題を理解する。

メカニズム

フェーズ 1(prepare):コーディネータが prepare を送り、参加者は WAL を書いて yes/no で応答する。フェーズ 2(commit/abort):全員 yes ならコミット、そうでなければ中断する。コーディネータがクラッシュすると参加者はブロックされる(不確定)。

ユースケース

  • 分散トランザクションの設計
  • ノード間のアトミックコミット
  • XA プロトコル

関連ツール

References