【发布时间】:2014-04-29 18:19:40
【问题描述】:
如果我删除一行(创建一个 tombstone),并在gc_grace_seconds 内运行一个主要的压缩,人们会期望 tombstone 至少在gc_grace_seconds 过去之前仍然存在吗?
【问题讨论】:
如果我删除一行(创建一个 tombstone),并在gc_grace_seconds 内运行一个主要的压缩,人们会期望 tombstone 至少在gc_grace_seconds 过去之前仍然存在吗?
【问题讨论】:
是的,墓碑预计会存活 gc_grace_seconds。原因是如果一个节点在您删除该行的时间点关闭,则删除必须有机会稍后传播到该节点。当节点重新联机并且您运行 nodetool repair 时,它可以获取删除。如果您没有在 gc_grace_seconds 内运行修复,那么您删除的记录可能会死而复生。
如果您正在运行单节点集群,那么您可以安全地将 gc_grace_seconds 设置为 0。因为没有其他节点可能会丢失删除。
在Cassandra operations、repair 和 gc_grace_seconds 上查看此页面。
【讨论】: