b-link-tree · shipping · also B link tree, Lehman-Yao tree

B-link tree

A B-link tree augments an ordered search tree with high keys and right-sibling links so searches can recover from concurrent node splits.

Related Observatory article: B-link tree on hesela.com

A stale parent route may reach the left half of a newly split node. If the sought key exceeds that node's high key, the search follows a right link toward the correct range. Lehman and Yao's model assumes private page copies and allows reads without acquiring its update locks; section 6.4 explicitly leaves livelock possible. [1]

PostgreSQL adapts the algorithm to shared buffers and uses page-level read locks. The paper's no-read-lock property must not be restated as a lock-free PostgreSQL guarantee. These links solve index-navigation races, not MVCC visibility or crash recovery by themselves. [2]

Relations

related
B-tree, Index-only scan (PostgreSQL), Visibility map (PostgreSQL)

Citations

  1. Lehman and Yao (1981), Efficient Locking for Concurrent Operations on B-Trees, TODS 6(4), 650-670; DOI 10.1145/319628.319663 (accessed 2026-10-22)
  2. PostgreSQL REL_16_15: Btree Indexing, algorithm and shared-buffer differences (accessed 2026-10-22)
Sources & caveats
  • Source review of the 1981 algorithm and PostgreSQL REL_16_15 implementation notes; no concurrent workload or speedup was measured.

JSON: /data/terms/b-link-tree.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. B-link tree. Hesela. 2026-10-22. https://hesela.dev/terms/b-link-tree/