平成29年春期試験問題 午前問28
問28解説へ
分散データベースシステムにおいて,一連のトランザクション処理を行う複数サイトに更新処理が確定可能かどうかを問い合わせ,すべてのサイトが確定可能である場合,更新処理を確定する方式はどれか。
- 2相コミット
- 排他制御
- ロールバック
- ロールフォワード
正解 ア問題へ
広告
解説
2相コミット(Two Phase Commit)は、トランザクションのコミットを次の2つの段階に分けて行うことで、分散データベース環境でのトランザクションの原子性・一貫性を保証する仕組みです。
[第1相(投票層)]
- 第1フェーズ
- 他のサイトに更新可能かどうかを確認する
- 第2フェーズ
- 全サイトからの合意が得られた場合に更新を確定する
[第1相(投票層)]
- 主サイトはネットワーク上の全ての従サイトにコミットの可否を問い合わせる。
- 全ての従サイトは主サイトにコミットの可否を応答する。
- 全ての従サイトからコミットの合意を得られた場合は、全ての従サイトにコミットの実行要求を発行する。コミットの停止を応答した従サイトがあった場合、またはタイムアウトとなった場合は、全ての従サイトにロールバックの実行要求を発行する。
- 全ての従サイトは、コミット(またはロールバック)の完了とともに主サイトに処理完了のメッセージを送る。
- 主サイトが、全ての従サイトからの処理完了メッセージを受け取り、トランザクションの完了となる。
- 正しい。
- 排他制御は、トランザクションの整合性を保つために1つのタスクがトランザクションを実行している間は、その処理が終わるまで他のタスクからのトランザクション要求を待機させる方法です。
- ロールバックは、トランザクションの途中、プログラムのバグなどでアプリケーションが強制終了した場合に、更新前ログを用いてデータベースをトランザクション開始直前の状態に戻す処理です。
- ロールフォワードは、更新後ログを用いて今まで処理したトランザクションを再現し、システム障害直前までデータベース情報を復帰させる処理です。
広告