Browse Source

etcdserver: save state before save snapshot

Xiang Li 9 years ago
parent
commit
9c78cda088
1 changed files with 7 additions and 6 deletions
  1. 7 6
      etcdserver/raft.go

+ 7 - 6
etcdserver/raft.go

@@ -216,6 +216,13 @@ func (r *raftNode) start(s *EtcdServer) {
 					r.s.send(rd.Messages)
 					r.s.send(rd.Messages)
 				}
 				}
 
 
+				if err := r.storage.Save(rd.HardState, rd.Entries); err != nil {
+					plog.Fatalf("raft save state and entries error: %v", err)
+				}
+				if !raft.IsEmptyHardState(rd.HardState) {
+					proposalsCommitted.Set(float64(rd.HardState.Commit))
+				}
+
 				if !raft.IsEmptySnap(rd.Snapshot) {
 				if !raft.IsEmptySnap(rd.Snapshot) {
 					if err := r.storage.SaveSnap(rd.Snapshot); err != nil {
 					if err := r.storage.SaveSnap(rd.Snapshot); err != nil {
 						plog.Fatalf("raft save snapshot error: %v", err)
 						plog.Fatalf("raft save snapshot error: %v", err)
@@ -223,12 +230,6 @@ func (r *raftNode) start(s *EtcdServer) {
 					r.raftStorage.ApplySnapshot(rd.Snapshot)
 					r.raftStorage.ApplySnapshot(rd.Snapshot)
 					plog.Infof("raft applied incoming snapshot at index %d", rd.Snapshot.Metadata.Index)
 					plog.Infof("raft applied incoming snapshot at index %d", rd.Snapshot.Metadata.Index)
 				}
 				}
-				if err := r.storage.Save(rd.HardState, rd.Entries); err != nil {
-					plog.Fatalf("raft save state and entries error: %v", err)
-				}
-				if !raft.IsEmptyHardState(rd.HardState) {
-					proposalsCommitted.Set(float64(rd.HardState.Commit))
-				}
 
 
 				r.raftStorage.Append(rd.Entries)
 				r.raftStorage.Append(rd.Entries)