Concurrent operations on \(B^ *\)-trees with overtaking
Algorithms for concurrent operations (i.e., searches, insertions, and deletions) on \(B^*\)-trees are presented. These algorithms improve those given by \textit{P. L. Lehman} and \textit{S. B. Yao} [ACM Trans. Database Syst. 6, 650-670 (1981; Zbl 0465.68061)] since an insertion process has to lock only one node at any time (as opposed to locking simultaneously two or three nodes in ibid. Another improvement is the ability to compress the tree when some nodes become too sparse as a result of some deletions. Compressing the tree is done by a process that periodically scans the whole tree while running concurrently with the other operations. Alternatively, it is possible to initiate a compression process after each deletion that leaves a node less than half full. These compression processes may run concurrently with the other operations, and they scan only the nodes that have to be compressed. Each compression process has to lock simultaneously three nodes.
scientific article; zbMATH DE number 4016242
scientific article