我是Apache Cassandra的新手,所以请原谅我提出愚蠢的问题。 我最近在4个DC之间的8个节点上部署了一个Cassandra集群。
以下是配置:
Strategy: NetworkTopologyStrategy
Replication factor: 8
Write consistency: ALL
Read consistency: ONE
现在我不关心所有写入一致性造成的PUT延迟。但是在测试时,当我在PUT之后尝试“GET”时,请求有时会失败,说“找不到”。
如果我正确解释了datastax文档,那么ONE的一致性级别应该返回一些内容,因为写入一致性设置为ALL。也就是说,当我执行PUT时,所有节点都应该在发送响应之前确认,然后GET应该返回一些东西,即使它是陈旧的数据。
如果我遗失了某些内容或者我误解了文档,请告诉我。
提前致谢。
答案 0 :(得分:2)
你是正确的,用ALL写和用ONE读取相同的数据应该总是返回一个结果。您还可以使用以下公式:
(nodes_written + nodes_read)> replication_factor
计算读写一致性以保证一致性。
所以有几件事可能会导致这个问题: