Adaptable concurrency control for atomic data types
- 1 August 1992
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 10 (3) , 190-225
- https://doi.org/10.1145/146937.146939
Abstract
In many distributed systems concurrent access is required to a shared object, where abstract object servers may incorporate type-specific properties to define consistency requirements. Each operation and its outcome is treated as an event, and conflicts may occur between different event types. Hence concurrency control and synchronization are required at the granularity of conflicting event types. With such a fine granularity of locking, the occurrence of conflicts is likely to be lower than with whole-object locking, so optimistic techniques become more attractive. This work describes the design, implementation, and performance of servers for a shared atomic object, a semiqueue, where each server employs either pessimistic or optimistic locking techniques on each conflicting event type. We compare the performance of a purely optimistic server, a purely pessimistic server, and a hybrid server which treats certain event types optimistically and others pessimistically, to demonstrate the most appropriate environment for using pessimistic, optimistic, or hybrid control. We show that the advantages of low overhead on optimistic locking at low conflict levels is offset at higher conflict levels by the wasted work done by aborted transactions. To achieve optimum performance over the whole range of conflict levels, an adaptable server is required, whereby the treatment of conflicting event types can be changed dynamically between optimistic and pessimistic, according to various criteria depending on the expected frequency of conflict. We describe our implementations of adaptable servers which may allocate concurrency control strategy on the basis of state information, the history of conflicts encountered, or by using preset transaction priorities. We show that the adaptable servers perform almost as well as the best of the purely optimistic, pessimistic, or hybrid servers under the whole range of conflict levels, showing the versatility and efficiency of the dynamic servers. Finally we outline a general design methodology for implementing adaptable concurrency control in servers for atomic objects, illustrated using an atomic shared B-tree.Keywords
This publication has 17 references indexed in Scilit:
- A model for adaptable systems for transaction processingIEEE Transactions on Knowledge and Data Engineering, 1989
- The Raid distributed database systemIEEE Transactions on Software Engineering, 1989
- An overview of the SR language and implementationACM Transactions on Programming Languages and Systems, 1988
- Concurrency control performance modeling: alternatives and implicationsACM Transactions on Database Systems, 1987
- The performance of multiversion concurrency control algorithmsACM Transactions on Computer Systems, 1986
- Towards a self-adapting centralized concurrency control algorithmPublished by Association for Computing Machinery (ACM) ,1984
- Observations on optimistic concurrency control schemesInformation Systems, 1984
- Using semantic knowledge for transaction processing in a distributed databaseACM Transactions on Database Systems, 1983
- Concurrency Control in Distributed Database SystemsACM Computing Surveys, 1981
- The notions of consistency and predicate locks in a database systemCommunications of the ACM, 1976