Blogmark

Hermitage (GitHub) — Test Suite for DB Isolation Levels

via jbranchaud@gmail.com

https://github.com/ept/hermitage
Databases Isolation Levels

Isolation looks a little different in every database system. This is a test suite for many popular databases to demonstrate what the mean by each of their isolation levels.

Isolation is the I in ACID, and it describes how a database protects an application from concurrency problems (race conditions). If you read a traditional database theory textbook, it will tell you that isolation is supposed to mean serializability, i.e. you can pretend that transactions are executed one after another, and concurrency problems do not happen. However, if you look at the implementations of isolation in practice, you see that serializability is rarely used, and some popular databases (such as Oracle) don't even implement it.