Skip to content
Latchkey

二相コミット(Two-Phase Commit)とは?

Two-phase commit は、コーディネーターがまず各参加者に prepare を依頼して commit できるかどうかを投票させ、次のフェーズで投票に基づいて全員に commit または全員に abort を指示する分散プロトコルです。参加者が同じ結果に到達することを保証します。トレードオフは、参加者が待機中に lock を保持しなければならず、コーディネーターの障害が彼らをブロックさせ得ることです。

なぜ重要か

Two-phase commit は別々のデータベースやサービスをまたぐアトミシティを提供しますが、ブロッキングな性質とコーディネーターへの依存により重くなります。多くのシステムは、そのコストを避けるために saga や結果整合性を好みます。

関連ガイド