在* gc_grace_seconds过去之前,有没有办法让Cassandra安全地移除墓碑*?

时间:2014-10-28 18:56:23

标签: cassandra garbage-collection tombstone

我知道早期删除墓碑是危险的,因为它可能导致删除的数据被复活,但如果所有副本都已确认删除,则此类删除应该是安全的。例如,如果一个表具有复制因子3并且包含该密钥的所有3个节点都已确认它们具有适当的逻辑删除,则应该可以安全地执行删除逻辑删除的压缩,因为不存在数据的延迟副本

Cassandra可以安全地移除墓碑吗?

我宁愿将gc_grace_seconds设置为无穷大,依靠这种类型的墓碑安全压缩,而不是担心nodetool repairgc_grace_seconds的时间。

1 个答案:

答案 0 :(得分:2)

不,如果不更改gc_grace_seconds,就无法移除墓碑。

有些操作可以让所有3个副本都可以删除墓碑,删除它,然后再需要它。考虑需要将早期SSTable流回群集的情况。

这种类型的手动删除墓碑的性能会明显更差,因为您只是定期而不是不断地进行。您将不必要地阅读额外数据,并不断压缩应删除的墓碑。

我的建议是将你的gc_grace_seconds设置为合理的(10天没问题)并使用opscenter或cassandra-reaper安排修复。