【发布时间】:2020-11-16 11:06:10
【问题描述】:
将数据移动到新集群后,我发现一些数据不一致。
旧集群总共有 9 个节点,每个节点上都有 2+ TB 的数据。 新集群与旧集群具有相同的节点集,并且配置相同。
这是我按顺序执行的:
-
nodetool snapshot。 - 将该快照复制到目标
- 在目标集群上创建了一个新的键空间。
- 使用
sstableloader实用程序加载。 - 重新启动所有节点。
成功完成传输后,我运行了几个查询来比较(旧集群与新集群),发现新集群并不一致,但我看到的数据正确分布在每个节点上(nodetool status)。
相同的查询为某些分区返回不同的结果集,我第一次得到零行,第二次得到 100 行,200 行,最终它对于少数分区变得一致,并且记录计数与旧集群匹配。
新集群中很少有分区没有数据,而旧集群有这些分区的数据。
我尝试使用CONSISTENCY ALL 对cqlsh 运行查询,但问题仍然存在。
我是否错过了之前和之后需要考虑的任何重要步骤?
是否有任何程序可以找出问题的根本原因?
我目前正在运行 "nodetool repair" ,但我怀疑这是否可以解决,因为我尝试使用 Consistency ALL。
非常感谢您的帮助!
【问题讨论】:
标签: cassandra cassandra-3.0 cqlsh