令和4年度 秋期 応用情報技術者試験 午前 問29

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

チェックポイントとシステム障害発生のタイミングを示すトランザクションの時系列図
図の説明テキスト

DBMSのチェックポイントとシステム障害発生のタイミングを示すトランザクションの時系列図。
横軸は右方向へ「時間」が進む。
2本の垂直な破線があり、左側が「チェックポイント」、右側が「システム障害発生」を表す。
各トランザクション(T1〜T5)の実行期間が実線と矢印で示され、継続中の場合は右側が破線の矢印になっている。

  • T1: チェックポイント前に開始し、チェックポイント前にコミット。
  • T2: チェックポイント前に開始し、システム障害発生時点でも実行中(右側に破線矢印)。
  • T3: チェックポイント後に開始し、システム障害発生時点でも実行中(右側に破線矢印)。
  • T4: チェックポイント前に開始し、チェックポイント後かつシステム障害発生前にコミット。
  • T5: チェックポイント後に開始し、システム障害発生前にコミット。
解答・解説

正解: ウ. T4とT5

前進復帰(ロールフォワード)とは

DBMSにおけるチェックポイントとは、メモリ上の更新内容をディスク上のデータベースに書き出すタイミングのことです。システム障害が発生した際、障害発生時点でコミット(処理の確定)が完了していたものの、データベースに書き出されていなかったトランザクションに対しては、更新ログを用いて結果を再現する前進復帰(ロールフォワード)を行います。一方で、障害発生時に実行中だったトランザクションは、処理を取り消す後退復帰(ロールバック)の対象となります。

正解の根拠

図の各トランザクションの状況を確認します。

  • T1: チェックポイント前に開始し、チェックポイント前にコミットしています。更新内容はすでにデータベースに書き出されているため、回復処理は不要です。
  • T2: チェックポイント前に開始し、システム障害発生時点でも実行中です。コミットされていないため、後退復帰(ロールバック)の対象となります。
  • T3: チェックポイント後に開始し、システム障害発生時点でも実行中です。コミットされていないため、後退復帰(ロールバック)の対象となります。
  • T4: チェックポイント前に開始し、チェックポイント後かつシステム障害発生前にコミットしています。
  • T5: チェックポイント後に開始し、システム障害発生前にコミットしています。

前進復帰(ロールフォワード)による回復が必要なのは、システム障害発生前にコミットが完了しており、かつまだデータベースへの書き出しが保証されていない(チェックポイント以降にコミットした)トランザクションです。したがって、該当するのはT4とT5です。

各選択肢の解説

  • ア: T1はチェックポイント前にコミットが完了しており、すでにデータベースに書き出されているため、前進復帰の対象ではありません。
  • イ: T2とT3はシステム障害発生時点で実行中であるため、前進復帰ではなく後退復帰(ロールバック)の対象となります。
  • ウ: T4とT5はどちらもシステム障害発生前にコミットが完了しており、前進復帰によって障害回復を行う対象となります。よって正解です。
  • エ: T5は前進復帰の対象ですが、同じく前進復帰の対象であるT4が漏れているため誤りです。

Spineチーム