raft: isStateEqual -> isHardStateEqual, IsEmptyState -> IsEmptyHardState
parent
023dc7cba2
commit
de21c39ca5
|
@ -19,7 +19,7 @@ func Example_Node() {
|
||||||
for {
|
for {
|
||||||
// ReadState blocks until there is new state ready.
|
// ReadState blocks until there is new state ready.
|
||||||
rd := <-n.Ready()
|
rd := <-n.Ready()
|
||||||
if !isStateEqual(prev, rd.HardState) {
|
if !isHardStateEqual(prev, rd.HardState) {
|
||||||
saveStateToDisk(rd.HardState)
|
saveStateToDisk(rd.HardState)
|
||||||
prev = rd.HardState
|
prev = rd.HardState
|
||||||
}
|
}
|
||||||
|
|
12
raft/node.go
12
raft/node.go
|
@ -52,16 +52,16 @@ type Ready struct {
|
||||||
Messages []pb.Message
|
Messages []pb.Message
|
||||||
}
|
}
|
||||||
|
|
||||||
func isStateEqual(a, b pb.HardState) bool {
|
func isHardStateEqual(a, b pb.HardState) bool {
|
||||||
return a.Term == b.Term && a.Vote == b.Vote && a.Commit == b.Commit
|
return a.Term == b.Term && a.Vote == b.Vote && a.Commit == b.Commit
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsEmptyState(st pb.HardState) bool {
|
func IsEmptyHardState(st pb.HardState) bool {
|
||||||
return isStateEqual(st, emptyState)
|
return isHardStateEqual(st, emptyState)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rd Ready) containsUpdates() bool {
|
func (rd Ready) containsUpdates() bool {
|
||||||
return rd.SoftState != nil || !IsEmptyState(rd.HardState) || len(rd.Entries) > 0 || len(rd.CommittedEntries) > 0 || len(rd.Messages) > 0
|
return rd.SoftState != nil || !IsEmptyHardState(rd.HardState) || len(rd.Entries) > 0 || len(rd.CommittedEntries) > 0 || len(rd.Messages) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
type Node struct {
|
type Node struct {
|
||||||
|
@ -145,7 +145,7 @@ func (n *Node) run(r *raft) {
|
||||||
if rd.SoftState != nil {
|
if rd.SoftState != nil {
|
||||||
prevSoftSt = rd.SoftState
|
prevSoftSt = rd.SoftState
|
||||||
}
|
}
|
||||||
if !IsEmptyState(rd.HardState) {
|
if !IsEmptyHardState(rd.HardState) {
|
||||||
prevHardSt = rd.HardState
|
prevHardSt = rd.HardState
|
||||||
}
|
}
|
||||||
r.raftLog.resetNextEnts()
|
r.raftLog.resetNextEnts()
|
||||||
|
@ -207,7 +207,7 @@ func newReady(r *raft, prevSoftSt *SoftState, prevHardSt pb.HardState) Ready {
|
||||||
if softSt := r.softState(); !softSt.equal(prevSoftSt) {
|
if softSt := r.softState(); !softSt.equal(prevSoftSt) {
|
||||||
rd.SoftState = softSt
|
rd.SoftState = softSt
|
||||||
}
|
}
|
||||||
if !isStateEqual(r.HardState, prevHardSt) {
|
if !isHardStateEqual(r.HardState, prevHardSt) {
|
||||||
rd.HardState = r.HardState
|
rd.HardState = r.HardState
|
||||||
}
|
}
|
||||||
return rd
|
return rd
|
||||||
|
|
|
@ -209,8 +209,8 @@ func TestIsStateEqual(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, tt := range tests {
|
for i, tt := range tests {
|
||||||
if isStateEqual(tt.st, emptyState) != tt.we {
|
if isHardStateEqual(tt.st, emptyState) != tt.we {
|
||||||
t.Errorf("#%d, equal = %v, want %v", i, isStateEqual(tt.st, emptyState), tt.we)
|
t.Errorf("#%d, equal = %v, want %v", i, isHardStateEqual(tt.st, emptyState), tt.we)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -265,7 +265,7 @@ func (w *WAL) SaveEntry(e *raftpb.Entry) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *WAL) SaveState(s *raftpb.HardState) error {
|
func (w *WAL) SaveState(s *raftpb.HardState) error {
|
||||||
if raft.IsEmptyState(*s) {
|
if raft.IsEmptyHardState(*s) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
log.Printf("path=%s wal.saveState state=\"%+v\"", w.f.Name(), s)
|
log.Printf("path=%s wal.saveState state=\"%+v\"", w.f.Name(), s)
|
||||||
|
|
Loading…
Reference in New Issue