質問: Cassandraのtombstone_thresholdの最小値を教えて頂けないでしょうか。 マニュアル等を見ても判断できなく困っています。0.01までは実際に試して 有効と確認できました。 因みにCassandra3.0でコンパクションストラテジは、DTCSです。 何卒宜しくお願い致します。
回答: `tombstone_threshold` は Java の float なので、理論的には 2^-149 まで設定できます。 実際には、 `tombstone_threshold` は以下のメソッドの中で参照されている通り、SSTableのTombstoneの割合に関する統計情報の値と比較し、SSTable単独でのコンパクションを行うかを決定します。 Cassandraが実際にTombstonesを削除可能になるのは、テーブルに設定された gc_grace_seconds の時間を過ぎた後になります(デフォルトで10日間)。 上のコード内で取得している統計情報 ``` sstable.getEstimatedDroppableTombstoneRatio(gcBefore); ``` は、SSTable内に、gc_grace_seconds を過ぎたTombstoneが何割あるかを計算します。 (ちなみに、DTCSはCassandra 3.0.8で非推奨となりました。TimeWindowCompactionStrategy (TWCS)への移行も検討してみてはいかがでしょうか。)