REDOログファイルは何故必要か?(2)

遅くなったけど前回の続き。REDOログファイルは何故必要か?(1)

まずディスクの仕組みを整理。

ディスクのアクセスにかかる時間は大きくこの2つに分けられる。

  • シークタイム
  • データ転送時間

このうち非常に遅いのがシークタイム。シークタイムとは


ハードディスクやMOなどの記憶装置で、ヘッドがディスク上の目的の読み出し(または記録)位置に到達するまでの所要時間。
シークタイムは高価なディスクでもそれほど変わらないらしい。
仕組みは詳しくないが、ヘッドが動くという物理的な世界の話なので
他のさまざまな処理と比べ遅いのはなんとなくわかる。

ここから本題。

なぜデータファイルに書き込まずREDOログファイルに書き込むのか?
それは、データファイルと違いREDOログファイルはデータをただ追記すればいいから。
追記するだけならヘッドの位置はほぼ動かさなくていい。ここで大幅にレスポンスが短縮できる。
データファイルは元々あるデータも考慮しないといけないので、ただ追記というわけにはいかない。
一方REDOログファイルは、言えばただのログ。障害発生時にリカバリーさえできればよい。
と、まあここまで書いたけどディスクのこととかあんまり詳しくないので半分予想。