cassandra在写入期间是否保证行级一致性?

时间:2017-01-31 05:10:31

标签: cassandra datastax datastax-java-driver cassandra-2.1

据我所知,cassandra表中的一行是一组键值对(对应于每一列)

我在插入过程中发现一个奇怪的问题,值不会在几列中保留,但我相信它在插入之前有值。

如果我们稍后重试,它会偶尔发生并成功。我们怀疑某种竞争条件或数据库连接丢失等。

是否有可能只有一部分键被保存在一行cassandra表中? cassandra在保存期间是否保证全部或全部(行级一致性)

Cassandra版本:2.1.8

Datastax cassandra-driver-core:3.1.0

2 个答案:

答案 0 :(得分:1)

在行级别上,并行保证在这个答案中有很多描述。

Cassandra row level isolation

就你的问题而言。首先检查它是否真的是带有突变的cassandra

nodetool tpstats

如果你看到掉落的突变,那么你可能正在运行动力不足的设置,而你只需要为你面临的问题投入更多的硬件。

我可以告诉您的问题并没有更多。作为预防措施,请进入您的代码并检查您是否每次都在创建新的绑定语句,并且您没有重用创建的绑定语句实例。一旦客户遇到这个问题,插件就会在神秘的情况下丢失,就是这样。希望这对你有所帮助,如果没有,请给你一些代码。

答案 1 :(得分:0)

Cassandra中存在读写一致性级别。

看起来您正在使用一致性级别1,因此您的读/写不一致。尝试使用仲裁进行读取和写入,并查看问题是否已解决。

如果这没有帮助,请提供示例查询,群集大小,rf因子。

相关问题