Abstract
Correctness of concurrent executions of multiple database transactions is assured by concurrency control techniques. Performance analyses, e.g., [Agr85], show that optimistic concurrency control techniques perform more efficiently than pessimistic 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 clusters. 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.
Published Version (
Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have