ロールバック【rollback】後退復帰
概要

ロールバックは特にデータベース管理システム(DBMS)の「トランザクション処理」において重要な概念である。トランザクションとは、関連する複数の処理をひとまとまりの作業単位として実行する仕組みであり、その一連の処理が正常に完了することを「コミット」(commit)という。
トランザクションが途中で中断されると、一部の変更だけがデータに反映され、整合性が失われる恐れがある。例えば、銀行振込では、引き落としと入金が一体の処理として扱われるが、途中で障害が発生すると片方だけが反映される事態が生じうる。これを防ぐため、システムはトランザクション開始前の状態をログなどに記録しておき、コミットが行われる前に問題が発生した場合は、実行済みの変更をすべて取り消して開始前のデータに戻す。これがトランザクション処理におけるロールバックである。
ロールバックと対になる概念として「ロールフォワード」(roll forward)がある。障害発生時点ですでにコミット済みのトランザクションが存在する場合、ロールバックで単純に巻き戻すと正当な更新まで失われてしまう。そこで、直近のチェックポイント(定期的に保存された整合性の取れた状態)のデータを書き戻したうえで、トランザクションログに記録された処理を順に再適用し、コミット時の状態まで復元する。実際の障害復旧では、ロールバックとロールフォワードを組み合わせてデータの整合性を保つことが多い。
ロールバックの概念はデータベースに留まらず、ソフトウェアの更新やシステム運用の分野でも用いられる。新バージョンの適用後に不具合や性能低下が生じた場合に、更新前のバージョンや設定に差し戻す操作もロールバックと呼ばれる。クラウド環境や仮想化基盤ではスナップショット機能を利用して短時間でロールバックを実施できる場合がある。
関連用語
他の辞典等による「ロールバック」の解説 (外部サイト)
- ウィキペディア「ロールバック」
- Insider's Computer Dictionary「ロールバック」
- ITパスポート用語辞典「ロールバック」
- JavaA2Z「ロールバック」
- Techopedia (英語)「Rollback」
- PC Magazine (英語)「rollback」