Efficient locking for concurrent operations on B-trees

The B-tree and its variants have been found to be highly useful (both theoretically and in practice) for storing large amounts of information, especially on secondary storage devices. We examine the problem of overcoming the inherent difficulty of concurrent operations on such structures, using a practical storage model. A single additional “link” pointer in each node allows a process to easily recover from tree modifications performed by other concurrent processes. Our solution compares favorably with earlier solutions in that the locking scheme is simpler (no read-locks are used) and only a (small) constant number of nodes are locked by any update process at any given time. An informal correctness proof for our system is given.

[1]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

[2]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[3]  Guy L. Steele,et al.  Multiprocessing compactifying garbage collection , 1975, CACM.

[4]  H. T. Kung,et al.  An efficient parallel garbage collection system and ITS correctness proof , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[5]  Donald E. Knuth,et al.  The art of computer programming: sorting and searching (volume 3) , 1973 .

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

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

[8]  Leslie Lamport,et al.  Concurrent reading and writing , 1977, Commun. ACM.

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

[10]  Hartmut Wedekind On the Selection of Access Paths in a Data Base System , 1974, IFIP Working Conference Data Base Management.

[11]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.