IT用語集 › データベース › 2PC

2PC

データベース Svenska → 更新: 2026-10-20

Two-Phase Commit(2相コミット)。古典的な分散コミットプロトコル。第1フェーズでコーディネーターが全参加者にPREPAREを送り、各参加者がYes/Noで答える。第2フェーズで、全員Yesなら全員にCOMMIT、1つでもNoなら全員にABORTを送る。

複数の参加者にまたがる原子性を保証する。最大の問題はブロッキング型であること。コーディネーターがPREPAREの後、COMMITの前に落ちると、参加者はロックを握ったまま動けなくなる。復旧にはコーディネーターの復旧と複雑なプロトコルが必要だ。性能面では、コミットごとにネットワークの往復が2回、各フェーズでfsyncが発生する。現代の代替には、3PC(ブロッキングは解消するが可用性が下がる)、Paxos/Raft(合意ベース)、Saga(原子性は諦めて補償で戻す)がある。分散DB(Spanner、CockroachDB)は内部で最適化した2PCを使っている。

← 用語集に戻る