Cassandra一致性问题

时间:2016-09-01 10:47:26

标签: database cassandra spark-cassandra-connector cassandra-cli

我们有3个Node Cassandra集群,复制数为3。一段时间后,Cassandra(1节点)停机了2天。

现在我们无法从Cassandra集群中读取数据

有些时候我们不经常

引起: com.datastax.driver.core.exceptions.ReadFailureException:在一致性ONE的读取查询期间Cassandra失败(需要1个响应,但只有0个副本响应,1个失败)     at com.datastax.driver.core.exceptions.ReadFailureException.copy(ReadFailureException.java:95)     at com.datastax.driver.core.Responses $ Error.asException(Responses.java:128)     at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:179)     在com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:184)     在com.datastax.driver.core.RequestHandler.access $ 2500(RequestHandler.java:43)     在com.datastax.driver.core.RequestHandler $ SpeculativeExecution.setFinalResult(RequestHandler.java:798)

我们已经解雇了节点> nodetool repair

我们如何检查所有数据是否复制了所有节点?什么应该是读/写的一致性级别? 。目前的一致性水平是默认的(一)。

是否需要更改架构级别。

是否需要任何行政评论?

1 个答案:

答案 0 :(得分:0)

我认为将写入一致性设置为all。通过这种方式,所有节点都会确认它们收到了写请求并将读取设置为1,这样协调器节点将始终使用最新数据进行响应。正如您提到的节点工具修复一样,在节点发生故障时特别方便它。

除此之外,我建议您检查日志,因为这是一个失败,你可能会在那里找到一些东西。