diff --git a/raft2/raft.go b/raft2/raft.go index 69d837563..eeee46b57 100644 --- a/raft2/raft.go +++ b/raft2/raft.go @@ -272,9 +272,9 @@ func (r *raft) nextEnts() (ents []Entry) { } func (r *raft) reset(term int64) { - r.setTerm(term) + r.Term = term r.lead.Set(none) - r.setVote(none) + r.Vote = none r.votes = make(map[int64]bool) for i := range r.prs { r.prs[i] = &progress{next: r.raftLog.lastIndex() + 1} @@ -309,7 +309,7 @@ func (r *raft) becomeCandidate() { panic("invalid transition [leader -> candidate]") } r.reset(r.Term + 1) - r.setVote(r.id) + r.Vote = r.id r.state = stateCandidate } @@ -476,7 +476,7 @@ func stepFollower(r *raft, m Message) { r.handleSnapshot(m) case msgVote: if (r.Vote == none || r.Vote == m.From) && r.raftLog.isUpToDate(m.Index, m.LogTerm) { - r.setVote(m.From) + r.Vote = m.From r.send(Message{To: m.From, Type: msgVoteResp, Index: r.raftLog.lastIndex()}) } else { r.send(Message{To: m.From, Type: msgVoteResp, Index: -1}) @@ -528,37 +528,12 @@ func (r *raft) nodes() []int64 { return nodes } -func (r *raft) setTerm(term int64) { - r.Term = term - r.saveState() -} - -func (r *raft) setVote(vote int64) { - r.Vote = vote - r.saveState() -} - func (r *raft) addIns(id, match, next int64) { r.prs[id] = &progress{next: next, match: match} - r.saveState() } func (r *raft) deleteIns(id int64) { delete(r.prs, id) - r.saveState() -} - -// saveState saves the state to r.State -// When there is a term change, vote change or configuration change, raft -// must call saveState. -func (r *raft) saveState() { - r.setState(r.Vote, r.Term, r.raftLog.committed) -} - -func (r *raft) setState(vote, term, commit int64) { - r.Vote = vote - r.Term = term - r.Commit = commit } func (r *raft) loadEnts(ents []Entry) { @@ -571,8 +546,8 @@ func (r *raft) loadEnts(ents []Entry) { func (r *raft) loadState(state State) { r.raftLog.committed = state.Commit - r.setTerm(state.Term) - r.setVote(state.Vote) + r.Term = state.Term + r.Vote = state.Vote } func (s *State) IsEmpty() bool {