Hi Shay,

Thanks for your reply. It seems the PDF version has a typo on that
part. Thank you for your clarifications.

Eric

On Sun, Oct 27, 2019 at 4:40 PM shay shimony <[email protected]> wrote:
>
> Hi Eric,
>
> I checked the Leader Elections section in the ZooKeeper book of Junqueira and 
> Reed, and found that you have a mistake in the rules that you quoted - the 
> '>' sign should be '<':
>
> 1. If (voteZxid < myZxid) or (voteZxid = myZxid and voteId < mySid),
> keep the current vote.
> 2. Otherwise, change my vote by assigning myZxid to voteZxid and mySid to 
> vote zxid.
>
> When z3 compares votes from z1(1, 6) and its current vote (3, 5), it changes 
> its vote to (1, 6).
> Next, z3 compares (2, 5) and its current vote (1, 6), and keeps its current 
> vote (1, 6).
>
> After these 2 iterations z3 will send again its vote to z1 and z2 - this time 
> (1, 6).
> Next, z3 and z1 form a quorum of 2, with z1 as leader and z3 as its follower.
>
> Hopefully z2 will be on the same page, similarly will join the quorum, and 
> set itself as follower of z1 as well (normally it will).
>
> Hope it helps,
> Shay
>
> On Sun, Oct 27, 2019 at 8:11 AM Lee Eric <[email protected]> wrote:
>>
>> Hi,
>>
>> I have a dumb question about the way how zookeeper does leader election.
>>
>> There is a quorum zk1(1,6), zk2(2,5) and zk3(3,5). The number in
>> parentheses is sid and latest zxid. So my question is, when each
>> server sends out the vote to other 2, say, zk1 and zk2 send the votes
>> to zk3. So zk3 has 2 votes (1,6) and (2,5). Now, based on the rules:
>>
>> 1. If (voteZxid > myZxid) or (voteZxid = myZxid and voteId > mySid),
>> keep the current vote.
>> 2. Otherwise, change my vote by assigning myZxid to voteZxid and mySid to 
>> vote
>> Zxid.
>>
>> So what zk3 vote would be? I'm confused because to compare zk1 and
>> zk3, the vote on zk3 is (1,6); but to compare zk2 and zk3, zk3 should
>> keep its vote.
>>
>> So in this case, how the vote should be settled?
>>
>> Thanks.
>>
>> Eric

Reply via email to