Apache Cassandra节点返回不同的数据。

huangapple go评论58阅读模式
英文:

Apache Cassandra node return different data

问题

我们有一个由5个节点组成的Apache Cassandra集群,复制因子为2。
所有健康监控命令,如'nodetool status'等,都没有显示错误。
但是节点实际上并不同步。
在不同节点上发出相同请求可能会返回不同的值。
而且在同一节点上发出相同请求可能会返回不同的值。

问题 - 除了'nodetool repair'之外,是否有一种方法来强制节点同步?

是否有一种方法可以在运行中的生产集群上使所有数据完全复制到所有节点上(增加复制因子)?

英文:

We have 5 nodes Apache Cassandra cluster with replication factor 2.
All health monitoring commands like 'nodetool status' or so show no error.
But nodes not really in sync.
Same request on different nodes may return different values.
More over same request on same node might return different values
Apache Cassandra节点返回不同的数据。

Question - is there a way except 'nodetool repair' to force synchronizaiton over nodes?

Is there a way to make all data fully replicated on over all nodes (increase replication factor) on running production cluster?

答案1

得分: 2

你需要在运行查询之前,在CQLSH(以及很可能在应用程序上)设置CONSISTENCY LOCAL_QUORUM;。另外,复制因子为2并不高效,因为2的RF/2+1等于2。因此,即使数据的一个副本处于离线状态,您的应用程序也会面临停机时间。最好一开始就将键空间级别的RF(复制因子)调整为3,这样当您使用LOCAL_QUORUM一致性级别时,可以容忍1个副本的故障。

此外,请确保您的集群中的修复操作正在正确运行。

英文:

You need to set CONSISTENCY LOCAL_QUORUM; on the CQLSH (& on your application most likely) prior to running your query. Also, a replication factor of 2 is just not efficient as RF/2+1 of 2 is 2. So, even if one of the replica holding the data is down, your application will face downtime. It is better to adjust the RF (at the keyspace level) to be 3 to begin with as you can tolerate 1 replica failure when you're dealing with LOCAL_QUORUM consistency level.

Also, ensure your repairs are running correctly in this cluster.

huangapple
  • 本文由 发表于 2023年6月15日 18:55:25
  • 转载请务必保留本文链接:https://go.coder-hub.com/76481779.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定