Skip to content

Latest commit

 

History

History
27 lines (24 loc) · 764 Bytes

README.md

File metadata and controls

27 lines (24 loc) · 764 Bytes

Anura: Key-Value Store

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

TODO

  • Support for Generic Byte Array
  • Adding Tests
  • Benchmark test
  • Profiling
  • Research better compression and encoding solutions