0

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

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

4

1 回答 1

0

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

或者,使用大小分层压缩(默认),您可以使用nodetool compact. 这将删除所有早于 gc_grace 的墓碑。

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

于 2013-07-18T14:27:28.793 回答