【问题标题】:Datastax Mismatch for Key Issue关键问题的 Datastax 不匹配
【发布时间】:2017-02-07 12:20:54
【问题描述】:

我们当前的设置包含带有 3 个节点集群的 DSE 5.0.2 版本。目前我们面临着负载过重和节点故障的问题。Debug.log 详细信息如下:

调试 [ReadRepairStage:8] 2016-09-27 14:11:58,781 ReadCallback.java:234 - 摘要不匹配: org.apache.cassandra.service.DigestMismatchException:键 DecoratedKey 不匹配(5503649670304043860、343233)(45cf191fb10d902dc052aa76f7f0b54d 与 ffa7b4097e7fa05de794371092c51c68) 在 org.apache.cassandra.service.DigestResolver.resolve(DigestResolver.java:85) ~[cassandra-all-3.0.7.1159.jar:3.0.7.1159] 在 org.apache.cassandra.service.ReadCallback$AsyncRepairRunner.run(ReadCallback.java:225) ~[cassandra-all-3.0.7.1159.jar:3.0.7.1159] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] 在 java.lang.Thread.run(Thread.java:745) [na:1.8.0_77]

【问题讨论】:

    标签: datastax datastax-enterprise datastax-java-driver


    【解决方案1】:

    我从您发布的错误的含义的角度来回答这个问题。但是,我不认为仅此一项会成为您问题的原因。如果不查看集群中节点的所有日志,就很难判断。

    您发布的Digest mismatch实际上来自读取修复。这个文档链接从高层次上解释了它(注意与文档所说的相反,读取修复也可能在其他 CL 处被阻塞):

    https://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsRepairNodesReadRepair.html

    如果您看到过多的读取修复并且您有多个 DC,您可能需要考虑将 read_repair_chance 设置为较低并增加 dclocal_read_repair_chance,默认情况下,iirc 分别为 0.1 和 0,因此并不总是最佳的。

    我已经看到这些导致读取超时,因为摘要不匹配会导致阻塞读取修复。如果您认为这会导致问题,您最好的选择是在 cqlsh 中使用跟踪运行查询,或者使用概率跟踪记录查询,您可以在回顾中查看跟踪

    文档链接:

    https://docs.datastax.com/en/cql/3.3/cql/cql_reference/tracing_r.html

    https://docs.datastax.com/en/cassandra/3.0/cassandra/tools/toolsSetTraceProbability.html

    【讨论】:

      猜你喜欢
      • 2011-06-07
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 2018-01-26
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多