目前我正在为我的项目评估Aerospike。我要求简单的密钥/值存储具有很强的一致性(在任何情况下都不会发生值版本冲突),并且对于不适合RAM的数据大小,最大化的持久性(数据丢失极其有害)。 Aerospike似乎是最合适的选择之一。我唯一担心的是,是否真的支持强一致性。
根据Aerospike白皮书https://www.aerospike.com/docs/architecture/assets/AerospikeACIDSupport.pdf不支持CP模式:
要 使Aerospike能够在更多领域中使用,我们计划为其添加配置 除了现在支持的AP模式之外,还在CP模式下运行集群
同时,Aeospike提供了不同的一致性保证http://www.aerospike.com/docs/architecture/consistency.html,但不清楚是否write.commit_level = all会使不一致变得不可能,因为它更多的是耐久性而不是一致性。
在单个DC /区域部署中,有没有办法在任何情况下(例如副本故障,集群分区,网络延迟等)使用Aerospike集群而没有价值冲突?在这种情况下配置应该如何?
答案 0 :(得分:3)
CP模式是我们现在正在积极努力的事情。当你说'强一致性'时你是什么意思?现在我们有冲突解决政策,这样在分裂的大脑中,记录的产生或TTL(生存时间)可用于决定哪条记录“赢得”冲突。
答案 1 :(得分:1)
最新的Aerospike版本(Ver 4.x +)具有CP模式-称为强一致性模式-由Jepsen评估。 (请参见http://jepsen.io)