This repository will be used in "building storage engine" workshop. As a part of that workshop, we will build a storage engine using LSM tree, but we will not implement merge and compaction.
This repository is supposed to contain the following:
- Implementation of Memtable
- Implementation of SSTable
- Implementation of concurrency, using either a single writer/multiple readers pattern or a singular update queue pattern
- Implementation of segmented write-ahead logging
- Implementation of transactions
- Implementation of Bloom filter
- Implementation of "Put", "Get", "MultiGet"
- Implementation of "Get" and "MultiGet" in Memtable and SSTable
- Implementation of "Update" using versioned put (Next version)
The revised code is available here