Skip to content

Commit

Permalink
Merge pull request #18808 from ahrtr/refactor_snapshot_20240927
Browse files Browse the repository at this point in the history
Refactor Etcdserver.snapshot to extract compaction into a separate method
  • Loading branch information
ahrtr authored Oct 30, 2024
2 parents 10de4d6 + 694b0fb commit a654cde
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion server/etcdserver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -1207,6 +1207,7 @@ func (s *EtcdServer) triggerSnapshot(ep *etcdProgress) {
s.forceSnapshot = false

s.snapshot(ep.appliedi, ep.confState)
s.compactRaftLog(ep.appliedi)
ep.snapi = ep.appliedi
}

Expand Down Expand Up @@ -2171,6 +2172,10 @@ func (s *EtcdServer) snapshot(snapi uint64, confState raftpb.ConfState) {
"saved snapshot",
zap.Uint64("snapshot-index", snap.Metadata.Index),
)
}

func (s *EtcdServer) compactRaftLog(snapi uint64) {
lg := s.Logger()

// When sending a snapshot, etcd will pause compaction.
// After receives a snapshot, the slow follower needs to get all the entries right after
Expand All @@ -2188,7 +2193,7 @@ func (s *EtcdServer) snapshot(snapi uint64, confState raftpb.ConfState) {
compacti = snapi - s.Cfg.SnapshotCatchUpEntries
}

err = s.r.raftStorage.Compact(compacti)
err := s.r.raftStorage.Compact(compacti)
if err != nil {
// the compaction was done asynchronously with the progress of raft.
// raft log might already been compact.
Expand Down

0 comments on commit a654cde

Please sign in to comment.