Correctness of concurrent executions of multiple database transactions is assured by concurrency control techniques. Performance analyses, e.g., [Agr85], show that <italic>optimistic</italic> concurrency control techniques perform more efficiently than <italic>pessimistic</italic> techniques when there is low contention for the data and low resource utilization. Otherwise pessimistic techniques perform better. Because the designer of a database system can rarely predict data contention and resource utilization, it is desirable that a database system adaptively select a concurrency control technique at runtime. We present an algorithm for partitioning the collection of active database transactions into a set of <italic>clusters</italic>. The partitioning algorithm guarantees that there are no data conflicts between transactions to distinct clusters. Different concurrency control techniques can be applied in distinct clusters. Our algorithm uses the number of transactions in a cluster as a measure of data contention. Transactions in newly formed clusters are handled by an optimistic scheduler. When the number of transactions in a cluster exceeds a certain threshold, the cluster becomes pessimistic. Such a cluster's current transactions complete, and then newly entering transactions can begin, managed by a pessimistic scheduler. We have designed data structures to support the efficient maintenance of clusters. We have also begun to develop a theory of correct cluster configurations. We are undertaking a simulation study to compare the performances of pessimistic techniques, optimistic techniques, and our adaptive approach.
Unfortunately, ACM prohibits us from displaying non-influential references for this paper.
To see the full reference list, please visit http://dl.acm.org/citation.cfm?id=100458.