Design and performance of an assertional concurrency control system
A. J. Bernstein, Wai-Hong Leung, David S. Gerstl, Philip Lewis · 2002
Serializability has been widely accepted as the correctness criterion for databases subject to concurrent access. Serializable execution is generally implemented using a two phase locking algorithm that locks items in the database to delay transactions that care in danger of performing in a nonserializable fashion. Such delays are unacceptable in high performance database systems and in systems supporting long running transactions. A number of models have been proposed in which transactions are decomposed into smaller, atomic, interleavable steps. A shortcoming of much of this work is that little guidance is provided as to how transactions should be decomposed and what interleavings preserve correct execution. We previously proposed a new correctness criterion, weaker than serializability, that guarantees that each transaction satisfies its specification (A. Bernstein and P. Lewis, 1996). Based on that correctness criterion, we have designed and implemented a new concurrency control. Experiments using the new concurrency control demonstrate significant improvement in performance when lock contention is high.