Skip to content

4eshanb/Distributed-Key-Value-Store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed-Key-Value-Store

Built a REST API with Flask to create a, sharded, replicated, Fault-Tolerant Key-Value Store. Causal Consistency was enforced through Vector Clocks, so each message will be delivered in the correct order. Docker instances were used as virtual nodes that communicate over a docker network. Implemented Fault-Tolerance with sharding, so if one node crashes, information is still preserved on another node. In this case, the Key-Value Store redistributes data among the remaining machines and reshards. Shards had at least two nodes. Distributed Keys with Consistent hashing; a hash function is used to split key-values received between shards. Supports view operations, sharded operations, and key-value operations.

Note: if there are <= 3 nodes running, there will only be one shard

Hash Function

Consistent Hashing with Shards

Alt text

Node Crash Example

Alt text

Vector Clocks for Causal Consistency

Alt text

Causal Anomaly

Alt text

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published