【正解の解説】
3相コミットメント
みんなで大きなプロジェクトを進めるとき、全員の賛同を得る前に「よし、次は最終確認だね」というワンクッション(プリコミット状態)を挟むようなものです。2相コミットメントだとリーダーが倒れた時にみんなが作業を止めて待ちぼうけになってしまいますが、3相なら「途中で止まったらどう動くべきか」の共通認識があるため、全員が立ち往生せずに安全に行動できるようになります。
【その他の選択肢の解説】
2相コミットメント
問題文にある「3相」のベースとなった一世代前の方式です。レストランの注文で、調理場全員の返事を待つ段階で親方(コーディネーター)が突然いなくなったら、新人がどう動いていいか分からず全員が直立不動で待ち続けるしかない、という致命的な弱点があります。この「待ちぼうけ状態(ブロッキング)」の欠点を解決するために、本問の3相コミットメントが生み出されました。
分散ロック制御
トランザクションのコミット合意手順の話ではなく、一つのトイレの個室に複数の人が同時に駆け込まないように「使用中」の鍵をかける排他制御の技術です。データの整合性を守るという目的は似ていますが、障害時のブロッキング解消を目的としたコミットプロトコルとはアプローチが全く異なるため、試験のひっかけとしてよく登場します。
タイムスタンプ順序方式
整理券を配るように、データにアクセスした順番のタイムスタンプを記録して処理の衝突を防ぐ仕組みです。コーディネーターと各ノード間で合意形成を行うコミットプロトコルの話とはレイヤーが異なり、データの直列化を実現するための別のアプローチであるため、問題文の「合意形成に中間状態を導入する」という説明とは一致しません。