応用情報技術者試験 令和6年春 午前問27 解説付き過去問
問題
トランザクションTはチェックポイント後にコミットしたが、その後にシステム障害が発生した。
トランザクションTの更新内容をその終了直後の状態にするために用いられる復旧技法はどれか。
ここで、トランザクションはWALプロトコルに従い、チェックポイントの他に、トランザクションログを利用する。
正解
解説
トランザクション処理において、システム障害からの復旧を行う際には、トランザクションログと呼ばれる操作履歴をもとに、データベースの整合性を保つ処理が行われる。
本問では、トランザクションTが「チェックポイント後にコミット」された後、システム障害が発生した状況を前提としており、このような場合に必要なのは「ロールフォワード」による復旧である。
本問では、トランザクションTが「チェックポイント後にコミット」された後、システム障害が発生した状況を前提としており、このような場合に必要なのは「ロールフォワード」による復旧である。
- WALプロトコルとチェックポイント
WAL(Write Ahead Logging)プロトコルとは、「データの更新前に、まずその内容をログに書き込む」という仕組みであり、障害発生時にログを用いて復旧を可能にする。
チェックポイントは、ある時点までのトランザクションの状態を安定的に保存しておく処理であり、そこから先の処理はログによって復元される。 - ロールフォワードの仕組み
ロールフォワード(roll forward)は、チェックポイント以降に「コミットされたトランザクション」の更新内容を、トランザクションログを参照してデータベースに再適用することで、障害発生直前の一貫性ある状態に戻す技法である。
この技法により、トランザクションTのように「コミット済み」の更新内容が失われずに済む。 - 他の用語との違い
- 2相ロックは、同時実行制御のためのロック戦略であり、障害復旧とは直接関係しない。
- シャドウページは、データ更新の際に元のページを保持しておき、更新が完全に成功した場合にのみ切り替える方式。主に古いデータベースシステムなどで使われる。
- ロールバックは、未完了または異常終了したトランザクションの更新内容を取り消して整合性を保つ処理であり、本問のように「コミット済み」の内容には適用されない。