Apache Cassandra hat sich von einer NoSQL-Datenbank mit Eventual Consistency zu einem vollständig ACID-konformen System in der kommenden Version 6.0 entwickelt. Dieser Weg umfasst die 2013 eingeführten atomaren Batches, später im selben Jahr die Compare-and-Swap-Operationen von Paxos für eine einzelne Partition und nun streng serialisierbare partitionsübergreifende Transaktionen mit Accord in der noch unveröffentlichten Cassandra 6.
Dieser Artikel untersucht jede transaktionale Option mithilfe eines Drei-Knoten-Clusters mit einer Buchhaltungs-Workload. Das Setup umfasst die Installation von Java 21, den Build von Cassandra aus dem Branch cassandra-6.0 und die Konfiguration von drei Knoten mit eindeutigen IP-Adressen und JMX-Ports.
Der Buchhaltungstest verwendet zwei Konten mit Startguthaben von jeweils 1.000, wobei gleichzeitige Schreiber Überweisungen zwischen den Konten erzeugen. Die Workload testet vier transaktionale Methoden: keine (Standard), BATCH-Updates, Lightweight Transactions (LWT) und Accord-Updates (ACID). Getestet werden Read-Modify-Write- und Blind-Write-Varianten sowie Szenarien für Überweisungen zwischen Partitionen und innerhalb derselben Partition.
Ein dritter Thread liest kontinuierlich und validiert, dass die Summe der Guthaben während aller parallelen Operationen bei 2.000 bleibt. Der Test überprüft außerdem, ob die endgültigen Kontostände bei Read-Modify-Write-Workloads den erwarteten deterministischen Werten entsprechen.
Schlüsselentitäten: Unternehmen: Apache, Cassandra | Personen: Phil Eaton
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing