当Aerospike给出较旧的值而不是更新值时,可以看到罕见的情况

问题描述 投票:0回答:2

在分布式环境中,每天有200万个请求,然后我们首先尝试读取数据,然后在密钥的基础上更新aerospike中的数据。但在极少数情况下,当我们读取数据时,它会读取较旧的值。

更新值和读取该值之间的平均时间是10秒,其中出现这些问题。那么有人可以帮我找出它在设置或代码中的问题。

java aerospike
2个回答
4
投票

CAP定理在节点故障或节点进出集群时很重要。即使在AP模式下,读取陈旧的读取也会在稳定的群集中累加。其次,Aerospike不是最终的一致设计 - 它在稳定的集群中立即保持一致,因为它不是基于共识的设计。因此,由于网络问题以及节点进出或网络事件的某种组合导致此问题或者代码存在某些问题,因此群集不稳定。很难通过最终观察声明来诊断。那么1)群集是否通过这些事件稳定? 2)什么是Aerospike版本?版 - 社区还是企业? 3)簇大小? 4)命名空间配置? 5)复制因子? 6)代码片段/数据模型/你在代码中究竟做了什么?如果写更新失败,您如何在代码中处理它?


2
投票

您使用的是什么版本的Aerospike?此外,你可以在CAP theorem时只实现2个方面。我的猜测是,目前,你的空中飞行设置是针对Eventual Consistency

从版本4.0开始,您可以选择AP(可用和分区容错)以及CP(一致和分区容错)模式。

关于空气一致性here的更多细节。

© www.soinside.com 2019 - 2024. All rights reserved.