7章ログ構造化ストレージ
会計士は消しゴムを使いません。さもないと刑務所行きになります。
――Pat Helland
会計士が記録を修正しなければならなくなったときには、既存の値を削除するのではなく、訂正した新しい記録を作成します。四半期報告書が公開されるときには、前の四半期の結果を修正する小さな変更が含まれることがあります。総計を導き出すには、すべての記録を1つずつ確認しながら小計を計算する必要があります[HELLAND15]。
同様に、イミュータブルなストレージ構造では、既存のファイルに変更を加えることはできません。テーブルは、一度書き込まれたら、二度と書き換えられません。その代わりに、新しいレコードが新しいファイルに追加されます。最終的な値を見つけ出すには、またはそれがないと結論付けるには、複数のファイルからレコードを再構築する必要があります。これとは反対に、ミュータブルなストレージ構造では、ディスク上のレコードをその場で上書きします。
イミュータブルなデータ構造は、関数型プログラミング言語で使用されることが多く、その安全性の高さから人気が高まっています。イミュータブルな構造は、一度作成されると変更されません。参照はすべて並行してアクセス可能であり、その整合性は、ストレージ構造を修正できないという事実によって保証されています。
概念上は、ストレージ構造内部でのデータの扱われ方と、その外部でのデータの扱われ方の間には、厳格な区別があります。ストレージ構造の内部では、イミュータブルなファイルは複数のコピーを保持でき、相対的に新しいコピーが古いコピーを上書きします。それに対して、ミュータブルなファイルには、一般的に最新の値のみが保持されます。イミュータブルなファイルはアクセスされたときに処理されて、冗長なコピーが調停させられ、最新のものがクライアントに戻されます。 ...
Get 詳説 データベース ―ストレージエンジンと分散データシステムの仕組み now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.