Ongoing Research Seminar
Friday December 1, 1995

Arthur Bernstein
High Performance Transaction Processing Systems

Serializability has been widely accepted as the correctness criterion for databases subject to concurrent access. However, serializability carries with it performance penalties: transactions are required to use locks in a two-phase fashion, forcing them to hold locks for long periods and delaying concurrent transactions. This is unacceptable in application requiring high performance.

To deal with this problem a number of models have recently been proposed in which transactions release locks early. Since these models violate the two-phase requirement, serializability is no longer guaranteed. Unfortunately, questions related to these models, such as ``When should locks be released?'' and ``What interleavings are correct?'' have not been addressed.

In this talk we describe a new, application-oriented, correctness criterion that utilizes transaction semantics. We treat transactions as programs whose semantics can be analyzed at design time. The effect of each transaction is specified using pre- and postconditions, and any schedule that preserves these assertions is correct. Such schedules need not be serializable. We use transaction semantics in three distinct concurrency control models.

- Transactions are decomposed into steps and a new lock mode is introduced to control step interleaving in such a way that assertions are preserved.

- Using only conventional lock modes we develop a theory of non-two-phase locking that preserves assertions.

- We use the semantics of transactions together with the semantics of database operations to enhance concurrency in two-phase locked (serializable) schedules.

We are in the process of developing a facility for testing the effectiveness of these ideas. A load generator has been built and the Ingres database system is being modified to support the new concurrency controls.