平成31年度 春期 午前Ⅱ 問15
トランザクション処理
2相コミットの処理手順
分散データベースシステムにおいて,複数のデータベースサイトを更新する場合に用いられる2相コミットの処理手順のうち,適切なものはどれか。
- ア主サイトが各データベースサイトにコミット準備要求を発行した場合,各データベースサイトは,準備ができていない場合だけ応答を返す。
- イ主サイトは,各データベースサイトにコミットを発行し,コミットが失敗した場合には,再度コミットを発行する。
- ウ主サイトは,各データベースサイトのロックに成功した後,コミットを発行し,各データベースサイトをアンロックする。
- エ主サイトは,コミットが可能であることを各データベースサイトに確認した後,コミットを発行する。
答えと解説を見る
✓ これが正解エ主サイトは,コミットが可能であることを各データベースサイトに確認した後,コミットを発行する。
解説
全サイトでコミットできることを確かめてから、コミットを発行します。
2相コミットは、複数のサイトの更新を、全部確定するか全部取り消すかのどちらかにそろえるための手順です。第1相で、主サイトは各サイトにコミットの準備を要求し、各サイトはコミットできるかどうかを返します。第2相で、全サイトから可能という応答がそろえばコミットを、一つでも不可があればロールバックを指示します。主サイトが、コミットが可能であることを各サイトに確認してからコミットを発行するという流れは、この二つの相をそのまま述べています。準備の確認と確定の指示の二段に分かれていることを押さえると、手順の取り違えを見抜けます。
ほかの選択肢はなぜ違うのか
- ア主サイトが各データベースサイトにコミット…:第1相では、各サイトは準備ができた場合もできない場合も主サイトに応答を返します。準備ができていないときだけ応答する形では、応答がないのが準備完了なのか障害なのかを、主サイトが区別できません。
- イ主サイトは,各データベースサイトにコミッ…:準備の確認をせずにいきなりコミットを発行しているので、一部のサイトだけが確定して他は失敗する状態が起こり得ます。失敗したら再発行するという手順では、全サイトの結果をそろえる保証になりません。
- ウ主サイトは,各データベースサイトのロック…:ロックを掛けてからコミットしアンロックするという流れには、各サイトがコミットできるかを確かめる段階が含まれていません。ロックとアンロックの順序を述べただけで、2相コミットの二つの相を表していません。
この問題の用語
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問15
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)