On the Complexity of Checking Mixed Isolation Levels for SQL Transactions
By: Ahmed Bouajjani, Constantin Enea, Enrique Román-Calvo
Potential Business Impact:
Checks if database rules keep data safe.
Concurrent accesses to databases are typically grouped in transactions which define units of work that should be isolated from other concurrent computations and resilient to failures. Modern databases provide different levels of isolation for transactions that correspond to different trade-offs between consistency and throughput. Quite often, an application can use transactions with different isolation levels at the same time. In this work, we investigate the problem of testing isolation level implementations in databases, i.e., checking whether a given execution composed of multiple transactions adheres to the prescribed isolation level semantics. We particularly focus on transactions formed of SQL queries and the use of multiple isolation levels at the same time. We show that many restrictions of this problem are NP-complete and provide an algorithm which is exponential-time in the worst-case, polynomial-time in relevant cases, and practically efficient.
Similar Papers
Reasoning about Weak Isolation Levels in Separation Logic
Programming Languages
Helps databases avoid mistakes with many users.
Using Read Promotion and Mixed Isolation Levels for Performant Yet Serializable Execution of Transaction Programs
Databases
Keeps computer programs from messing up data.
Boosting End-to-End Database Isolation Checking via Mini-Transactions (Extended Version)
Databases
Finds database bugs faster and cheaper.