1

我们最近遇到了几个数据消失问题。我们的数据是日志数据。它有复合键,(id,requestdate)。

我们的程序不断地向 C* 中插入新记录。没有删除操作。数据已成功写入,并且能够选择数据。但过了一段时间,一些 id 的数据消失了。

我们能想到的一个原因是,我们使用 kundera cassandra 驱动程序,它的默认写入一致性级别设置为 ONE。系统日志中没有错误。

你认为这个问题是由写consistency_level引起的吗?谢谢。

编辑:我们有一段时间没有运行节点修复。这会导致数据消失问题吗?

4

2 回答 2

2

如果您在写入之后直接进行读取并且您使用其他副本之一作为协调器,那么它可能还没有检索到数据。如果您在读取中需要这种一致性,请使用 CL.QUORUM 进行读取/写入。可以安全地假设这个窗口在约 500 毫秒左右通过。见最终的一致性!=有希望的一致性

于 2015-01-18T16:50:54.003 回答
1

ONE 的一致性,表示一旦在一个副本节点上写入成功,就会返回一个状态。数据不应该从 cassandra 中消失,除非写入本身从未成功。

如果因为down节点导致插入不成功。在这种情况下,请查看提示切换。增加提示切换的时间。

你的复制因子是多少?也许将其增加到更大的数量以防止由于节点关闭而导致服务丢失?

于 2015-01-18T15:22:39.300 回答