13

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

4

1 回答 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 回答