< Back to previous page

Project

Allocating isolation levels to database transactions (R-11614)

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.
Date:1 Jan 2021 →  Today
Keywords:Database management, Database transactions, transaction programs
Disciplines:Data models, Database systems and architectures, Database theory, Workflow, process and database management
Project type:Collaboration project