mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcdserver: log snapshot event
This commit is contained in:
parent
fe0bc4ff36
commit
bc5acd3c42
@ -392,10 +392,11 @@ func (s *EtcdServer) run() {
|
|||||||
// apply snapshot to storage if it is more updated than current snapi
|
// apply snapshot to storage if it is more updated than current snapi
|
||||||
if !raft.IsEmptySnap(rd.Snapshot) && rd.Snapshot.Metadata.Index > snapi {
|
if !raft.IsEmptySnap(rd.Snapshot) && rd.Snapshot.Metadata.Index > snapi {
|
||||||
if err := s.storage.SaveSnap(rd.Snapshot); err != nil {
|
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)
|
s.raftStorage.ApplySnapshot(rd.Snapshot)
|
||||||
snapi = rd.Snapshot.Metadata.Index
|
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 {
|
if err := s.storage.Save(rd.HardState, rd.Entries); err != nil {
|
||||||
@ -413,6 +414,7 @@ func (s *EtcdServer) run() {
|
|||||||
}
|
}
|
||||||
s.Cluster.Recover()
|
s.Cluster.Recover()
|
||||||
appliedi = rd.Snapshot.Metadata.Index
|
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
|
// TODO(bmizerany): do this in the background, but take
|
||||||
@ -439,6 +441,7 @@ func (s *EtcdServer) run() {
|
|||||||
s.node.Advance()
|
s.node.Advance()
|
||||||
|
|
||||||
if appliedi-snapi > s.snapCount {
|
if appliedi-snapi > s.snapCount {
|
||||||
|
log.Printf("etcdserver: start to snapshot (applied: %d, lastsnap: %d)", appliedi, snapi)
|
||||||
s.snapshot(appliedi, nodes)
|
s.snapshot(appliedi, nodes)
|
||||||
snapi = appliedi
|
snapi = appliedi
|
||||||
}
|
}
|
||||||
@ -807,7 +810,7 @@ func (s *EtcdServer) snapshot(snapi uint64, snapnodes []uint64) {
|
|||||||
// TODO: current store will never fail to do a snapshot
|
// TODO: current store will never fail to do a snapshot
|
||||||
// what should we do if the store might fail?
|
// what should we do if the store might fail?
|
||||||
if err != nil {
|
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)
|
err = s.raftStorage.Compact(snapi, &raftpb.ConfState{Nodes: snapnodes}, d)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -818,17 +821,19 @@ func (s *EtcdServer) snapshot(snapi uint64, snapnodes []uint64) {
|
|||||||
}
|
}
|
||||||
log.Panicf("etcdserver: unexpected compaction error %v", err)
|
log.Panicf("etcdserver: unexpected compaction error %v", err)
|
||||||
}
|
}
|
||||||
|
log.Printf("etcdserver: compacted log at index %d", snapi)
|
||||||
|
|
||||||
if err := s.storage.Cut(); err != nil {
|
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()
|
snap, err := s.raftStorage.Snapshot()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panicf("etcdserver: snapshot error: %v", err)
|
log.Panicf("etcdserver: snapshot error: %v", err)
|
||||||
}
|
}
|
||||||
if err := s.storage.SaveSnap(snap); err != nil {
|
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,
|
// checkClientURLsEmptyFromPeers does its best to get the cluster from peers,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user