トランザクション処理(全58問中15問目)

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,すべてのサイトが確定可能である場合,更新処理を確定する方式はどれか。

出典:平成29年春期 問28

  • 2相コミット
  • 排他制御
  • ロールバック
  • ロールフォワード
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
2相コミット(Two Phase Commit)は、トランザクションのコミットを次の2つの段階に分けて行うことで、分散データベース環境でのトランザクションの原子性・一貫性を保証する仕組みです。
第1フェーズ
他のサイトに更新可能かどうかを確認する
第2フェーズ
全サイトからの合意が得られた場合に更新を確定する
具体的には、コミットの調整を行う1つのノードを「調停者(主サイト)」、ネットワーク上の他のノードを「参加者(従サイト)」として、次の手順でコミットが行われます。

[第1相(投票層)]
  1. 主サイトはネットワーク上の全ての従サイトにコミットの可否を問い合わせる。
  2. 全ての従サイトは主サイトにコミットの可否を応答する。
[第2相(決定相)]
  1. 全ての従サイトからコミットの合意を得られた場合は、全ての従サイトにコミットの実行要求を発行する。コミットの停止を応答した従サイトがあった場合、またはタイムアウトとなった場合は、全ての従サイトにロールバックの実行要求を発行する。
  2. 全ての従サイトは、コミット(またはロールバック)の完了とともに主サイトに処理完了のメッセージを送る。
  3. 主サイトが、全ての従サイトからの処理完了メッセージを受け取り、トランザクションの完了となる。
28.png
  • 正しい。
  • 排他制御は、トランザクションの整合性を保つために1つのタスクがトランザクションを実行している間は、その処理が終わるまで他のタスクからのトランザクション要求を待機させる方法です。
  • ロールバックは、トランザクションの途中、プログラムのバグなどでアプリケーションが強制終了した場合に、更新前ログを用いてデータベースをトランザクション開始直前の状態に戻す処理です。
  • ロールフォワードは、更新後ログを用いて今まで処理したトランザクションを再現し、システム障害直前までデータベース情報を復帰させる処理です。

この問題の出題歴


Pagetop