【发布时间】:2019-10-23 23:47:12
【问题描述】:
我有 4 节点 2-dc cassandra 集群,我遇到了无法解释的行为。
dc1 - 节点1、节点2、节点3。
dc2 - 节点 4。
在我的数据库中,我的 columnFamily1 具有复制因子 dc1:2 dc2:1。列族包含 28 列,其中 11 列是主键。我从 dc2 查询 node4,它包含 100% 的数据。所以,问题是:
'Select * from columnFamily' 返回 5103 条记录。
'Select (any column from primaryKey) from columnFamily' 返回 733 条记录。
如果我将 columnFamily 导出到 CSV,然后导入到截断表,问题就会消失。谁能解释一下,怎么会这样?有没有不截断 columnFamily 的解决方案?
【问题讨论】:
-
您对插入和查询使用什么一致性级别?
-
我使用一致性级别一,查询拥有100%数据的节点。
-
除非您运行修复,否则无法知道使用 CL.ONE 插入后哪些节点有数据。来自状态的
owns只是描述了它对环的责任,而不是它是否真的获得了数据。如果您使用 CL.QUORUM(非本地)进行读写,它将按预期工作。