mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
raft: Always call bcastAppend after maybeCommit
This commit is contained in:
parent
8199147cf8
commit
0771d713e6
@ -360,6 +360,9 @@ func (r *raft) bcastHeartbeat() {
|
||||
}
|
||||
}
|
||||
|
||||
// maybeCommit attempts to advance the commit index. Returns true if
|
||||
// the commit index changed (in which case the caller should call
|
||||
// r.bcastAppend).
|
||||
func (r *raft) maybeCommit() bool {
|
||||
// TODO(bmizerany): optimize.. Currently naive
|
||||
mis := make(uint64Slice, 0, len(r.prs))
|
||||
@ -399,6 +402,7 @@ func (r *raft) appendEntry(es ...pb.Entry) {
|
||||
}
|
||||
r.raftLog.append(es...)
|
||||
r.prs[r.id].maybeUpdate(r.raftLog.lastIndex())
|
||||
// Regardless of maybeCommit's return, our caller will call bcastAppend.
|
||||
r.maybeCommit()
|
||||
}
|
||||
|
||||
@ -828,7 +832,9 @@ func (r *raft) removeNode(id uint64) {
|
||||
r.pendingConf = false
|
||||
// The quorum size is now smaller, so see if any pending entries can
|
||||
// be committed.
|
||||
r.maybeCommit()
|
||||
if r.maybeCommit() {
|
||||
r.bcastAppend()
|
||||
}
|
||||
}
|
||||
|
||||
func (r *raft) resetPendingConf() { r.pendingConf = false }
|
||||
|
Loading…
x
Reference in New Issue
Block a user