Locality and Fast Paths in Buffer Pool Translation
Abstract
Buffer pool translation—resolving an on-disk page identifier to an in-memory frame—was once a heavyweight operation whose bookkeeping consumed a substantial fraction of CPU cycles in early OLTP engines. Recent systems reduce this cost with techniques such as pointer swizzling, in-page hints, OS page-table mappings, prediction, sharding, and direct arrays. This paper surveys buffer pool translation mechanisms and then studies two orthogonal ways to reduce the cost of hash-table-based translation: placing related pages near each other in the frame array so neighboring pages prefer neighboring frame slots, and choosing a lookup policy that bypasses the hash table when a predicted frame validates. The benefit of each depends on workload locality, displacement, and payload size: on an in-memory translation microbenchmark, combining relation-local placement with bypass yields up to 1.46 $$\times$$ higher translation throughput, while the advantage shrinks to near zero once large payload reads dominate per-access cost.