I wanted to share some excitement around a project I started three days ago: Anura is a KeyValue Store written in Scala based on LSM-Tree Algorithm, which I am writing to sharpen my database design skills.
You can find it at https://github.com/DanielMorales9/Anura.
It's a simple implementation but it's unbelievable fast already. I was astonished by how fast it can be to build such a complex information system as a Database.
Some of the coolest features already supported:
- AVL-Tree implementation of MemTable
- Gzip Compression of SSTables' blocks
- Bloom-Filter for fast Key lookup
- Naive SSTables Compaction Algorithm
I have great plans already:
- Master-slave replication
- Multi-threaded
- Red-Black-Tree implementation of MemTable
- Write-Append-Log for fault-recovery
- Levelled Compaction
- Size-tiered Compaction
- LRU Cache
- Benchmarks
- Profiling
- And much more...
I look forward to your comments and thoughts.
Thank you for your attention <3 :D