lehman&yao.efficient_btree_locking


Efficient Locking for Concurrent Operations on B-Trees

Philip Lehman (CMU) & S. Bing Yao (Purdue), 1981

Summary Lehman & Yao present a locking algorithm that provides high concurrency in that at most 3 nodes of the tree are locked at any one time on a write & no nodes are locked on a read. The algorithm requires a slight change to the b-tree, namely the addition of a right neighbor pointer (referred to as the ``link pointer'') and a key which names the maximum value stored under this node (the "high key"). Correctness is guaranteed partially through a well-ordered locking protocol.


More Detail

The modified b-tree is called a b-link-tree because it contains an additional link pointer in each node of the b-tree. The link pointer points to the right neighbor of the node and is used to maintain correctness of the tree during split operations. This leads to greater concurrency because reads need never lock any nodes.

The following algorithms are described and proofs of correctness are given.

Problems. Punts on deletion..