Skip to content

Commit 196927d

Browse files
committed
raft: send commit index only if necessary
Signed-off-by: Pavel Kalinnikov <[email protected]>
1 parent e23d5b0 commit 196927d

File tree

3 files changed

+3
-70
lines changed

3 files changed

+3
-70
lines changed

raft.go

+3-6
Original file line numberDiff line numberDiff line change
@@ -1465,8 +1465,8 @@ func stepLeader(r *raft, m pb.Message) error {
14651465
r.sendAppend(m.From)
14661466
}
14671467
} else {
1468-
pr.UpdateCommit(m.Commit)
14691468
oldPaused := pr.IsPaused()
1469+
pr.UpdateCommit(m.Commit)
14701470
// We want to update our tracking if the response updates our
14711471
// matched index or if the response can move a probing peer back
14721472
// into StateReplicate (see heartbeat_rep_recovers_from_probing.txt
@@ -1503,11 +1503,8 @@ func stepLeader(r *raft, m pb.Message) error {
15031503
// to respond to pending read index requests
15041504
releasePendingReadIndexMessages(r)
15051505
r.bcastAppend()
1506-
} else if oldPaused {
1507-
// If we were paused before, this node may be missing the
1508-
// latest commit index, so send it.
1509-
// TODO(pav-kv): remove this branch, and decide on sending the commit
1510-
// index update based on pr.Commit.
1506+
} else if oldPaused && r.id != m.From && pr.Commit < r.raftLog.committed {
1507+
// The node is potentially missing the latest commit index. Send it.
15111508
r.sendAppend(m.From)
15121509
}
15131510
// We've updated flow control information above, which may

testdata/confchange_v2_replace_leader.txt

-4
Original file line numberDiff line numberDiff line change
@@ -282,12 +282,10 @@ stabilize
282282
CommittedEntries:
283283
2/5 EntryNormal ""
284284
Messages:
285-
4->1 MsgApp Term:2 Log:2/5 Commit:4
286285
4->1 MsgApp Term:2 Log:2/5 Commit:5
287286
4->2 MsgApp Term:2 Log:2/5 Commit:5
288287
4->3 MsgApp Term:2 Log:2/5 Commit:5
289288
> 1 receiving messages
290-
4->1 MsgApp Term:2 Log:2/5 Commit:4
291289
4->1 MsgApp Term:2 Log:2/5 Commit:5
292290
> 2 receiving messages
293291
4->2 MsgApp Term:2 Log:2/5 Commit:5
@@ -299,7 +297,6 @@ stabilize
299297
CommittedEntries:
300298
2/5 EntryNormal ""
301299
Messages:
302-
1->4 MsgAppResp Term:2 Log:0/5 Commit:4
303300
1->4 MsgAppResp Term:2 Log:0/5 Commit:5
304301
> 2 handling Ready
305302
Ready MustSync=false:
@@ -316,7 +313,6 @@ stabilize
316313
Messages:
317314
3->4 MsgAppResp Term:2 Log:0/5 Commit:5
318315
> 4 receiving messages
319-
1->4 MsgAppResp Term:2 Log:0/5 Commit:4
320316
1->4 MsgAppResp Term:2 Log:0/5 Commit:5
321317
2->4 MsgAppResp Term:2 Log:0/5 Commit:5
322318
3->4 MsgAppResp Term:2 Log:0/5 Commit:5

testdata/probe_and_replicate.txt

-60
Original file line numberDiff line numberDiff line change
@@ -507,18 +507,6 @@ stabilize 1 2
507507
2->1 MsgAppResp Term:8 Log:0/21 Commit:18
508508
> 1 receiving messages
509509
2->1 MsgAppResp Term:8 Log:0/21 Commit:18
510-
> 1 handling Ready
511-
Ready MustSync=false:
512-
Messages:
513-
1->2 MsgApp Term:8 Log:8/21 Commit:18
514-
> 2 receiving messages
515-
1->2 MsgApp Term:8 Log:8/21 Commit:18
516-
> 2 handling Ready
517-
Ready MustSync=false:
518-
Messages:
519-
2->1 MsgAppResp Term:8 Log:0/21 Commit:18
520-
> 1 receiving messages
521-
2->1 MsgAppResp Term:8 Log:0/21 Commit:18
522510

523511
stabilize 1 3
524512
----
@@ -557,18 +545,6 @@ stabilize 1 3
557545
3->1 MsgAppResp Term:8 Log:0/21 Commit:18
558546
> 1 receiving messages
559547
3->1 MsgAppResp Term:8 Log:0/21 Commit:18
560-
> 1 handling Ready
561-
Ready MustSync=false:
562-
Messages:
563-
1->3 MsgApp Term:8 Log:8/21 Commit:18
564-
> 3 receiving messages
565-
1->3 MsgApp Term:8 Log:8/21 Commit:18
566-
> 3 handling Ready
567-
Ready MustSync=false:
568-
Messages:
569-
3->1 MsgAppResp Term:8 Log:0/21 Commit:18
570-
> 1 receiving messages
571-
3->1 MsgAppResp Term:8 Log:0/21 Commit:18
572548

573549
stabilize 1 4
574550
----
@@ -644,18 +620,6 @@ stabilize 1 5
644620
5->1 MsgAppResp Term:8 Log:0/21 Commit:21
645621
> 1 receiving messages
646622
5->1 MsgAppResp Term:8 Log:0/21 Commit:21
647-
> 1 handling Ready
648-
Ready MustSync=false:
649-
Messages:
650-
1->5 MsgApp Term:8 Log:8/21 Commit:21
651-
> 5 receiving messages
652-
1->5 MsgApp Term:8 Log:8/21 Commit:21
653-
> 5 handling Ready
654-
Ready MustSync=false:
655-
Messages:
656-
5->1 MsgAppResp Term:8 Log:0/21 Commit:21
657-
> 1 receiving messages
658-
5->1 MsgAppResp Term:8 Log:0/21 Commit:21
659623

660624
stabilize 1 6
661625
----
@@ -697,18 +661,6 @@ stabilize 1 6
697661
6->1 MsgAppResp Term:8 Log:0/21 Commit:21
698662
> 1 receiving messages
699663
6->1 MsgAppResp Term:8 Log:0/21 Commit:21
700-
> 1 handling Ready
701-
Ready MustSync=false:
702-
Messages:
703-
1->6 MsgApp Term:8 Log:8/21 Commit:21
704-
> 6 receiving messages
705-
1->6 MsgApp Term:8 Log:8/21 Commit:21
706-
> 6 handling Ready
707-
Ready MustSync=false:
708-
Messages:
709-
6->1 MsgAppResp Term:8 Log:0/21 Commit:21
710-
> 1 receiving messages
711-
6->1 MsgAppResp Term:8 Log:0/21 Commit:21
712664

713665
stabilize 1 7
714666
----
@@ -754,15 +706,3 @@ stabilize 1 7
754706
7->1 MsgAppResp Term:8 Log:0/21 Commit:21
755707
> 1 receiving messages
756708
7->1 MsgAppResp Term:8 Log:0/21 Commit:21
757-
> 1 handling Ready
758-
Ready MustSync=false:
759-
Messages:
760-
1->7 MsgApp Term:8 Log:8/21 Commit:21
761-
> 7 receiving messages
762-
1->7 MsgApp Term:8 Log:8/21 Commit:21
763-
> 7 handling Ready
764-
Ready MustSync=false:
765-
Messages:
766-
7->1 MsgAppResp Term:8 Log:0/21 Commit:21
767-
> 1 receiving messages
768-
7->1 MsgAppResp Term:8 Log:0/21 Commit:21

0 commit comments

Comments
 (0)