Browse Source

raft: rename log.len to log.lastIndex

Xiang Li 11 years ago
parent
commit
092461d7c8
2 changed files with 11 additions and 15 deletions
  1. 6 6
      raft/log.go
  2. 5 9
      raft/raft.go

+ 6 - 6
raft/log.go

@@ -32,19 +32,19 @@ func (l *log) append(after int, ents ...Entry) int {
 	return len(l.ents) - 1
 }
 
-func (l *log) len() int {
+func (l *log) lastIndex() int {
 	return len(l.ents) - 1
 }
 
 func (l *log) term(i int) int {
-	if i > l.len() {
+	if i > l.lastIndex() {
 		return -1
 	}
 	return l.ents[i].Term
 }
 
 func (l *log) entries(i int) []Entry {
-	if i > l.len() {
+	if i > l.lastIndex() {
 		return nil
 	}
 	return l.ents[i:]
@@ -54,12 +54,12 @@ func (l *log) isUpToDate(i, term int) bool {
 	// LET upToDate == \/ m.mlastLogTerm > LastTerm(log[i])
 	//              \/ /\ m.mlastLogTerm = LastTerm(log[i])
 	//                 /\ m.mlastLogIndex >= Len(log[i])
-	e := l.ents[l.len()]
-	return term > e.Term || (term == e.Term && i >= l.len())
+	e := l.ents[l.lastIndex()]
+	return term > e.Term || (term == e.Term && i >= l.lastIndex())
 }
 
 func (l *log) matchTerm(i, term int) bool {
-	if i > l.len() {
+	if i > l.lastIndex() {
 		return false
 	}
 	return l.ents[i].Term == term

+ 5 - 9
raft/raft.go

@@ -185,7 +185,7 @@ func (sm *stateMachine) reset() {
 	sm.votes = make(map[int]bool)
 	sm.ins = make([]*index, sm.k)
 	for i := range sm.ins {
-		sm.ins[i] = &index{next: sm.log.len() + 1}
+		sm.ins[i] = &index{next: sm.log.lastIndex() + 1}
 	}
 }
 
@@ -197,10 +197,6 @@ func (sm *stateMachine) voteWorthy(i, term int) bool {
 	return sm.log.isUpToDate(i, term)
 }
 
-func (sm *stateMachine) li() int {
-	return sm.log.len()
-}
-
 func (sm *stateMachine) becomeFollower(term, lead int) {
 	sm.reset()
 	sm.term = term
@@ -245,14 +241,14 @@ func (sm *stateMachine) Step(m Message) {
 			if i == sm.addr {
 				continue
 			}
-			lasti := sm.li()
+			lasti := sm.log.lastIndex()
 			sm.send(Message{To: i, Type: msgVote, Index: lasti, LogTerm: sm.log.term(lasti)})
 		}
 		return
 	case msgProp:
 		switch sm.lead {
 		case sm.addr:
-			sm.log.append(sm.log.len(), Entry{Term: sm.term, Data: m.Data})
+			sm.log.append(sm.log.lastIndex(), Entry{Term: sm.term, Data: m.Data})
 			sm.sendAppend()
 		case none:
 			panic("msgProp given without leader")
@@ -275,7 +271,7 @@ func (sm *stateMachine) Step(m Message) {
 		if sm.log.matchTerm(m.Index, m.LogTerm) {
 			sm.log.commit = m.Commit
 			sm.log.append(m.Index, m.Entries...)
-			sm.send(Message{To: m.From, Type: msgAppResp, Index: sm.li()})
+			sm.send(Message{To: m.From, Type: msgAppResp, Index: sm.log.lastIndex()})
 		} else {
 			sm.send(Message{To: m.From, Type: msgAppResp, Index: -1})
 		}
@@ -317,7 +313,7 @@ func (sm *stateMachine) Step(m Message) {
 			handleAppendEntries()
 		case msgVote:
 			if sm.voteWorthy(m.Index, m.LogTerm) {
-				sm.send(Message{To: m.From, Type: msgVoteResp, Index: sm.li()})
+				sm.send(Message{To: m.From, Type: msgVoteResp, Index: sm.log.lastIndex()})
 			} else {
 				sm.send(Message{To: m.From, Type: msgVoteResp, Index: -1})
 			}