A Log-Structured Merge (LSM) Tree implementation in Rust, built while studying LSM Trees and their underlying storage concepts.
The goal of this project is to understand how modern storage engines use WALs, MemTables, Bloom Filters, SSTables, and compaction to efficiently handle writes and persistent storage.
- WAL persistence
- WAL file chunking / rotation
- MemTable implementation
- Btree based
- Skip list based
- Bloom filter
- SSTable persistence
- SST Block creation
- SST Block compression and decompression
- SSTable merge / compaction
- Delete / tombstone handling
The Log-Structured Merge-Tree (LSM-Tree) Patrick O'Neil, Edward Cheng, Dieter Gawlick, Elizabeth O'Neil — Acta Informatica, 1996
Read the original LSM-Tree paper
Built with ❤️ by Rahul