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