平成27年秋期試験問題 午前Ⅰ 問10

チェックポイントを取得するDBMSにおいて,図のような時間経過でシステム障害が発生した。前進復帰(ロールフォワード)によって障害回復できるすべてのトランザクションはどれか。

  • T1
  • T2 と T3
  • T4 と T5
  • T5
正解 問題へ
分野 :テクノロジ系
中分類:データベース
小分類:トランザクション処理
解説
ロールフォワード(前進復帰)は、データベースシステムに障害が起こったとき、トランザクションの更新後ログを使用することで過去に処理したトランザクションを再現し、システム障害の直前までデータベースの状態を回復させる処理です。

システム障害から復帰すると、データベースの状態はチェックポイント時点のデータに戻ります。トランザクションには、処理がすべて実行されるか・全く実行されないかのどちらか終了する性質(原子性)と、一旦正常終了したトランザクションの結果は、その後システムに障害が発生しても失われない性質(永続性)が要求されますから、復帰後はこの性質を満たすためにロールフォワードやロールバックが行われます。

図の5つのトランザクションは、復帰後の対処によって3つのグループに分かれます。
T1
チェックポイント前にコミットされているので、コミットの内容は復帰後のデータベースに反映されている。よって、何もしない。
T2、T3
トランザクション処理中に障害が起こったので、原子性に基づき、データベースをトランザクション開始前の状態に戻す。よって、ロールバックを行う。
T4、T5
チェックポイント後、障害発生前にコミットがあったので、永続性に基づき、失われたコミットの内容を復帰後のデータベースに反映させる。よって、ロールフォワードを行う。
以上より、前進復帰の対象となるのは「最後のチェックポイントからシステム障害発生までの間」にコミットされたトランザクションとなります。したがって正解は「T4とT5」です。

Pagetop