データベース
2相コミットプロトコル(Two-Phase Commit)の動作に関する説明として適切なものはどれか。
ア.2相コミットではコーディネータがすべての参加サイトと同時にデータを書き込むため、ネットワーク分断が発生しても自動的に整合性が保たれる。
イ.2相コミットの第1フェーズ(Commit Phase)ではすでに全サイトにデータが書き込まれ、第2フェーズ(Prepare Phase)で確認を行う逆の順序で動作する。
ウ.2相コミットはシングルサイトのデータベースにのみ適用可能であり、複数サイトにまたがる分散トランザクションには使用できない。
エ.コーディネータが第1フェーズで全参加サイトに準備完了(Prepare)を確認し、全員OKなら第2フェーズでCommit、一つでもNGならAbortを指示することでトランザクションの原子性を保証する。正解
解説
2相コミットは「全員の賛成が必要な合議制」のようなもの。議長(コーディネータ)が「賛成しますか?(Prepare)」と全員に聞き、全員が手を挙げたら「では決定(Commit)」、一人でも反対なら「全員取消(Abort)」。全員一致でなければ決定しない厳格な議決方式です。
なぜ エ が正解か
2相コミットプロトコルの流れ:第1フェーズ(Prepare Phase):コーディネータが全参加サイトに「コミット可能か?」を確認。各サイトはYES/NOを返す。第2フェーズ(Commit/Abort Phase):全員YESならCommit指示、一つでもNOまたはタイムアウトならAbort指示。これにより「全部コミットするか全部ロールバックするか」のATOMICITYが保証されます。エが正解です。
出典: AI生成問題(学習用)