我最近降低gc_grace_seconds
了 CQL 表。我正在跑步LeveledCompactionStrategy
。我可以从我的 SSTables 中强制清除旧墓碑吗?
问问题
16428 次
1 回答
14
TL;博士
您的墓碑将通过压实位自行消失,确保您正在运行修复,否则它们可能会死而复生。
http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dml_about_deletes_c.html
添加更多细节:
在以下两种情况下,墓碑都不能立即删除:
1) gc_grace_seconds 已过期
2) 它们满足 tombstone compaction 子属性中配置的要求
我需要通过使墓碑过期来释放磁盘,我该如何快速做到这一点?
1)运行修复以确保您的墓碑是一致的
2) 减少表的 gc_grace_seconds ( alter table 语句)
3) 配置您的压缩子属性以加快删除墓碑:
减少 tombstone_compaction_interval 并减少 tombstone_threshold,或将 unchecked_tombstone_compaction 设置为 true 以忽略这两个条件并纯粹基于 gc 宽限期进行收集。
它在工作吗?
nodetool cfstats
您可以使用您的工具目录中的 sstable metatdata 实用程序查看有关墓碑的统计信息sstablemetadata <sstable filenames>
。
于 2014-12-19T13:38:58.560 回答