IPA過去問ドリル

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

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

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

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

正解:エ

解説

2相コミットプロトコルでは,まず主サイト(コーディネータ)が各データベースサイトにコミット準備要求(プリペア要求)を発行し,各サイトはコミットの準備ができたかどうかを応答します(第1相:コミット可否の問合せ)。全てのサイトからコミット可能である旨の応答を得られた場合に限り,主サイトは第2相として各サイトにコミットを指示します。

選択肢ごとの解説

  • 誤り。コミット準備要求に対しては,準備ができている場合もできていない場合も,各データベースサイトは応答を返す必要があります。「準備ができていない場合だけ応答を返す」というのは2相コミットの手順として不適切です。
  • 誤り。コミットが失敗した場合に単純に再度コミットを発行するだけでは,事前にコミット可否を確認する第1相の手順が欠けており,2相コミットの正しい手順ではありません。
  • 誤り。ロックの成功だけをもってコミットを発行するのは,各サイトでコミットが実際に可能かどうかの確認(第1相の問合せ)を経ておらず,2相コミットの手順とは異なります。
  • 正しい。主サイトはまず各データベースサイトにコミットが可能であるかどうかを確認する第1相を経て,全サイトが可能であることを確認した後にコミットを指示する第2相を実行するのが2相コミットの正しい処理手順です。
データベーススペシャリストの過去問を演習モードで解く