【发布时间】:2016-07-27 07:22:40
【问题描述】:
我是 Apache Cassandra 的新手,所以请原谅我提出愚蠢的问题。 我最近在分布于 4 个 DC 的 8 个节点上部署了一个 Cassandra 集群。
这是配置:
Strategy: NetworkTopologyStrategy
Replication factor: 8
Write consistency: ALL
Read consistency: ONE
现在我并不关心所有的写一致性导致的 PUT 延迟。但是在测试时,当我在 PUT 之后立即尝试“获取”某些内容时,请求有时会失败并显示“未找到”。
如果我正确解释了 datastax 文档,则 ONE 的一致性级别应该返回一些内容,因为写入一致性设置为 ALL。也就是说,当我执行 PUT 时,所有节点都应该在发回响应之前确认,之后的 GET 应该返回一些东西,即使它是过时的数据。
如果我遗漏了什么或者我严重误解了文档,请告诉我。
提前致谢。
【问题讨论】:
-
理论上你是对的,Cassandra 应该在使用 ONE 查询时返回一个值。能否提供插入和读取数据的代码?
-
您确定数据确实存在于您的数据库中吗?因为如果有任何节点写入失败,CL ALL 将无法写入。 (即使只有一个节点无法写入,整个写入也会失败,因为它是原子的) PS。对不起我的英语不好:)
标签: cassandra spring-data datastax nosql