1

目前我正在为我的项目评估 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 集群而不会发生值冲突?在这种情况下,配置应该如何?

4

2 回答 2

3

CP 模式是我们目前正在积极开展的工作。当您说“强一致性”时,您是什么意思?现在我们有冲突解决策略,这样在裂脑中,记录的生成或 TTL(生存时间)可以用来决定哪个记录“赢得”冲突。

于 2016-05-23T09:49:41.447 回答
1

最新的 Aerospike 版本(版本 4.x +)具有 CP 模式 - 称为强一致性模式 - 由 Jepsen 评估。(见http://jepsen.io

于 2018-10-08T20:03:53.117 回答