IPA公式正解:エ 主サイトは,コミットが可能であることを各データベースサイトに確認した後,コミットを発行する。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【エ】です。2相コミット(Two-Phase Commit)プロトコルは、第1相(準備相)で主サイト(調整者)が全参加サイトにコミット準備が可能か問い合わせて確認し、全サイトからコミット可の応答が得られた場合にのみ、第2相(コミット相)でコミット指示を発行します。
【詳細解説】■ 本問の核心・解法のポイント
2相コミット(2PC: Two-Phase Commit)は、ネットワークで接続された複数の分散データベースノード間でトランザクションの原子性(Atomicity)を保証するためのプロトコルです。
主サイト(コーディネータ/調整者)と従属サイト(コホート/参加者)の間で、以下の2つのフェーズ(相)に分けて処理を行います。
1. 第1相(準備相 / Prepare Phase):
主サイトが全参加サイトに対してコミット準備要求(PREPARE)を送信します。各参加サイトは、コミットが可能であればログを書き出して「コミット可(OK)」を、不可能な場合は「コミット不可(NO)」を主サイトに応答します。
2. 第2相(コミット相 / Commit Phase):
全参加サイトから「コミット可」の応答を受け取った場合のみ、主サイトは全サイトへ「コミット(GLOBAL COMMIT)」を指示します。1つでも「不可」またはタイムアウトがあれば、全サイトに「ロールバック(GLOBAL ABORT)」を指示します。
・各選択肢の徹底解説:
・ア:準備相において、参加サイトは準備ができた場合(OK)もできていない場合(NO)も必ず応答を返す必要があります。
・イ:2相コミットでは、いきなりコミットを発行することはなく、事前に可否を確認します。また失敗時に安易に再コミットを発行するのではなく、ロールバックを行います。
・ウ:これは2相ロッキング(2PL)と混同した記述であり、分散トランザクションのコミットプロトコルである2相コミットの手順ではありません。
・【選択肢エ★】:主サイトが全サイトにコミット可能かを確認(第1相)した上で、コミットを発行(第2相)するという2相コミットの本質を正しく説明しています。
よって正解はエです。