Browse Source

raft: sm.vote -> State.Vote

Blake Mizerany 11 years ago
parent
commit
f1f8fc4228
2 changed files with 5 additions and 8 deletions
  1. 4 7
      raft2/raft.go
  2. 1 1
      raft2/raft_test.go

+ 4 - 7
raft2/raft.go

@@ -141,9 +141,6 @@ type raft struct {
 	// the term we are participating in at any time
 	index atomicInt
 
-	// who we voted for in term
-	vote int64
-
 	// the log
 	raftLog *raftLog
 
@@ -191,7 +188,7 @@ func (sm *raft) String() string {
 	s := fmt.Sprintf(`state=%v term=%d`, sm.state, sm.Term)
 	switch sm.state {
 	case stateFollower:
-		s += fmt.Sprintf(" vote=%v lead=%v", sm.vote, sm.lead)
+		s += fmt.Sprintf(" vote=%v lead=%v", sm.Vote, sm.lead)
 	case stateCandidate:
 		s += fmt.Sprintf(` votes="%v"`, sm.votes)
 	case stateLeader:
@@ -494,7 +491,7 @@ func stepFollower(sm *raft, m Message) bool {
 	case msgSnap:
 		sm.handleSnapshot(m)
 	case msgVote:
-		if (sm.vote == none || sm.vote == m.From) && sm.raftLog.isUpToDate(m.Index, m.LogTerm) {
+		if (sm.Vote == none || sm.Vote == m.From) && sm.raftLog.isUpToDate(m.Index, m.LogTerm) {
 			sm.setVote(m.From)
 			sm.send(Message{To: m.From, Type: msgVoteResp, Index: sm.raftLog.lastIndex()})
 		} else {
@@ -554,7 +551,7 @@ func (sm *raft) setTerm(term int64) {
 }
 
 func (sm *raft) setVote(vote int64) {
-	sm.vote = vote
+	sm.Vote = vote
 	sm.saveState()
 }
 
@@ -572,7 +569,7 @@ func (sm *raft) deleteIns(id int64) {
 // When there is a term change, vote change or configuration change, raft
 // must call saveState.
 func (sm *raft) saveState() {
-	sm.setState(sm.vote, sm.Term, sm.raftLog.committed)
+	sm.setState(sm.Vote, sm.Term, sm.raftLog.committed)
 }
 
 func (sm *raft) clearState() {

+ 1 - 1
raft2/raft_test.go

@@ -542,7 +542,7 @@ func TestRecvMsgVote(t *testing.T) {
 	for i, tt := range tests {
 		sm := &raft{
 			state:   tt.state,
-			vote:    tt.voteFor,
+			State:   State{Vote: tt.voteFor},
 			raftLog: &raftLog{ents: []Entry{{}, {Term: 2}, {Term: 2}}},
 		}