Paper · Storage & Indexing

Organization and Maintenance of Large Ordered Indices

R. Bayer, E. McCreight · Acta Informatica · 1972

The original B-tree paper. The index structure behind nearly every database.

Summary

Binary search trees work well in memory but perform badly on disk, where every node visited can cost a separate I/O. Bayer and McCreight wanted an index that stays efficient for large files on secondary storage and remains balanced as keys are inserted and deleted.

They introduced the B-tree: a balanced tree whose nodes are sized to a disk page and hold many keys. Because the fan-out is high, the tree stays shallow, so a lookup touches only a few pages. Insertions split full nodes and deletions merge or redistribute them, which keeps every leaf at the same depth.

Almost every relational database uses a variant of this structure, usually the B+ tree, where values live only in the leaves and leaves are linked for range scans. Page size, fan-out and split behaviour remain central tuning concerns in storage engines today.

Key ideas

  • Nodes sized to a disk page, holding many keys, for high fan-out.
  • All leaves at the same depth, so lookups cost a small, predictable number of I/Os.
  • Node splits on insert and merges or redistribution on delete keep the tree balanced.
  • Logarithmic cost for search, insert and delete in terms of pages touched.

More Storage & Indexing papers