Encyclopedia of Database Systems

Living Edition
| Editors: Ling Liu, M. Tamer Özsu

B-Tree Locking

  • Goetz Graefe
Living reference work entry

Latest version View entry history

DOI: https://doi.org/10.1007/978-1-4899-7993-3_35-3



B-tree locking controls concurrent searches and updates in B-trees. It separates transactions in order to protect the B-tree contents and it separates threads in order to protect the B-tree data structure. Nowadays, the latter is usually called latching rather than locking.

Historical Background

Bayer and Schkolnick [1] presented multiple locking (latching) protocols for B*-trees (all data records in the leaves, merely separator keys or “reference keys” in upper nodes) that combined high concurrency with deadlock avoidance. Their approach for insertion and deletion is based on deciding during a root-to-leaf traversal whether a node is “safe” from splitting (during an insertion) or merging (during a deletion), and on reserving appropriate locks (latches) for ancestors of unsafe nodes.

Lehman and Yao defined Blink-trees by relaxing...


Concurrency Control Buffer Pool Deadlock Avoidance Concurrent Thread Exclusive Lock 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This is a preview of subscription content, log in to check access.

Recommended Reading

  1. 1.
    Bayer R, Schkolnick M. Concurrency of operations on B-trees. Acta Inf. 1977;9:1–21.MathSciNetCrossRefMATHGoogle Scholar
  2. 2.
    Comer D. The ubiquitous B-tree. ACM Comput Surv. 1979;11(2):121–37.MathSciNetCrossRefMATHGoogle Scholar
  3. 3.
    Eliot J, Moss B. Open nested transactions: semantics and support. In: Proceedings of Workshop on Memory Performance Issues; 2006.Google Scholar
  4. 4.
    Graefe G. Hierarchical locking in B-tree indexes. BTW Conference; 2007. p. 18–42.Google Scholar
  5. 5.
    Graefe G, Zwilling MJ. Transaction support for indexed views. In: Proceedings of ACM SIGMOD International Conference on Management of Data; 2004.Google Scholar
  6. 6.
    Gray J, Reuter A. Transaction processing: concepts and techniques. San Francisco: Morgan Kaufmann; 1993.MATHGoogle Scholar
  7. 7.
    Jaluta I, Sippu S, Soisalon-Soininen E. Concurrency control and recovery for balanced B-link trees. VLDB J. 2005;14(2):257–77.CrossRefGoogle Scholar
  8. 8.
    Lehman PL, Yao SB. Efficient locking for concurrent operations on B-trees. ACM Trans Database Syst. 1981;6(4):650–70.CrossRefMATHGoogle Scholar
  9. 9.
    Lomet DB. Key range locking strategies for improved concurrency. In: Proceedings of 19th International Conference on Very Large Data Bases; 1993. p. 655–64.Google Scholar
  10. 10.
    Mohan C. ARIES/KVL: a key-value locking method for concurrency control of multiaction transactions operating on B-tree indexes. In: Proceedings of 16th International Conference on Very Large Data Bases; 1990. p. 392–405.Google Scholar
  11. 11.
    Mohan C, Haderle DJ, Lindsay BG, Pirahesh H, Schwarz PM. ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans Database Syst. 1992;17(1):94–162.CrossRefGoogle Scholar
  12. 12.
    Ni Y, Menon V, Adl-Tabatabai A-R, Hosking AL, Hudson RL, Moss JEB, Saha B, Shpeisman T. Open nesting in software transactional memory. In: Proceedings of 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming; 2007. p. 68–78.Google Scholar
  13. 13.
    Srinivasan V, Carey M.J. Performance of B-tree concurrency algorithms. In: Proceedings of ACM SIGMOD International Conference on Management of Data; 1991. pp. 416–25.Google Scholar
  14. 14.
    Weikum G. Principles and realization strategies of multilevel transaction management. ACM Trans Database Syst. 1991;16(1):132–80.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media LLC 2017

Authors and Affiliations

  1. 1.Google, Inc.Mountain ViewUSA