Cassandra SStables在DTC中进行小兼容时不会被删除

Cassandra SStables在DTC中进行小兼容时不会被删除,cassandra,garbage-collection,cassandra-2.1,Cassandra,Garbage Collection,Cassandra 2.1,我在Cassandra 2.1.12中遇到了这个磁盘空间问题。即使在TTL之后,sstables也会持久保存在磁盘上。我在下面给出了列族的定义,它是一个以日期作为分区键的时间序列数据 定义: AND bloom_filter_fp_chance = 0.01 AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment = '' AND compaction = {'max_sstable_

我在
Cassandra 2.1.12
中遇到了这个磁盘空间问题。即使在TTL之后,sstables也会持久保存在磁盘上。我在下面给出了列族的定义,它是一个以日期作为分区键的时间序列数据

定义:

AND bloom_filter_fp_chance = 0.01
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment = ''
    AND compaction = {'max_sstable_age_days': '92', 'base_time_seconds': '3600', 'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'}
    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 8640000
    AND gc_grace_seconds = 3600
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99.0PERCENTILE';

您的GC宽限期为100天,但92天将使SSTable符合删除条件。这意味着您的SSTable在考虑压缩时仍可能包含墓碑。您是否尝试反转这些值?Cassandra不会删除墓碑(TTLE条目会被“墓碑化”),直到墓碑达到
gc\u grace\u秒
之后。如果希望压缩立即清除已删除的数据,则需要将该值设置为0。如果您运行多个具有数据冗余的节点,那么这不是您想要的。您正在冒着条目被重新激活的风险。@Ralf我为错误的值道歉,并更正了问题。实际上
default\u time\u to\u live=8640000
gc\u grace\u seconds=3600
。正如我在
default\u time\u to\u live
之后读到的,列将被标记为墓碑,并且在表上的
gc\u grace\u seconds
配置对于给定墓碑已过之后,它应该被删除。但事实并非如此。你能告诉我现在有什么问题吗。