/Sharded-KV-Storage-Based-On-Paxos

A implementation of distributed, sharded, replicated KV storage system

Primary LanguageGoApache License 2.0Apache-2.0

Sharded-KV-Storage-Based-On-Paxos

This project is a implementation of distributed, sharded, replicated KV storage system which supports Put, Append, and Get operations and provides linearizability.

paxos and paxosrsm implemented the paxos protocol and a replicated state machine(RSM) based on paxos.

shardmaster implemented a replicated shard master server managing the replica groups of servers, handling died and joined servers and doing the load-balancing among groups.

shardkv implemented a shard server operating as part of a replica group, in which every server can serve concurrent requests.

The shardmaster provides a distributed hash table. Each replica group will be responsible for several shards. The whole system is fault-tolerant as long as the majority of a replica group or shard masters lives.