Skip to content

A KeyValue Store written in Scala implementing LSM-Tree Algorithm

Notifications You must be signed in to change notification settings

DanielMorales9/Anura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A KeyValue Store written in Scala implementing LSM-Tree Algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages