令和2年秋期試験問題 午前Ⅱ 問21
問21解説へ
DBMSがトランザクションのコミット処理を完了するタイミングはどれか。
- アプリケーションの更新命令完了時点
- チェックポイント処理完了時点
- ログバッファへのコミット情報書込み完了時点
- ログファイルへのコミット情報書込み完了時点
正解 エ問題へ
分野 :テクノロジ系
中分類:データベース
小分類:トランザクション処理
中分類:データベース
小分類:トランザクション処理
広告
解説
トランザクションが正常終了したときはCOMMITコマンドによってトランザクションを確定させますが、COMMITを発行したからといって即座に補助記憶に更新内容が反映されるわけではありません。これはデータベースの更新が主記憶を介して①~⑤の手順で行われるからです。
このような理由からトランザクションは、コミット文が実行された時点ではなくWALプロトコルに従って更新後ログが物理的記憶装置に書き込まれた瞬間にコミットしたとみなします。一旦ログが安定記憶上(二重化されたディスクなど)に書き込まれたならば、たとえコミット文に実行以後に障害が発生しても、そのトランザクションを再現することが可能になるためです。
したがって正解は「エ」です。
- トランザクション開始
- データベースから主記憶にデータを読み込む
- 主記憶上のデータを更新する
- コミット~トランザクション終了
- 書出しのタイミング(チェックポイント)ごとに、それまでに主記憶上で更新されたデータをまとめて補助記憶に書き込む
このような理由からトランザクションは、コミット文が実行された時点ではなくWALプロトコルに従って更新後ログが物理的記憶装置に書き込まれた瞬間にコミットしたとみなします。一旦ログが安定記憶上(二重化されたディスクなど)に書き込まれたならば、たとえコミット文に実行以後に障害が発生しても、そのトランザクションを再現することが可能になるためです。
したがって正解は「エ」です。
- WALプロトコル
- トランザクションがログを安定記憶に書き出すタイミングについての取り決めで、"Write Ahead Log"(まずログを書け)という意味のとおり、実際の操作に先行してログの書き出すことを求めるもの
広告