During a network partition between Node A and B Can node B increase its term so much that when the partition ends - it becomes the leader even though its actual log is behind node A ?
On Wed, Jun 21, 2023 at 1:14 PM Tsz Wo Sze <[email protected]> wrote: > Hi Asad, > > You are right that, after the new node B joined the group, B could > update the term and then become the leader. When the old leader A joins > the new leader B, A will truncate the uncommitted transactions. > > Tsz-Wo > > On Wed, Jun 21, 2023 at 11:20 PM Asad Awadia <[email protected]> wrote: > >> 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? >>>> >>>
