hashicorp / consul

Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
https://www.consul.io
Other
28.24k stars 4.41k forks source link

Would it be possible to implement CRDT in addition to Raft? #446

Closed c4milo closed 9 years ago

armon commented 9 years ago

I'm not sure why this would be useful. Raft gives us strong consistency, so we don't have conflicts to resolve via the use of CRDTs.

c4milo commented 9 years ago

I guess I was just curious about convergence times in Consul, when writing, particularly in big clusters (>100 machines). And whether or not having CRDT types would make any difference. Or is it just a matter of having a small number of servers participating in the quorum and having the rest as clients only?

armon commented 9 years ago

Exactly. The few servers are doing replication among themselves, and the client nodes just read from them. So even with 1000's of machines, we are still only replicating to the 3/5 servers. CRDT's would not improve this at all. CRDT's are most relevant when you are an AP system that accepts writes to any node. As a CP system, only the leader can write and there are never conflicts that require resolution.

c4milo commented 9 years ago

Excellent, makes sense, thanks for taking the time to answer my questions @armon!

avesus commented 8 years ago

And instead of Serf?