Jepsen Analysis: MariaDB Galera Cluster 12.1.2 Fails "No Lost Transactions" Guarantee
By
aphyr
Hand-rolled, kettle-boiled, baked to perfection. Worth every minute at the bakery.
Summary
Jepsen's independent analysis reveals that MariaDB Galera Cluster 12.1.2 fails to deliver on its "no lost transactions" guarantee. The research identifies two specific scenarios where transactions are lost: 1) under recommended configuration settings where data isn't flushed to disk before acknowledgement, allowing committed transactions to be lost during rapid node crashes, and 2) occasional transaction loss during process crashes and network partitions. Even without faults, the system allows P4 (Lost Update) violations and exhibits Stale Read issues, failing to satisfy its claimed isolation level between Serializable and Repeatable Read.
Key quotes
· 4 pulledWhile MariaDB claims Galera ensures 'no lost transactions', it loses transactions in at least two scenarios.
First, under the recommended configuration settings it does not flush data to disk before acknowledgement; committed transactions can be lost when nodes crash in quick succession.
Second, it occasionally loses committed transactions with process crashes and network partitions.
Even without faults, MariaDB Galera Cluster allows P4 (Lost Update), and therefore fails to satisfy its claimed isolation level 'between Serializable and Repeatable Read'.
You might also wanna read
Postgres-Backed Durable Workflow Execution: An Alternative to External Orchestration Systems
This article explains the concept of durable workflow execution using Postgres as the backing database, as implemented by the DBOS system. I
dbos.dev·3d agoPostgres-Backed Durable Workflow Execution: An Alternative to External Orchestration Systems
This article explains the concept of durable workflow execution using Postgres as the backing database, as implemented by the DBOS system. I
dbos.dev·3d agoComparing Transaction Isolation Levels in MySQL and MariaDB Through Automated Hermitage Testing
This article discusses transaction isolation levels (Read Uncommitted, Read Committed, Repeatable Read, Serializable) in MySQL and MariaDB,
Columnar Storage as Database Normalization: Understanding the Relational Foundation
The article explains that columnar storage in databases is essentially a form of normalization within the relational model, not a completely
buttondown.com·1mo agoPgQue: Zero-Bloat Postgres Queue System Using Pure SQL and pg_cron
PgQue is a zero-bloat Postgres queue system that revives the PgQ architecture originally designed at Skype for handling messaging for hundre
Rethinking Database Usage: When File-Based Storage Might Be Better Than Traditional Databases
The article challenges conventional wisdom about database usage, arguing that databases are essentially just files on disk and that for many
