シャドウページング
計算機科学におけるシャドウページングとは、データベースシステムにおいて原子性と永続性(ACID特性のうちの2つ)を実現するテクニックのひとつである。
ここでのページは物理的なストレージ(通常はハードディスク)上の一単位を意味している。 1ページのサイズは通常1キロバイトから32キロバイト程度である。
シャドウページングはin-placeなページの更新が行えない場合に使用される。 あるページに変更を加える際には、まずシャドウページがアロケートされる。 アロケートされた直後の状態では、シャドウページはディスク上の他のページから参照されていないため、一貫性制約等の制限を考慮せずに自由に変更が行える。 ページの変更が完了し永続化可能な状態になったら、変更前のページを参照している箇所全てを新しいページを参照するように変更する。 このような手順で処理を行えば、新しいページは永続化可能な状態にならない限り他から参照されないため、アトミックな変更が可能となる。
更新対象のページを参照している箇所をさらにシャドウページングによって更新する場合、上記の処理が再帰的に実行されることになり、処理に膨大な時間がかかる。