可预测的Cassandra行删除

时间:2013-07-16 11:13:12

标签: cassandra disk tombstone

我们在1.2.5 Cassandra集群上有一个繁重的工作流程。由于磁盘空间有限,我们必须偶尔删除旧数据。当可用磁盘空间量下降到某个级别时,将开始此删除。我们已经了解了tombstones的作用,即当gc_grace超时到期并且正在进行轻微压缩时它们会被删除。所以我们设置了“耐心延迟”,当它到期时,我们可以再次检查磁盘上的可用空间。

但我们需要一个更可预测的删除方案,因为我们不能依赖“轻微的压缩可能会在某一天运行”。这似乎不太具体,所以我们不知道何时应该再次检查磁盘上的可用空间。也许你可以提供一些想法。

1 个答案:

答案 0 :(得分:0)

这可能是水平压实的一个很好的用例 - 如果你的插入率保持不变,删除过期的墓碑所需的时间将大致保持不变。

或者,使用大小分层压缩(默认值),您可以使用nodetool compact运行完整压缩。这将删除所有早于gc_grace的逻辑删除。

但是,这会将您的所有数据重写为一个大的SSTable,因此需要的时间与您的总数据大小成正比。您还需要使用不到一半的磁盘空间才能完成后续压缩。