Allocating isolation levels to database transactions

Project Details


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.
Effective start/end date1/01/2131/12/24


  • Database management
  • Database transactions and transaction programs
  • Database concurrency control methods

Flemish discipline codes

  • Data models
  • Database systems and architectures
  • Database theory
  • Workflow, process and database management