【问题标题】:Does cassandra guarantee row level consistency during write?cassandra 是否保证写入期间的行级一致性?
【发布时间】:2017-06-16 10:41:59
【问题描述】:

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

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

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

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

Cassandra 版本:2.1.8

Datastax cassandra-driver-core : 3.1.0

【问题讨论】:

  • 插入查询和表定义会很有帮助

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


【解决方案1】:

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

看起来您使用的是一致性级别 1,因此您的读/写不一致。尝试对读写都使用 quorum,看看问题是否解决。

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

【讨论】:

    【解决方案2】:

    在行级别上,此答案中几乎描述了并发保证。

    Cassandra row level isolation

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

    nodetool tpstats
    

    如果您看到突变下降,则可能是您运行的设置动力不足,您只需将更多硬件用于您面临的问题。

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

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      相关资源
      最近更新 更多