/distributed-key-value-store

A solution to Fault Tolerant Key-Value Store assignment for cloud computing concepts

Primary LanguageC++

A solution to fault tolerant distributed Key-Value store assignment for cloud computing concepts part 2 (Coursera)

Designed and implemented a key-value/NoSQL storage system, which supports CRUD operations (create, read, update, delete).

Arranged nodes storing the Key-Value pairs in a ring topology and implemented load-balancing using consistent hashing.

Replicated each key three times to three successive nodes in the ring to achieve fault-tolerance up to two failures.

Implemented Quorum consistency (at least 2 replicas) for both reads and writes.

Implemented Stabilization after failures, which recreates 3 replicas.

To detect the failures of nodes, implemented a SWIM-style membership protocol.

The membership protocol satisfied completeness and accuracy of failure detection.

i.e. All non-faulty nodes detect every node join, failure and leave.

And When there are no message losses and message delays are small, all failures are detected.

When there are message losses, completeness is satisfied and accuracy is high.