From c303272f5db652a8a36e2120d6046fad342ad968 Mon Sep 17 00:00:00 2001 From: Connor1996 Date: Thu, 23 Apr 2020 17:04:19 +0800 Subject: [PATCH] add snapshot data unmarshal Signed-off-by: Connor1996 --- kv/raftstore/peer_storage.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kv/raftstore/peer_storage.go b/kv/raftstore/peer_storage.go index 0ddc7a68..cd8c9594 100644 --- a/kv/raftstore/peer_storage.go +++ b/kv/raftstore/peer_storage.go @@ -311,6 +311,12 @@ func (ps *PeerStorage) Append(entries []eraftpb.Entry, raftWB *engine_util.Write // Apply the peer with given snapshot func (ps *PeerStorage) ApplySnapshot(snapshot *eraftpb.Snapshot, kvWB *engine_util.WriteBatch, raftWB *engine_util.WriteBatch) (*ApplySnapResult, error) { + log.Infof("%v begin to apply snapshot", ps.Tag) + snapData := new(rspb.RaftSnapshotData) + if err := snapData.Unmarshal(snapshot.Data); err != nil { + return nil, err + } + // Hint: things need to do here including: update peer storage state like raftState and applyState, etc, // and send RegionTaskApply task to region worker through ps.regionSched, also remember call ps.clearMeta // and ps.clearExtraData to delete stale data @@ -322,7 +328,7 @@ func (ps *PeerStorage) ApplySnapshot(snapshot *eraftpb.Snapshot, kvWB *engine_ut // Do not modify ready in this function, this is a requirement to advance the ready object properly later. func (ps *PeerStorage) SaveReadyState(ready *raft.Ready) (*ApplySnapResult, error) { // Hint: you may call `Append()` and `ApplySnapshot()` in this function - // Your Code Here (2B). + // Your Code Here (2B/2C). return nil, nil }