Adaptable concurrency control for atomic data types

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.

[1]  Maurice Herlihy,et al.  Hybrid concurrency control for abstract data types , 1988, PODS '88.

[2]  Philip A. Bernstein,et al.  Concurrency Control in Distributed Database Systems , 1986, CSUR.

[3]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[4]  Haran Boral,et al.  Towards a self-adapting centralized concurrency control algorithm , 1984, SIGMOD '84.

[5]  Miron Livny,et al.  Concurrency control performance modeling: alternatives and implications , 1987, TODS.

[6]  John Riedl Adaptable distributed transaction systems , 1990 .

[7]  William E. Weihl,et al.  Local atomicity properties: modular concurrency control for abstract data types , 1989, TOPL.

[8]  George Lausen Concurrency control in database systems: A step towards the integration of optimistic methods and locking , 1982, ACM '82.

[9]  Michael Stonebraker,et al.  The design of POSTGRES , 1986, SIGMOD '86.

[10]  William E. Weihl,et al.  SPECIFICATION AND IMPLEMENTATION OF ATOMIC DATA TYPES , 1984 .

[11]  Michael Stonebraker,et al.  The Commercial INGRES Epilogue , 1986, The INGRES Papers.

[12]  Michael J. Carey,et al.  The performance of multiversion concurrency control algorithms , 1986, TOCS.

[13]  Maurice Herlihy,et al.  Apologizing versus asking permission: optimistic concurrency control for abstract data types , 1990, TODS.

[14]  Hector Garcia-Molina,et al.  Using semantic knowledge for transaction processing in a distributed database , 1983, TODS.

[15]  Barbara Liskov,et al.  Guardians and actions: linguistic support for robust, distributed programs , 1982, POPL '82.

[16]  Alfred Z. Spector,et al.  Distributed transactions for reliable systems , 1985, SOSP 1985.

[17]  William E. Weihl The impact of recovery on concurrency control , 1989, PODS '89.

[18]  Maurice Herlihy Optimistic concurrency control for abstract data types , 1986, PODC '86.

[19]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.

[20]  Yvonne Coady An investigation of type-specific optimistic, pessimistic, and hybrid concurrency control , 1988 .

[21]  John T. Robinson Design of Concurrency Controls for Transaction Processing Systems , 1982 .

[22]  Dieter Gawlick,et al.  Processing "Hot Spots" in High Performance Systems , 1985, COMPCON.

[23]  Amit P. Sheth,et al.  Integrating Locking and Optimistic Concurrency Control in Distributed Database Systems , 1986, ICDCS.

[24]  Alfred Z. Spector,et al.  Synchronizing shared abstract types , 1984, TOCS.

[25]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[26]  Gregory R. Andrews,et al.  An overview of the SR language and implementation , 1988, TOPL.

[27]  Bharat K. Bhargava,et al.  A Model for Adaptable Systems for Transaction Processing , 1989, IEEE Trans. Knowl. Data Eng..

[28]  Barbara Liskov,et al.  Guardians and Actions: Linguistic Support for Robust, Distributed Programs , 1983, TOPL.

[29]  Miron Livny,et al.  Models for studying concurrency control performance: alternatives and implications , 1985, SIGMOD Conference.

[30]  Hector Garcia-Molina,et al.  The Performance of a Concurrency Control Mechanism that Exploits Semantic Knowledge , 1985, ICDCS.

[31]  David P. Reed,et al.  Naming and synchronization in a decentralized computer system , 1978 .

[32]  Bharat K. Bhargava,et al.  The Raid Distributed Database System , 1989, IEEE Trans. Software Eng..