Concurrency control is essential to the correct functioning of a database due to the need for correct, reproducible results.
For this reason, and because concurrency control is a well-formulated problem, there has developed an enormous body of literature
studying the performance of concurrency control algorithms. Most of this literature uses either analytic modeling or random
number-driven simulation, and explicitly or implicitly makes certain assumptions about the behavior of transactions and the
patterns by which they set and unset locks. Because of the difficulty of collecting suitable measurements, there have been
only a few studies which use trace-driven simulation, and still less study directed toward the characterization of concurrency
control behavior of real workloads. In this paper, we present a study of three database workloads, all taken from IBM DB2
relational database systems running commercial applications in a production environment. This study considers topics such
as frequency of locking and unlocking, deadlock and blocking, duration of locks, types of locks, correlations between applications
of lock types, two-phase versus non-two-phase locking, when locks are held and released, etc. In each case, we evaluate the
behavior of the workload relative to the assumptions commonly made in the research literature and discuss the extent to which
those assumptions may or may not lead to erroneous conclusions.
Key words:Concurrency control – Workload characterization – Trace-driven simulation
Edited by H. Garcia-Molina. Received April 5, 1994 / Accepted November 1, 1995