Is it possible for the new node to somehow have a higher term counter but
lower log id and thus then it becomes the leader?

On Tue, Jun 20, 2023, 11:03 p.m. Tsz Wo Sze <[email protected]> wrote:

> > If the new node goes down and comes back up is it possible it can become
> the leader even though it has less transactions  than the existing node?
>
> No, it cannot become the leader since the other node won't vote for it.
>
> > ... is there a guarentee that always the node that has the highest
> transaction id will be elected the leader?
>
> For two nodes, yes.  A vote is granted only if the candidate has an equal
> or higher transaction index.  The node with a higher index won't vote for
> the other node.
>
> A group with two nodes means that any transactions must be replicated to
> both nodes before it is committed.  The other node could become the leader
> only if they both have the same transaction index.
>
> For more than two nodes, the node with the highest transaction index is
> not necessarily elected the leader -- A previous leader may have extra
> uncommitted transactions.  In the next election, any node with a
> transaction index higher or equal than the majority of the nodes can become
> the leader since the nodes with a lower or equal index will vote for it.
> In such a case, the previous leader will truncate the uncommitted
> transactions when it joins the new leader.
>
> Thanks for your questions!
>
> Tsz-Wo
>
>
> On Tue, Jun 20, 2023 at 11:45 PM Asad Awadia <[email protected]> wrote:
>
>> A big part of raft is running an odd number of servers
>>
>> But we are scaling nodes 1 at a time and there are a lot of times where
>> we have only 2 nodes in the cluster
>>
>> If the new node goes down and comes back up is it possible it can become
>> the leader even though it has less transactions  than the existing node?
>>
>> Since there are only 2 nodes - is there a guarentee that always the node
>> that has the highest transaction id will be elected the leader?
>>
>> We are seeing
>> 0. Exisiting 1 node cluster with node 1 as the leader
>> 1. New node 2 gets added
>> 2. Node 1 and 2 are healthy
>> 3. Node 2 goes down
>> 4. Node 1 is in candidate state
>> 5. Node 2 comes back
>> 6.  Node 2 becomes leader
>>
>> Shouldn't node 1 be always the leader?
>>
>

Reply via email to