Operation-specific locking in balanced structures

Abstract Balanced structures, variations of B -trees, have been used as an access aid for both primary and secondary indexing for quite some time. This paper presents a deadlock-free locking mechanism for B -trees in which different processes make use of different lock types in order to reach the leaf nodes. The compatibility relations among locks on a node do not exclusively depend on their type, but also on the node status and the number and kind of processes acting currently on the node. As a result, a number of insertion or deletion processes can operate concurrently on a node. The paper presents an appropriate recovery strategy in case of failure and discusses the protocol modifications that are required so it can be used in other similar structures such as B + -trees, compressed B -trees, and R -trees for spatial searching.

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

[2]  Andreas Reuter,et al.  Principles of transaction-oriented database recovery , 1983, CSUR.

[3]  H. T. Kung,et al.  A Concurrent Database Manipulation Problem: Binary Search Trees (Abstract) , 1978, Very Large Data Bases Conference.

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

[5]  MARTIN L. KERSTEN,et al.  Application of an optimistic concurrency control method , 1984, Softw. Pract. Exp..

[6]  Mihalis Yannakakis,et al.  Locking policies: Safety and freedom from deadlock , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[7]  Michael Stonebraker,et al.  Database Portals: A New Application Program Interface , 1984, VLDB.

[8]  Albert Croker,et al.  A dynamic tree-locking protocol , 1986, 1986 IEEE Second International Conference on Data Engineering.

[9]  Alfred Z. Spector,et al.  Support for Distributed Transactions in the TABS Prototype , 1985, IEEE Transactions on Software Engineering.

[10]  Yehoshua Sagiv,et al.  Concurrent operations on B-trees with overtaking , 1985, J. Comput. Syst. Sci..

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

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

[13]  Abraham Silberschatz,et al.  Beyond two-phase locking , 1985, JACM.

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

[15]  Carla Schlatter Ellis,et al.  Concurrent Search and Insertion in AVL Trees , 1980, IEEE Transactions on Computers.

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

[17]  Chak-Kuen Wong,et al.  Quintary trees: a file structure for multidimensional datbase sytems , 1980, TODS.

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

[19]  Alfred Z. Spector,et al.  Transactions: a construct for reliable distributed computing , 1983, OPSR.

[20]  Philip A. Bernstein,et al.  Analyzing Concurrency Control Algorithms When User and System Operations Differ , 1983, IEEE Transactions on Software Engineering.

[21]  Douglas Comer Surveyor's Forum: The Tree Branches , 1979, CSUR.

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

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

[24]  Nancy A. Lynch,et al.  Multilevel atomicity—a new correctness criterion for database concurrency control , 1983, TODS.

[25]  Antonin Guttman,et al.  R-trees: a dynamic index structure for spatial searching , 1984, SIGMOD '84.

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

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

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

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

[30]  Marc H. Graham,et al.  Abstraction in recovery management , 1986, SIGMOD '86.

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

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

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

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

[35]  Daniel A. Menascé,et al.  Dynamic Crash Recovery of Balanced Trees , 1981, Symposium on Reliability in Distributed Software and Database Systems.