【にふぇーずこみっと】
2フェーズコミット とは?
💡 「全員OK?」→「じゃあ全員確定!」の2段階合意
📌 このページのポイント
2フェーズコミットって何?普通のコミットと何が違うの?
たしかに!片方だけ成功したら大変だね。どうやって両方そろえるの?
まず第1フェーズで「コーディネーター」という司会役が全参加者に「コミットできる準備はできた?」って聞くんだ。全員が「OK!」と返事したら、第2フェーズで「じゃあ全員確定して!」と指示を出すよ
もし誰かが「NG」って言ったらどうなるの?
1人でも「NG」があれば、全員にロールバック命令を出して全部なかったことにするよ。結婚式の「異議のある方はいませんか?」に似てるね。1人でも異議があれば中止だよ
わかりやすい!でも弱点とかないの?
コーディネーターがダウンすると全員が「待ち状態」のまま止まっちゃう問題があるんだ。これを「ブロッキング問題」って呼ぶよ。だから改良版の3フェーズコミット(3PC)や、最近ではSagaパターンのような代替手法も使われるよ
マイクロサービスでも使われるのかな?
まとめ:ざっくりこれだけ覚えればOK!
「2フェーズコミット」って出てきたら「みんなに"準備OK?"って聞いてから一斉に確定する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Two-Phase Commit」 = 2段階確定
💬 文字通り2つの段階(Phase)を経てコミットするから2フェーズコミットだよ。略して2PCとも呼ばれるよ