Skip to content

Elia-Renzoni/KnucklesDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KnucklesDB

Key Value Store as a Failure Detector

KnucklesDB is a key-value store that serves as a failure detector for distributed environments, such as microservice architectures, horizontal scaling, and unstructured peer-to-peer systems, like cluster-based distributed systems.

Through the paginator algorithm, it is possible for a single replica to manage nearly 3,000 nodes. The failure detector model is based on a tree structure, where heartbeats from nodes are stored with an associated logical clock based on Lamport's clock behavior. Every N seconds, Knuckles schedules the paginator algorithm, which removes all pages associated with a clock value that is 10 less than the root clock

Key Features

  • KnucklesDB is an eventually consistent database.
  • KnucklesDB is based on a leaderless architecture.
  • KnucklesDB uses version vectors to resolve write-write conflicts and provide anti-entropy.
  • KnucklesDB uses a WAL and does not store any items on disk.
  • KnucklesDB's crash recovery model is not based on full checkpointing, but rather on reading the WAL.
  • KnucklesDB cluster membership is based on the SWIM protocol.

Tree-Based LRU Algorithm

About

Key Value Store as a Failure Detector

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages