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

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

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

我在插入过程中注意到一个奇怪的问题,值没有保留在几列中,尽管我相当有信心它在插入之前具有值。

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

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

Cassandra 版本:2.1.8

Datastax cassandra-driver-core:3.1.0

最佳答案

在行级别,此答案中对并发保证进行了详细描述。

Cassandra row level isolation

就你的问题而言。首先检查它是否真的是删除突变的 Cassandra

nodetool tpstats

如果您看到突变丢失,则可能是您正在运行动力不足的设置,您只需添加更多硬件来解决您面临的问题即可。

从你的问题中我无法得知更多信息。作为预防措施,请进入您的代码并检查您是否每次都实际上创建了一个新的绑定(bind)语句,并且您没有重用创建的绑定(bind)语句实例。有一次,客户遇到了这样的问题:插入件在神秘的情况下丢失了,就是这样。希望这对您有帮助,如果没有,请提供一些您拥有的代码。

关于cassandra - cassandra 是否保证写入期间的行级一致性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41950061/

相关文章:

range - 如何在 cassandra 中使用 timeuuid 名称

apache-spark - 使用 datastax 连接器连接到 cassandra

apache-spark - datastax - 无法在 Spark 提交上连接到 DSE 资源管理器

Python cassandra 驱动程序-SSL : WRONG_VERSION_NUMBER

java - Cassandra .setFetchSize() on 语句不被接受

php - 数据库结构和查询分层数据和数据树

java - 使用 datastax java 驱动程序连接到本地 cassandra 节点?

JAVA 代码将信号量与 Cassandra 结合使用来限制executeAsync 写入以消除 NoHostAvailableException 错误

cassandra - 将 Cassandra 快照移动到不同的磁盘/服务器/数据中心