Title
Allocating isolation levels to database transactions (Research)
Abstract
A transaction is a group of operations over a database usually initiated by an application program. Transaction processing is typically associated with ACID properties, which guarantee that they are executed atomically and in complete isolation of each other. In
practice, however, transactions are evaluated concurrently such that they are serializable. That is, their combined effect is always equivalent to a sequential execution of each transaction in perfect isolation. For application programmers, perfect isolation is extremely
desirable as it implies that they only need to reason about the correctness properties of individual transactions. Ensuring serializability, for instance through two-phase locking, comes at a non-trivial performance cost that is often not tolerable. Database
systems therefore provide the ability to trade off isolation guarantees for improved performance by offering a variety of weaker isolation levels. In that case a deliberate choice is made to improve transaction throughput but at the expense of an increased risk on
anomalies. In this project, we take a radical new approach where we no longer burden the user to guess an appropriate isolation level, but develop a methodology to automatically determine the best isolation level for a given group of transactions without any risks for
anomalies. Our approach has the potential to fundamentally change the way concurrency control is approached in database systems.
Period of project
01 January 2021 - 31 December 2024