IPA過去問ドリル

平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

テクノロジ/データベース

分散データベースシステムにおいて,複数のデータベースを更新する場合に用いられる2相コミットの処理手順として,適切なものはどれか。

出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

正解:イ

解説

2相コミットでは,主サイト(コーディネータ)が第1相(準備フェーズ)で各データベースサイトに対してコミットの準備ができているかどうかを問い合わせ,全てのサイトからコミット可能であるという応答を受け取って初めて,第2相(コミットフェーズ)で実際にコミットを発行します。

選択肢ごとの解説

  • 誤り。2相コミットの準備フェーズでは,各データベースサイトはコミット準備ができているかどうかにかかわらず,必ず何らかの応答(コミット可又は不可)を主サイトに返す必要があり,「準備ができていない場合だけ応答する」という記述は誤りです。
  • 正しい。主サイトは,まず各データベースサイトに準備(コミット可能かどうか)を確認する第1相を経て,全サイトがコミット可能であることを確認した後に,第2相としてコミットを発行します。
  • 誤り。準備の確認を経ずにコミットを発行し,失敗時に再度コミットを発行するという方式では,そもそも更新できない状態のサイトが存在する場合に整合性のとれた処理ができず,2相コミットの準備フェーズの役割を果たしていません。
  • 誤り。2相コミットの第1相は,各サイトの資源をロックすることそのものではなく,各サイトにコミットの可否を確認することが本質です。ロック獲得の成否だけでコミットを発行するという記述は,コミット可否の確認という準備フェーズの内容を反映していません。
データベーススペシャリストの過去問を演習モードで解く