Hi Powell, I don't understand why you want to reset the values of the server vote when the totalOrderPredicate check fails. The values you're referring to are epoch and zxid?
In the example you give, it looks like you're saying that the vote of B wins over the vote of C and the one of C wins over the one of A, so the order is B > C > A, but A shouldn't take C's vote because it already took B's and B's vote win. If that's the case, then this already happens. I'm probably missing the point here, so perhaps you could provide an example with more detail, like with epoch numbers and such to illustrate the point. -Flavio > On 01 Jan 2016, at 04:19, Powell Molleti <[email protected]> wrote: > > Hi, > I want to better understand the use of code here: http://bit.ly/1kxjk5GWhy > should FLE reset the Vote to what is on the disk/initial values when > totalOrderPredicate() fails in the case of received ElectionEpoch being > greater than current vote's ElectionEpoch. > Going back to initial values(and clearing the recv set) does not seem to make > it incorrect but seems to slow down FLE if I am not mistaken. For example if > B has the best totalOrderPredicate() and A learns from it and if C has higher > election epoch but older values then A is forced to reset what it learned > from B till C and B catch up to each other?. Rather than let A and B wait for > C to upgrade its values after A and B borrow its ElectionEpoch?. > Any help is appreciated. > thanksPowell.
