【问题标题】:Scylla, datastax-java-driver integration problemScylla,datastax-java-driver集成问题
【发布时间】:2019-09-28 09:09:45
【问题描述】:

我有三个节点的 syclla 集群。我有具有 3 个复制因子的键空间。我使用 datastax-java-driver 3.6.0 版本和 Scylla 3.0.0 版本。当我尝试读取一致性级别 = LOCAL_QUORUM 的数据时,我收到以下错误消息,我认为这是不可能的。至于如果我使用 LOCAL_QUORUM 2 个节点就足够了 3 个复制因子。

是错误还是我遗漏了什么?

com.datastax.driver.core.exceptions.ReadTimeoutException: Cassandra 在读取查询期间以一致性 LOCAL_QUORUM 超时(需要 3 个响应,但只有 2 个副本响应) com.datastax.driver.core.exceptions.ReadTimeoutException:Cassandra 在读取查询期间以一致性 LOCAL_QUORUM 超时(需要 3 个响应,但只有 2 个副本响应) com.datastax.driver.core.exceptions.ReadTimeoutException: Cassandra 在读取查询期间以一致性 LOCAL_QUORUM 超时(需要 3 个响应,但只有 2 个副本响应)

【问题讨论】:

  • 包括您的键空间的复制设置(最好的模式中的确切 CREATE KEYSPACE 行)
  • @ChrisLohfink CREATE KEYSPACE logsourcev2 WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '3'}。正如我所说,我有 3 个节点测试集群。我从未在我的 Cassandra 集群中看到需要 3 个响应的消息。它只发生在我的 Scylla 集群中。

标签: cassandra datastax-java-driver scylla


【解决方案1】:

这里发生的情况是 Scylla 选择进行概率读取修复并在达到 CL 之前检测到不匹配。此时,它开始在所有三个副本之间进行修复,并且无法从所有副本中读取(由于过载或一个节点在操作进行时崩溃/重新启动)。您可以禁用概率读取修复来避免它。

【讨论】:

    猜你喜欢
    • 2020-10-20
    • 2015-08-05
    • 2023-04-03
    • 2017-06-16
    • 2016-02-26
    • 2016-05-10
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多