

Cassandraのtombstone_thresholdの最小値を教えて頂けないでしょうか。  
マニュアル等を見ても判断できなく困っています。0.01までは実際に試して  
有効と確認できました。  
因みにCassandra3.0でコンパクションストラテジは、DTCSです。

何卒宜しくお願い致します。


CC BY-SA 4.0
2020-05-19T08:27:19.177
66769
2020-05-20T14:48:40.090
38178
question
cassandra
Cassandra tombstone_thresholdの最小値


`tombstone_threshold` は Java の float なので、理論的には 2^-149 まで設定できます。

<https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java#L107>

実際には、 `tombstone_threshold`
は以下のメソッドの中で参照されている通り、SSTableのTombstoneの割合に関する統計情報の値と比較し、SSTable単独でのコンパクションを行うかを決定します。

<https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java#L368>

Cassandraが実際にTombstonesを削除可能になるのは、テーブルに設定された gc_grace_seconds
の時間を過ぎた後になります(デフォルトで10日間)。  
上のコード内で取得している統計情報

[code]

    sstable.getEstimatedDroppableTombstoneRatio(gcBefore);
    
[/code]

は、SSTable内に、gc_grace_seconds を過ぎたTombstoneが何割あるかを計算します。

(ちなみに、DTCSはCassandra 3.0.8で非推奨となりました。TimeWindowCompactionStrategy
(TWCS)への移行も検討してみてはいかがでしょうか。)

<https://docs.datastax.com/en/cassandra-
oss/3.0/cassandra/dml/dmlHowDataMaintain.html>


CC BY-SA 4.0
2020-05-20T14:48:40.090
66823
2020-05-20T14:48:40.090
4157
66769
answer