2015-01-08 108 views
0

我们在Cassandra数据中看到一个有趣的现象。我们正在运行Apache Cassandra 2.0.10和CQL3。我们专门使用CQL。Cassandra的数据似乎已经回到了时间

最近(过去1个月)的表格变化似乎已经丢失。我们怀疑这可能与做一些删除操作然后重新启动有关。

有没有人看到这个?

回答

1

您正在运行每周修复(并且如果使用自定义gc_grace_seconds,在宽限期内至少进行一次修复)?如果一个节点关闭了3个小时,你是否在重新加入后进行修复?你可能看到僵尸数据。删除创建墓碑,通过压缩收集这些墓碑。你的墓碑可能没有传播到下层节点,如果它们比交接时间长,当它们出现时,他们不知道删除发生了。因此,他们将获得他们的数据,并将这些数据传播给副本,副本对这些“新”数据一无所知。最后写得胜,僵尸就活着。

请务必定期进行修理,如果节点停机时间超过3小时,请在加入后进行修理。

+0

节点从来没有停机超过几分钟。但是,我们刚刚了解到某些代码在CL = 1处读取/写入,而在CL = QUORUM处则有一些代码正在读取/写入。我可以看到CL = 1客户端读取陈旧数据并重新提交为新写入的问题,但我需要验证我们的CL = 1的代码是否正在执行此操作。 –

相关问题