ロールバック

ロールバック(rollback)とは、処理中に問題が発生した場合、前の状態に戻して取り消すことを意味する。

ロールバックは「巻き戻し」という意味を持つ言葉である。後進復帰とも。プログラムなどでは単純に前の状態に戻すことを指すが、一般には、以前の良い状態であった時に戻すという意味で使われることが多いようだ。

ロールバックは、トランザクションによる内容更新で障害が発生した時、その処理を取り消す流れを指す言葉でもある。反対にトランザクションによって内容更新を不変のものに確定することをコミットという。通常、トランザクションが終了した場合に、コミットするといった表現が使われる。

データベースでは、更新する前に記録した、時系列の変更履歴情報などを取り出して照合し、更新する前の状態に巻き戻すことをロールバックと言う。何らかの障害が発生した場合に使われる仕組みである。

ロールバックとトランザクションの関係

トランザクションは、ひとまとまりの処理のことを言う。例えば、コンピュータで銀行振り込みをした場合、自分の口座からの出金と相手方への入金が同時に発生する。出金だけが行われて、入金されないといった事態が発生すれば、出金したお金は理論上、消えることになる。こういった事態を防ぐためにロールバックという概念が使われる。どちらかが失敗すれば、両方とも失敗しなければ、矛盾が発生するため、どちらかが失敗すれば、前の状態にロールバックするという仕組みが必要なのである。

ロールバックの意味を簡潔に説明すると

前の状態に戻すこと。