Hands-on workshop going from zero to a working LSM Tree
summary
Hands-on workshop that has attendees write your own LSM Tree in Go, including memtable writes, reads, deletes, and a flush that persists data to SSTable format plus a runnable tiered compaction pass. Codebase provides primitives (SST writer, block utilities, sorted map) and stage-by-stage tests; one expected task is implementing the SSTable reader/index and wiring it into the engine. A built-in read IO counter tracks 4KB reads so design choices (indexing, bloom filters, block cache, L0 sizing) show measurable read/write trade-offs.
AI-written summary · about
chapters (7)
- 0:00LSM Tree workshop intro
- 22:39What is an LSM Tree
- 59:05Setting up environment
- 1:33:42Mem table implementation
- 2:05:34SS table reader and writer
- 3:37:45Reviewing solutions and read path
- 4:02:33Closing remarks
related talks
39mDissecting the Humble LSM Tree and SSTable
34mWhat We Talk About When We Talk About Disk IO
39mAn Introduction to B-trees and LSM-trees for DEVs and DevOps
13mClosing the B+-tree vs. LSM-tree Write Amplification Gap on Modern Storage Hardware...
01h 16mDeep Dive into On-Disk Data Structures
18mPreview: KV-Stores and Databases
05mExploring Data Deduplication in LSM Tree-based Key-Value Stores (Work-in-Progress Report)
01h 16mOn-Disk Data Structures: B-Trees, LSM-Trees and Fractal Trees
