UNDOとREDOってなんだよ!と思っている初学者向けに書き記します。
概要
UNDOログとは、実行した処理を取り消し、処理前に戻る(ロールバック)の用途に使う。
REDOログとは、実行した処理を記録しておき、障害発生時に障害発生前まで処理をやり直す(ロールフォワード)用途に使う。
何が違うの?
UNDOはある時点までの状態を「丸っとバックアップ」しています。つまり容量がでかいです。頻繁にバックアップを取っているとパフォーマンスの悪化につながります。
しかしREDOはコマンド処理の文のみを記録しているので容量は食いません。
二つを組み合わせると、パフォーマンスの悪化を抑えつつパフォーマンス障害発生直前までの状態を復旧させることができます。
例えば、毎日0:00にバックアップを取っています。
20:00に障害が起きた場合、もしUNDOしかなければ0:00-19:59の間の更新は消えてしまいますよね?
だからといって頻繁に丸ごとバックアップを取るなんて効率が悪すぎると思いませんか?
そこで役に立つのがREDOです。
0:00からの更新処理の、使用したコマンドのみを記録していたとしましょう。
20:00に障害が発生したとしても、0:00までのUNDO+REDOログに記録していたコマンドを実行しなおせば
19:59までの内容を低コストで復元できますよね。なんて賢い仕組みなんでしょうか!
あのJ〇J〇のスタンドに例えると
キラーク〇ーン 第3の爆弾 パイツァダ〇トとか、マ〇ダムとかが結構似てると思いませんか?
UNDOは障害が発生したら障害発生前に戻せるんですよ、もはやパイツァダ〇トですよねこんなの。
そしてREDOで同じ運命を繰り返すことができるんですよ。とはいえ、障害という運命の直前でやめてほしいんですけどね。
マ〇ダムも結構似てますね、時間も度される前のこと覚えてますし、同じ動作を再現することもできるでしょう。
以上でこの記事は終わりですが、こんな感じで知ってることと結びつけるのもおすすめですよ。
漫画とかで見る強い能力って現実では思わぬところで使わてるんだなぁっていう感じで!
読んでいただきありがとうございました。