|
|
@@ -590,19 +590,16 @@ func (sm *stateMachine) setState(vote, term, commit int64) {
|
|
|
sm.unstableState.Commit = commit
|
|
|
}
|
|
|
|
|
|
-func (sm *stateMachine) load(ents []Entry, state State) {
|
|
|
- sm.loadEnts(ents)
|
|
|
- sm.loadState(state)
|
|
|
-}
|
|
|
-
|
|
|
func (sm *stateMachine) loadEnts(ents []Entry) {
|
|
|
- sm.raftLog.append(sm.raftLog.lastIndex(), ents...)
|
|
|
+ if !sm.raftLog.isEmpty() {
|
|
|
+ panic("cannot load entries when log is not empty")
|
|
|
+ }
|
|
|
+ sm.raftLog.append(0, ents...)
|
|
|
+ sm.raftLog.unstable = sm.raftLog.lastIndex() + 1
|
|
|
}
|
|
|
|
|
|
func (sm *stateMachine) loadState(state State) {
|
|
|
- sm.term.Set(state.Term)
|
|
|
- sm.vote = state.Vote
|
|
|
- sm.raftLog.unstable = state.Commit + 1
|
|
|
sm.raftLog.committed = state.Commit
|
|
|
- sm.saveState()
|
|
|
+ sm.setTerm(state.Term)
|
|
|
+ sm.setVote(state.Vote)
|
|
|
}
|