トゥームストーン(データベース)
データをすぐに物理削除せず、キーが削除されたことを示すマーカー。追記専用や分散システムで、削除を正しく伝播させてから古いデータを最終的に片付けるために必要。
理由はこうだ。LSMツリーでは、不変のSSTableから「取り除く」ことができない。その代わりに、古い値を読み取り時に覆い隠すトゥームストーンを書き込む。分散システム(Cassandra)では、データを取り除く前にトゥームストーンを全ノードへレプリケートしなければならない。さもないと削除を受け損ねたノードが、死んだはずのデータを「復活」させてしまう(ゾンビ)。そのため、コンパクションがデータとトゥームストーンの両方を片付けるまでに猶予期間(gc_grace_seconds)が置かれる。問題は、トゥームストーンが多すぎると(たとえばキュー的な使い方で)読み取りが劇的に遅くなることで、Cassandraの典型的な落とし穴である。コンパクションやアンチエントロピーと関連する。