efficient / epaxos

http://efficient.github.io/epaxos/
Other
612 stars 134 forks source link

epaxos.go doesn't correctly check for fast quorum on fast path #10

Open jiaochangyang opened 6 years ago

jiaochangyang commented 6 years ago

A colleague and I have been digging into this code base, and it looks like there's only a relaxed majority requirement in the fast path code, rather than the stricter quorum sizes in the TLA+ and paper.

https://github.com/efficient/epaxos/blob/791b115669fca472d3136f6a2eda46c00b3f8251/src/epaxos/epaxos.go#L1111 and https://github.com/efficient/epaxos/blob/791b115669fca472d3136f6a2eda46c00b3f8251/src/epaxos/epaxos.go#L1049 both simply check that >N/2

Is there some detail we are overlooking?

Thanks

nibeshrestha commented 6 years ago

There is a constant "DS" which has value 5. "DS" is being used to instantiate the no. of "deps" an instance has. So I believe, this code works for a system with at most 5 replicas. For 3 replica and 5 replica system, the size of fast quorum and slow quorum is same according to EPaxos spec.