Skip to content

RohanPalkar/DistributedKeyValueStore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Key Value Store

A personal project for designing and implementing a distributed key value store.

Objectives

  1. CURD Operations: Design a distributed key value store and support all CRUD operations.
  2. Membership Protocol: Monitor the replica servers using Membership protocol - preferably Gossip protocol.
  3. Load balancing: Achieve load balancing via a consistent hashing ring to hash both servers and keys.
  4. Fault Tolerance: Replicate keys on successive nodes in the ring, starting from the first node at or to the clockwise of the hashed key.
  5. Consistency Levels: Define and implement consistency levels for Reads and Writes (preferably Quorum)
  6. Stabilization Protocol: Recreate and balance replicas in case of failure of nodes.
  7. Coordinator Election: To elect a node as the coordinator (via leader election / paxos)

Logging

Following environment variables are exposed for controlling the logging configuration :

  • SERVER_HOME (Mandatory) : The server log file will be generated under the following directory $SERVER_HOME/log/replicaXXXX.log
  • SERVER_LOG_LEVEL (Default: INFO): All log4j2 supported log levels - specify level to override the default.
  • SERVER_ID : The replica-server-Id incase of a cluster environment or a process-Id (threadId) in case of single machine environment (emulated).

Resources

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages