etcd-io / etcd

Distributed reliable key-value store for the most critical data of a distributed system
https://etcd.io
Apache License 2.0
47.94k stars 9.78k forks source link

Distributed master - merging-capable algo? #156

Closed zbal closed 11 years ago

zbal commented 11 years ago

I understood that the choice for raft algorithm is a convenient approach for simple distribution and election of leader; but I was wondering if there was any plan in mid term for a leader-less algorithm like doozer uses?

While convenient it still has some side effects; if half of the servers are unreachable (IDC issue; rack failure; network disruption; you name it) - then raft prevents the election of a new master (can not reach the consensus of majority of votes). A merging-capable algorithm would somehow prevent such situation and still allow nodes to operate independently until the connectivity issue get resolved.

Either way - congrats for this very promising tool !

xiang90 commented 11 years ago

@zbal As far as I know, any distributed consensus based on voting cannot bear more than half machine problems. I do not think doozerd can do that, which is based on basic paxos.

It is not that difficult to support merge. But think about git, there might be conflicts and different views of the data.

The key point is that we need high consistence and assume that at least the majority of the cluster will work normally.

zbal commented 11 years ago

I'm not saying this is a simple problem, and indeed I believe doozer still suffers from that same issue... I may simply be over-thinking a non-issue!

Thanks for the feedback.