Synchronizing shared abstract data types

This paper discusses the synchronization issues that arise when transaction facilities are extended for use with shared abstract data types. A formalism for specifying the concurrency properties of such types is developed, based on dependency relations that arc defined in terms of an abstract type's operations. The formalism requires that the specification of an abstract type state whether or not cycles involving these relations should be allowed to form. Directories and two types of queues are specified using the technique, and the degree to which concurrency is restricted by type-specific properties is exemplified. The paper also discusses how the specifications of types interact to determine the behavior of transactions. A locking technique is described that permits implementations to make use of type-specific information to approach the limits of concurrency. Copyright © 1983 Peter M. Schwarz and Alfred Z. Spector, Technical Report CMU-CS-83-163, Revision of CMU-CS-82-128 This research was sponsored by: the USAF Rome Air Development Center under contract F30602-81C-0297; the US Naval Ocean Systems Center under contract number N66001-81-C-0484 N65; and the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 3597, monitored by the Air Force Avionics Laboratory Under Contract F33615-81-K-1539. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the Defense Advanced Research Projects Agency or die US Government. U N I V E R S I T Y L I B R A R I E S C A R N E G 1 E M U L 0 N U f H V E R S I T Y PITTSBURGH. PENNSYLVANIA IblU

[1]  Tony Hoare,et al.  Hierarchical Program Structures , 1972 .

[2]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

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

[4]  Irving L. Traiger,et al.  Granularity of Locks and Degrees of Consistency in a Shared Data Base , 1998, IFIP Working Conference on Modelling in Data Base Management Systems.

[5]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[6]  D. B. Lomet Process structuring, synchronization, and recovery using atomic actions , 1977 .

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

[8]  H. T. Kung,et al.  An optimality theory of concurrency control for databases , 1979, SIGMOD '79.

[9]  Butler W. Lampson,et al.  Atomic Transactions , 1980, Advanced Course: Distributed Systems.

[10]  Jim Gray,et al.  A Transaction Model , 1980, ICALP.

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

[12]  Irving L. Traiger,et al.  The Recovery Manager of the System R Database Manager , 1981, CSUR.

[13]  Barbara Liskov,et al.  On Linguistic Support for Distributed Programs , 1982, IEEE Transactions on Software Engineering.

[14]  James E. Allchin,et al.  Synchronization and recovery of actions , 1983, PODC '83.

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

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

[17]  Henry F. Korth,et al.  Locking Primitives in a Database System , 1983, JACM.

[18]  E. B. Moss,et al.  Nested Transactions: An Approach to Reliable Distributed Computing , 1985 .