我最近降低了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实用程序,查看有关墓碑的统计信息。