Skip to content

Commit

Permalink
raft: send commit index eagerly and only if necessary
Browse files Browse the repository at this point in the history
Signed-off-by: Pavel Kalinnikov <[email protected]>
  • Loading branch information
pav-kv committed Jan 24, 2024
1 parent c9ea2f0 commit 39e2f1c
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 70 deletions.
9 changes: 3 additions & 6 deletions raft.go
Original file line number Diff line number Diff line change
Expand Up @@ -1465,8 +1465,8 @@ func stepLeader(r *raft, m pb.Message) error {
r.sendAppend(m.From)
}
} else {
pr.UpdateCommit(m.Commit)
oldPaused := pr.IsPaused()
pr.UpdateCommit(m.Commit)
// We want to update our tracking if the response updates our
// matched index or if the response can move a probing peer back
// into StateReplicate (see heartbeat_rep_recovers_from_probing.txt
Expand Down Expand Up @@ -1500,11 +1500,8 @@ func stepLeader(r *raft, m pb.Message) error {
// to respond to pending read index requests
releasePendingReadIndexMessages(r)
r.bcastAppend()
} else if oldPaused {
// If we were paused before, this node may be missing the
// latest commit index, so send it.
// TODO(pav-kv): remove this branch, and decide on sending the commit
// index update based on pr.Commit.
} else if oldPaused && r.id != m.From && pr.Commit < r.raftLog.committed {
// This node is missing the latest commit index, send it.
r.sendAppend(m.From)
}
// We've updated flow control information above, which may
Expand Down
4 changes: 0 additions & 4 deletions testdata/confchange_v2_replace_leader.txt
Original file line number Diff line number Diff line change
Expand Up @@ -282,12 +282,10 @@ stabilize
CommittedEntries:
2/5 EntryNormal ""
Messages:
4->1 MsgApp Term:2 Log:2/5 Commit:4
4->1 MsgApp Term:2 Log:2/5 Commit:5
4->2 MsgApp Term:2 Log:2/5 Commit:5
4->3 MsgApp Term:2 Log:2/5 Commit:5
> 1 receiving messages
4->1 MsgApp Term:2 Log:2/5 Commit:4
4->1 MsgApp Term:2 Log:2/5 Commit:5
> 2 receiving messages
4->2 MsgApp Term:2 Log:2/5 Commit:5
Expand All @@ -299,7 +297,6 @@ stabilize
CommittedEntries:
2/5 EntryNormal ""
Messages:
1->4 MsgAppResp Term:2 Log:0/5 Commit:4
1->4 MsgAppResp Term:2 Log:0/5 Commit:5
> 2 handling Ready
Ready MustSync=false:
Expand All @@ -316,7 +313,6 @@ stabilize
Messages:
3->4 MsgAppResp Term:2 Log:0/5 Commit:5
> 4 receiving messages
1->4 MsgAppResp Term:2 Log:0/5 Commit:4
1->4 MsgAppResp Term:2 Log:0/5 Commit:5
2->4 MsgAppResp Term:2 Log:0/5 Commit:5
3->4 MsgAppResp Term:2 Log:0/5 Commit:5
Expand Down
60 changes: 0 additions & 60 deletions testdata/probe_and_replicate.txt
Original file line number Diff line number Diff line change
Expand Up @@ -507,18 +507,6 @@ stabilize 1 2
2->1 MsgAppResp Term:8 Log:0/21 Commit:18
> 1 receiving messages
2->1 MsgAppResp Term:8 Log:0/21 Commit:18
> 1 handling Ready
Ready MustSync=false:
Messages:
1->2 MsgApp Term:8 Log:8/21 Commit:18
> 2 receiving messages
1->2 MsgApp Term:8 Log:8/21 Commit:18
> 2 handling Ready
Ready MustSync=false:
Messages:
2->1 MsgAppResp Term:8 Log:0/21 Commit:18
> 1 receiving messages
2->1 MsgAppResp Term:8 Log:0/21 Commit:18

stabilize 1 3
----
Expand Down Expand Up @@ -557,18 +545,6 @@ stabilize 1 3
3->1 MsgAppResp Term:8 Log:0/21 Commit:18
> 1 receiving messages
3->1 MsgAppResp Term:8 Log:0/21 Commit:18
> 1 handling Ready
Ready MustSync=false:
Messages:
1->3 MsgApp Term:8 Log:8/21 Commit:18
> 3 receiving messages
1->3 MsgApp Term:8 Log:8/21 Commit:18
> 3 handling Ready
Ready MustSync=false:
Messages:
3->1 MsgAppResp Term:8 Log:0/21 Commit:18
> 1 receiving messages
3->1 MsgAppResp Term:8 Log:0/21 Commit:18

stabilize 1 4
----
Expand Down Expand Up @@ -644,18 +620,6 @@ stabilize 1 5
5->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 receiving messages
5->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 handling Ready
Ready MustSync=false:
Messages:
1->5 MsgApp Term:8 Log:8/21 Commit:21
> 5 receiving messages
1->5 MsgApp Term:8 Log:8/21 Commit:21
> 5 handling Ready
Ready MustSync=false:
Messages:
5->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 receiving messages
5->1 MsgAppResp Term:8 Log:0/21 Commit:21

stabilize 1 6
----
Expand Down Expand Up @@ -697,18 +661,6 @@ stabilize 1 6
6->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 receiving messages
6->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 handling Ready
Ready MustSync=false:
Messages:
1->6 MsgApp Term:8 Log:8/21 Commit:21
> 6 receiving messages
1->6 MsgApp Term:8 Log:8/21 Commit:21
> 6 handling Ready
Ready MustSync=false:
Messages:
6->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 receiving messages
6->1 MsgAppResp Term:8 Log:0/21 Commit:21

stabilize 1 7
----
Expand Down Expand Up @@ -754,15 +706,3 @@ stabilize 1 7
7->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 receiving messages
7->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 handling Ready
Ready MustSync=false:
Messages:
1->7 MsgApp Term:8 Log:8/21 Commit:21
> 7 receiving messages
1->7 MsgApp Term:8 Log:8/21 Commit:21
> 7 handling Ready
Ready MustSync=false:
Messages:
7->1 MsgAppResp Term:8 Log:0/21 Commit:21
> 1 receiving messages
7->1 MsgAppResp Term:8 Log:0/21 Commit:21

0 comments on commit 39e2f1c

Please sign in to comment.