mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #13929 from wyrobnik/raftexample-snap-pre-hard-state
contrib/raftexample: Save snapshot and WAL before hard state
This commit is contained in:
commit
d888118171
@ -449,9 +449,13 @@ func (rc *raftNode) serveChannels() {
|
||||
|
||||
// store raft entries to wal, then publish over commit channel
|
||||
case rd := <-rc.node.Ready():
|
||||
rc.wal.Save(rd.HardState, rd.Entries)
|
||||
// Must save the snapshot file and WAL snapshot entry before saving any other entries
|
||||
// or hardstate to ensure that recovery after a snapshot restore is possible.
|
||||
if !raft.IsEmptySnap(rd.Snapshot) {
|
||||
rc.saveSnap(rd.Snapshot)
|
||||
}
|
||||
rc.wal.Save(rd.HardState, rd.Entries)
|
||||
if !raft.IsEmptySnap(rd.Snapshot) {
|
||||
rc.raftStorage.ApplySnapshot(rd.Snapshot)
|
||||
rc.publishSnapshot(rd.Snapshot)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user