首页 > 解决方案 > Aerospike 给出较旧值但未更新值时的罕见情况

问题描述

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

更新值和读取该值之间的平均时间是 10 秒,其中这些问题出现了。所以有人可以帮我弄清楚问题出在哪里,它是在设置中还是在代码中。

标签: javaaerospike

解决方案


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


推荐阅读