我最近降低了CQL表的gc_grace_seconds。我正在运行LeveledCompactionStrategy。我可以从SSTable中强制清除旧墓碑吗?

最佳答案

TL; DR

您的墓碑将通过压实位自行消失,以确保您正在维修中,否则它们可能会从死角中恢复过来。

http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dml_about_deletes_c.html

添加更多详细信息:

在以下两种情况下,无法立即删除逻辑删除:

1)gc_grace_seconds已过期

2)它们满足逻辑删除压缩子属性中配置的要求

我需要通过删除逻辑墓碑来释放磁盘,如何快速执行此操作?

1)进行维修以确保您的墓碑一致

2)减少表的gc_grace_seconds(alter table statement

3)配置您的compaction sub properties来加快逻辑删除的速度:

减小tombstone_compaction_interval并减小tombstone_threshold,或者将unchecked_tombstone_compaction设置为true可以忽略这两个条件,并且仅基于gc宽限期进行收集。

工作正常吗?

您可以在nodetool cfstats中以及使用在工具目录sstablemetadata <sstable filenames>中找到的sstable metatdata实用程序,查看有关墓碑的统计信息。

10-06 04:18