Merge pull request #10679 from nvanbenschoten/nvanbenschoten/commitAlloc

raft: Avoid allocation when boxing slice in maybeCommit
release-3.4
Xiang Li 2019-04-30 10:55:16 -07:00 committed by GitHub
commit 0bc219a91e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 4 deletions

View File

@ -607,14 +607,14 @@ func (r *raft) maybeCommit() bool {
if cap(r.matchBuf) < len(r.prs) { if cap(r.matchBuf) < len(r.prs) {
r.matchBuf = make(uint64Slice, len(r.prs)) r.matchBuf = make(uint64Slice, len(r.prs))
} }
mis := r.matchBuf[:len(r.prs)] r.matchBuf = r.matchBuf[:len(r.prs)]
idx := 0 idx := 0
for _, p := range r.prs { for _, p := range r.prs {
mis[idx] = p.Match r.matchBuf[idx] = p.Match
idx++ idx++
} }
sort.Sort(mis) sort.Sort(&r.matchBuf)
mci := mis[len(mis)-r.quorum()] mci := r.matchBuf[len(r.matchBuf)-r.quorum()]
return r.raftLog.maybeCommit(mci, r.Term) return r.raftLog.maybeCommit(mci, r.Term)
} }