我最近为CQL表降低了gc_grace_seconds
。 我正在运行 LeveledCompactionStrategy
。我能强制从我的SSTables中清除旧的tombstones吗?
我最近为CQL表降低了gc_grace_seconds
。 我正在运行 LeveledCompactionStrategy
。我能强制从我的SSTables中清除旧的tombstones吗?
通过压缩位,您的墓碑将自行消失,但请确保运行修复程序,否则它们可能会死灰复燃。
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)配置您的压缩子属性以加速墓碑的删除:
降低tombstone_compaction_interval和降低tombstone_threshold,或将unchecked_tombstone_compaction设置为true以忽略两个条件并基于gc grace进行收集。
您可以通过使用nodetool cfstats
和在tools目录中找到的sstable metadata实用程序sstablemetadata <sstable filenames>
来查看有关墓碑的统计信息。
nodetool garbagecollect
命令从Cassandra 3.10开始可用。该命令运行一系列较小的压缩操作,还检查重叠的sstables。它比nodetool compact
更消耗CPU和时间,但需要较少的可用磁盘空间。 - Boholder