From bee9d8bea527f5618a6b2667ad115b7332560064 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Wed, 28 May 2014 08:41:52 -0700 Subject: [PATCH] raft: add log.maybeAppend --- raft/log.go | 3 ++- raft/raft.go | 4 +--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/raft/log.go b/raft/log.go index f59c73eec..446726664 100644 --- a/raft/log.go +++ b/raft/log.go @@ -19,9 +19,10 @@ func newLog() *log { } } -func (l *log) maybeAppend(index, logTerm int, ents ...Entry) bool { +func (l *log) maybeAppend(index, logTerm, commit int, ents ...Entry) bool { if l.matchTerm(index, logTerm) { l.append(index, ents...) + l.commit = commit return true } return false diff --git a/raft/raft.go b/raft/raft.go index ee592b29c..8fb1aa5dd 100644 --- a/raft/raft.go +++ b/raft/raft.go @@ -263,9 +263,7 @@ func (sm *stateMachine) Step(m Message) { } handleAppendEntries := func() { - if sm.log.matchTerm(m.Index, m.LogTerm) { - sm.log.commit = m.Commit - sm.log.append(m.Index, m.Entries...) + if sm.log.maybeAppend(m.Index, m.LogTerm, m.Commit, m.Entries...) { sm.send(Message{To: m.From, Type: msgAppResp, Index: sm.log.lastIndex()}) } else { sm.send(Message{To: m.From, Type: msgAppResp, Index: -1})