Concurrent search structure algorithms

A dictionary is an abstract data type supporting the actions member, insert, and delete. A search structure is a data structure used to implement a dictionary. Examples include B trees, hash structures, and unordered lists. Concurrent algorithms on search structures can achieve more parallelism than standard concurrency control methods would suggest, by exploiting the fact that many different search structure states represent one dictionary state. We present a framework for verifying such algorithms and for inventing new ones. We give several examples, one of which exploits the structure of Banyan family interconnection networks. We also discuss the interaction between concurrency control and recovery as applied to search structures.

[1]  Gunter Schlageter,et al.  Process synchronization in database systems , 1978, TODS.

[2]  Catriel Beeri,et al.  A concurrency control theory for nested transactions (Preliminary Report) , 1983, PODC '83.

[3]  Marco A. Casanova,et al.  The Concurrency Control Problem for Database Systems , 1981, Lecture Notes in Computer Science.

[4]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

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

[6]  Leonidas J. Guibas,et al.  A dichromatic framework for balanced trees , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[7]  Carla Schlatter Ellis Concurrency and linear hashing , 1985, PODS '85.

[8]  H. T. Kung,et al.  Concurrent manipulation of binary search trees , 1980, TODS.

[9]  William E. Weihl Data-dependent concurrency control and recovery , 1985, OPSR.

[10]  Kevin P. McAuliffe,et al.  The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture , 1985, ICPP.

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

[12]  Alfred Z. Spector,et al.  Synchronizing shared abstract data types , 1983 .

[13]  EllisCarla Schlatter Concurrent search and insertion in 2---3 trees , 1980 .

[14]  Catriel Beeri,et al.  A Concurrency Control Theory for Nested Transactions. , 1983, PODC 1983.

[15]  Yehoshua Sagiv Concurrent Operations on B*-Trees with Overtaking , 1986, J. Comput. Syst. Sci..

[16]  James E. Allchin,et al.  Synchronization and recovery of actions , 1985, OPSR.

[17]  Paul G. Spirakis,et al.  A semantic approach to correctness of concurrent transaction executions , 2015, PODS '85.

[18]  Ray Ford,et al.  Concurrency control mechanisms and the serializability of concurrent tree algorithms , 1984, PODS '84.

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

[20]  Abraham Silberschatz,et al.  Locking Protocols: From Exclusive to Shared Locks , 1983, JACM.

[21]  Yoav Raz,et al.  Concurrency Control in B+-Trees Databases Using Preparatory Operations , 1985, VLDB.

[22]  Richard E. Ladner,et al.  Concurrency control in a dynamic search structure , 1984, TODS.

[23]  Dennis Elliott Shasha Concurrent algorithms for search structures (parallel, database) , 1984 .

[24]  Dennis Shasha,et al.  A Symmetric Concurrent B-Tree Algorithm , 2011, Fall Joint Computer Conference.

[25]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[26]  Jon Louis Bentley,et al.  Data Structures for Range Searching , 1979, CSUR.

[27]  Derick Wood,et al.  A New Method for Concurrency in B-Trees , 1982, IEEE Transactions on Software Engineering.

[28]  C. H. Papadimitriou SERIALIZABILITY OF CONCURRENT DATA BASE UPDATES , 1979 .

[29]  Ralph Grishman,et al.  The NYU Ultracomputer—Designing an MIMD Shared Memory Parallel Computer , 1983, IEEE Transactions on Computers.

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

[31]  A. Gottleib,et al.  The nyu ultracomputer- designing a mimd shared memory parallel computer , 1983 .

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

[33]  Philip A. Bernstein,et al.  Two Part Proof Schema for Database Concurrency Control , 1981, Berkeley Workshop.

[34]  Douglas Comer,et al.  Ubiquitous B-Tree , 1979, CSUR.

[35]  Gerhard Weikum,et al.  A theoretical foundation of multi-level concurrency control , 1985, PODS.

[36]  David B. Lomet,et al.  Bounded index exponential hashing , 1983, TODS.

[37]  Richard C. Holt,et al.  Concurrent Euclid, the UNIX system, and TUNIS , 1983 .

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

[39]  Dennis Shasha,et al.  Semantically-based concurrancy control for search structures , 1985, PODS '85.

[40]  Carla Schlatter Ellis,et al.  Extendible hashing for concurrent operations and distributed data , 1983, PODS '83.

[41]  Carlo H. Séquin,et al.  Hypertree: A Multiprocessor Interconnection Topology , 1981, IEEE Transactions on Computers.

[42]  Behrokh Samadi,et al.  B-Trees in a System with Multiple Users , 1976, Inf. Process. Lett..

[43]  William E. Weihl Data-dependent concurrency control and recovery (Extended Abstract) , 1983, PODC '83.

[44]  S. B. Yao,et al.  Efficient locking for concurrent operations on B-trees , 1981, TODS.

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