Comparing Transaction Isolation Levels in MySQL and MariaDB Through Automated Hermitage Testing
By
zdw
Solid neighbourhood-bakery energy. Trustworthy and warm.
Summary
This article discusses transaction isolation levels (Read Uncommitted, Read Committed, Repeatable Read, Serializable) in MySQL and MariaDB, comparing how they handle transaction anomalies like Read Skew and Lost Updates. The author notes that the SQL standard (including the 2023 version) remains ambiguous and allows inconsistent behavior. The article uses the concept of "Automating Hermitage" to explore differences in how MySQL and MariaDB implement transaction isolation, starting with an example of Dirty Writes.
Key quotes
· 3 pulledTransaction isolation levels (e.g. Read Uncommitted, Read Committed, Repeatable Read, Serializable) in the official SQL standard are defined in terms of transaction anomalies like Read Skew, Lost Updates, etc.
But the SQL standard itself is ambiguous (yes, even the latest 2023 version) and allows some silly behavior.
Let's motivate this entire article by looking at the Dirty Writes.
You might also wanna read
How StarRocks' Cost-Based Optimizer Enables High-Performance Joins in Distributed Systems
This technical deep dive explores how StarRocks, a distributed database system, achieves high-performance joins through its cost-based optim
SQLite's Testing Methodology: How 590 Times More Test Code Ensures Reliability
The article details SQLite's comprehensive testing methodology, revealing that the database library has approximately 590 times more test co
The Limitations of German Strings in Database Encoding Systems
The article discusses the implementation and limitations of German strings (StringViews) in database systems, particularly within the Rust A
Three Years In: A Senior Engineer's Reflection on AI's Impact on the Software Development Role
A senior engineer reflects on the long-term sustainability of AI tools in software development, three years into deep organizational adoptio
Three Years In: A Senior Engineer's Reflection on AI's Impact on the Software Development Role
A senior engineer reflects on the long-term sustainability of AI tools in software development, three years into deep organizational adoptio
Bijou64: A variable-length integer encoding that's both correct and accidentally fast
This article describes the development of bijou64, a variable-length integer (varint) encoding created for the Subduction CRDT sync protocol
