mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
raft: sm.vote -> State.Vote
This commit is contained in:
parent
40ed560e16
commit
f1f8fc4228
@ -141,9 +141,6 @@ type raft struct {
|
|||||||
// the term we are participating in at any time
|
// the term we are participating in at any time
|
||||||
index atomicInt
|
index atomicInt
|
||||||
|
|
||||||
// who we voted for in term
|
|
||||||
vote int64
|
|
||||||
|
|
||||||
// the log
|
// the log
|
||||||
raftLog *raftLog
|
raftLog *raftLog
|
||||||
|
|
||||||
@ -191,7 +188,7 @@ func (sm *raft) String() string {
|
|||||||
s := fmt.Sprintf(`state=%v term=%d`, sm.state, sm.Term)
|
s := fmt.Sprintf(`state=%v term=%d`, sm.state, sm.Term)
|
||||||
switch sm.state {
|
switch sm.state {
|
||||||
case stateFollower:
|
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:
|
case stateCandidate:
|
||||||
s += fmt.Sprintf(` votes="%v"`, sm.votes)
|
s += fmt.Sprintf(` votes="%v"`, sm.votes)
|
||||||
case stateLeader:
|
case stateLeader:
|
||||||
@ -494,7 +491,7 @@ func stepFollower(sm *raft, m Message) bool {
|
|||||||
case msgSnap:
|
case msgSnap:
|
||||||
sm.handleSnapshot(m)
|
sm.handleSnapshot(m)
|
||||||
case msgVote:
|
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.setVote(m.From)
|
||||||
sm.send(Message{To: m.From, Type: msgVoteResp, Index: sm.raftLog.lastIndex()})
|
sm.send(Message{To: m.From, Type: msgVoteResp, Index: sm.raftLog.lastIndex()})
|
||||||
} else {
|
} else {
|
||||||
@ -554,7 +551,7 @@ func (sm *raft) setTerm(term int64) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (sm *raft) setVote(vote int64) {
|
func (sm *raft) setVote(vote int64) {
|
||||||
sm.vote = vote
|
sm.Vote = vote
|
||||||
sm.saveState()
|
sm.saveState()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -572,7 +569,7 @@ func (sm *raft) deleteIns(id int64) {
|
|||||||
// When there is a term change, vote change or configuration change, raft
|
// When there is a term change, vote change or configuration change, raft
|
||||||
// must call saveState.
|
// must call saveState.
|
||||||
func (sm *raft) 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() {
|
func (sm *raft) clearState() {
|
||||||
|
@ -542,7 +542,7 @@ func TestRecvMsgVote(t *testing.T) {
|
|||||||
for i, tt := range tests {
|
for i, tt := range tests {
|
||||||
sm := &raft{
|
sm := &raft{
|
||||||
state: tt.state,
|
state: tt.state,
|
||||||
vote: tt.voteFor,
|
State: State{Vote: tt.voteFor},
|
||||||
raftLog: &raftLog{ents: []Entry{{}, {Term: 2}, {Term: 2}}},
|
raftLog: &raftLog{ents: []Entry{{}, {Term: 2}, {Term: 2}}},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user