소스 검색

Merge pull request #1813 from xiang90/snap_event_log

etcdserver: log snapshot event
Xiang Li 11 년 전
부모
커밋
7c47decd19
1개의 변경된 파일9개의 추가작업 그리고 4개의 파일을 삭제
  1. 9 4
      etcdserver/server.go

+ 9 - 4
etcdserver/server.go

@@ -392,10 +392,11 @@ func (s *EtcdServer) run() {
 			// apply snapshot to storage if it is more updated than current snapi
 			if !raft.IsEmptySnap(rd.Snapshot) && rd.Snapshot.Metadata.Index > snapi {
 				if err := s.storage.SaveSnap(rd.Snapshot); err != nil {
-					log.Fatalf("etcdserver: create snapshot error: %v", err)
+					log.Fatalf("etcdserver: save snapshot error: %v", err)
 				}
 				s.raftStorage.ApplySnapshot(rd.Snapshot)
 				snapi = rd.Snapshot.Metadata.Index
+				log.Printf("etcdserver: saved incoming snapshot at index %d", snapi)
 			}
 
 			if err := s.storage.Save(rd.HardState, rd.Entries); err != nil {
@@ -413,6 +414,7 @@ func (s *EtcdServer) run() {
 					}
 					s.Cluster.Recover()
 					appliedi = rd.Snapshot.Metadata.Index
+					log.Printf("etcdserver: recovered from incoming snapshot at index %d", snapi)
 				}
 			}
 			// TODO(bmizerany): do this in the background, but take
@@ -439,6 +441,7 @@ func (s *EtcdServer) run() {
 			s.node.Advance()
 
 			if appliedi-snapi > s.snapCount {
+				log.Printf("etcdserver: start to snapshot (applied: %d, lastsnap: %d)", appliedi, snapi)
 				s.snapshot(appliedi, nodes)
 				snapi = appliedi
 			}
@@ -807,7 +810,7 @@ func (s *EtcdServer) snapshot(snapi uint64, snapnodes []uint64) {
 	// TODO: current store will never fail to do a snapshot
 	// what should we do if the store might fail?
 	if err != nil {
-		log.Panicf("store save should never fail: %v", err)
+		log.Panicf("etcdserver: store save should never fail: %v", err)
 	}
 	err = s.raftStorage.Compact(snapi, &raftpb.ConfState{Nodes: snapnodes}, d)
 	if err != nil {
@@ -818,17 +821,19 @@ func (s *EtcdServer) snapshot(snapi uint64, snapnodes []uint64) {
 		}
 		log.Panicf("etcdserver: unexpected compaction error %v", err)
 	}
+	log.Printf("etcdserver: compacted log at index %d", snapi)
 
 	if err := s.storage.Cut(); err != nil {
-		log.Panicf("rotate wal file should never fail: %v", err)
+		log.Panicf("etcdserver: rotate wal file should never fail: %v", err)
 	}
 	snap, err := s.raftStorage.Snapshot()
 	if err != nil {
 		log.Panicf("etcdserver: snapshot error: %v", err)
 	}
 	if err := s.storage.SaveSnap(snap); err != nil {
-		log.Fatalf("etcdserver: create snapshot error: %v", err)
+		log.Fatalf("etcdserver: save snapshot error: %v", err)
 	}
+	log.Printf("etcdserver: saved snapshot at index %d", snap.Metadata.Index)
 }
 
 // checkClientURLsEmptyFromPeers does its best to get the cluster from peers,