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