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