gpt4 book ai didi

java - Cassandra 写入后读取与 LOCAL_QUORUM 不一致

转载 作者:行者123 更新时间:2023-12-01 18:31:32 26 4
gpt4 key购买 nike

我们正在运行一个 cassandra 集群,其本地数据中心有 3 个节点,(我相信)复制因子为 3。远程数据中心存在,但在我们的查询中未使用。

更准确地说,我们使用 Java 库:

  • org.apache.cassandra:cassandra-allcom.datastax.cassandra:cassandra-driver-core v3.1.1 结合用于数据库交互
  • info.archinnov:achilles-core v5.1.3 用于代码源注释处理 - 这是指定 LOCAL_QUORUM 一致性级别的地方

最近,我们遇到了与新行插入的写后读一致性相关的问题。

使用LOCAL_QUORUM一致性插入行。成功插入后几毫秒,通过具有 LOCAL_QUORUM 一致性的分区键进行的行选择有时(很少)会失败。找不到行。

根据我对 LOCAL_QUORUM 一致性的天真的理解,如果使用 LOCAL_QUORUM 一致性(具有相同的数据中心)写入然后读取该行,则应该“始终”找到并读取该行。但事实并非如此。

阅读 Cassandra 文档后,我想知道时钟同步问题是否可以解释该问题。示例:没有行的节点可能有一个提前的时钟,因此“无行”可能被视为最新的值。

节点时钟同步问题是否确实可以解释行插入的写后读不一致问题(尽管有 LOCAL_QUORUM 和单个本地数据中心)?如果不是,如何解释这样的一致性问题?

最佳答案

您可以执行以下命令来验证有多少节点拥有 key 数据。

./nodetool getendpoints keyspacename tablename 'keyname'

关于java - Cassandra 写入后读取与 LOCAL_QUORUM 不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60156698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com