In my understanding, the distributed KVS typically looks like:
- There is a leader which manages metadata
- There are multiple followers which manage data
- A client interacts with leader
- When a client asked to WRITE a data to the leader, it decides which node should own the data then pass it by some hash algorithm (e.g. consistent hash)
- Also, the leader copies the data to some other nodes in order not to lose the data in case some outage
This is my understanding. My point is that in this architecture, the data is not copied to all the follower nodes.
However, in etcd, it replicates all the data using Raft. In my understanding it should not be called distributed kvs but just a master-replica replication.
Is there any definition of distributed kvs? Should they be called distributed kvs if it consists of multiple servers? Please let me know it I'm missing some points.