Apache Cassandra 已从一个最终一致性的 NoSQL 数据库演变为在即将发布的 6.0 版本中完全符合 ACID 的系统。这一历程包括 2013 年引入的原子批处理(atomic batches)、同年晚些时候推出的单分区 Paxos 比较并交换(compare-and-swap)操作,以及现在未发布的 Cassandra 6 中借助 Accord 实现的严格可串行化的跨分区事务。
本文使用一个三节点集群和会计工作负载来探索每种事务选项。环境搭建包括安装 Java 21、从 cassandra-6.0 分支构建 Cassandra,以及配置三个具有唯一 IP 地址和 JMX 端口的节点。
会计测试使用两个初始余额各为 1,000 的账户,并由并发写入者在账户之间产生转账。该工作负载测试四种事务方法:无(默认)、BATCH 更新、轻量级事务(LWT)和 Accord(ACID)更新。测试了读-改-写和盲写变体,以及跨分区和同分区转账场景。
第三个线程持续读取并验证余额总和在整个并发操作期间保持为 2,000。对于读-改-写工作负载,该测试还验证最终账户余额与预期的确定性值相匹配。
关键实体:公司:Apache、Cassandra | 人物:Phil Eaton
来源: Hacker News · 由HeadlinesBriefing整理摘要