bourbon · research · also BOURBON learned LSM

Bourbon

Bourbon is a research LSM storage engine that uses learned models over immutable sorted files to accelerate key lookup.

Models predict a candidate position range, not whether a key exists. The lookup checks the candidate block filter and searches for the exact key; files without an available model use the baseline lookup path. Fixed-size keys and value references make positions addressable even when separately stored values vary in size. [1]

Admission: the original cost-benefit code tracks positive and negative lookup savings separately, normalizes expected benefit by average file size, and uses sample-count gates. A model can therefore be omitted rather than trained for every file. [2]

The 2020 design does not support general string keys or key compression. Its evaluation mostly uses memory-resident data; storage and limited-memory cases are separate experiments. [1]

Internal lookups are candidate-file probes, not application requests. A negative probe can precede a successful probe of another file. If the model's range crosses data-block boundaries, the index block still selects the data block. [1]

Relations

related
Log-structured merge-tree, Sorted string table, Key-value separation

Citations

  1. Dai et al. From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees. OSDI 2020, 155-171, sections 4-5. (accessed 2026-11-11)
  2. Original Bourbon artifact, revision dfbf4f39: mod/CBMode_Learn.cpp, CalculateCB. (accessed 2026-11-10)

Further reading

  1. Hesela: budget model construction separately from lookup savings. (accessed 2026-11-10)
Sources & caveats
  • Full-paper and pinned-source review, not benchmark reproduction. The author-linked Bitbucket artifact is distinct from the later edydfang/Bourbon modification.

JSON: /data/terms/bourbon.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. Bourbon. Hesela. 2026-11-11. https://hesela.dev/terms/bourbon/