powered by Scala®
A simple key-value store based on the LSM-Tree Algorithm.
This repo has an educational purpose,
and it is meant as a place to improve my knowledge on database design.
- Single machine
- Master-slave replication
- Single-threaded
- Multi-threaded
- AVL-Tree implementation of MemTable
- Red-Black-Tree implementation of MemTable
- Gzip Compression of SSTables' blocks
- Bloom-Filter for fast Key lookup
- Write-Append-Log for fault-recovery
- Naive Compaction
- Leveled Compaction
- Size-tiered Compaction
- LRU Cache
- Support for Generic Byte Array
- Adding Tests
- Benchmark test
- Profiling
- Research better compression and encoding solutions