etcdserver: save snapshot only if the index is greater than previous snap index

release-2.0
Xiang Li 2014-11-24 14:28:13 -08:00
parent 4b7af29c37
commit 453133977d
1 changed files with 2 additions and 1 deletions

View File

@ -395,10 +395,11 @@ func (s *EtcdServer) run() {
if err := s.storage.Save(rd.HardState, rd.Entries); err != nil {
log.Fatalf("etcdserver: save state and entries error: %v", err)
}
if !raft.IsEmptySnap(rd.Snapshot) {
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)
}
snapi = rd.Snapshot.Metadata.Index
}
s.sendhub.Send(rd.Messages)