关键问题的Datastax不匹配

时间:2016-09-29 08:57:40

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

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

DEBUG [ReadRepairStage:8] 2016-09-27 14:11:58,781 ReadCallback.java:234 - 摘要不匹配: org.apache.cassandra.service.DigestMismatchException:关键的装饰关键不匹配(5503649670304043860,343233)(45cf191fb10d902dc052aa76f7f0b54d vs 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] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_77] at 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]

1 个答案:

答案 0 :(得分:1)

我从你发布的错误的含义来回答这个问题。但是,我不认为这将是你的问题的原因。如果没有看到集群中节点的所有日志,很难说清楚。

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

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

如果您看到太多的修复修复并且您有多个DC,则可能需要考虑将read_repair_chance设置为较低并增加dclocal_read_repair_chance,默认情况下,它们分别为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

相关问题