TODO:
- Red-Black tree implementation
- WAL
- Bloom filter
- Flush memtable to disk
- Compaction
- Logging
- Config file
- Manifest file for recreating manifest state
- Make bloomfilter crash tolerant(move bloom filter to each sstable, switch to bitwise operations)
- Logging
- Test concurrent ops
- [] TCP serialization protocol to remove GRPC dependency
Prio:
- [] Improve read speed -[] Create key-offset map index on each sstable -[] Use mmap for each sstable to allow quick randomized access
- [] Test deletes + reading from compacted tree
- [] Test level 1+ compaction