From 0504ecdc70fa1b71efee4c53799360a15e1d4143 Mon Sep 17 00:00:00 2001 From: JmPotato Date: Fri, 8 Oct 2021 12:07:02 +0800 Subject: [PATCH] Refine some code and fix a typo Signed-off-by: JmPotato --- server/etcdserver/api/v3compactor/periodic.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/server/etcdserver/api/v3compactor/periodic.go b/server/etcdserver/api/v3compactor/periodic.go index 218076c01..d483ad812 100644 --- a/server/etcdserver/api/v3compactor/periodic.go +++ b/server/etcdserver/api/v3compactor/periodic.go @@ -56,6 +56,8 @@ func newPeriodic(lg *zap.Logger, clock clockwork.Clock, h time.Duration, rg RevG c: c, revs: make([]int64, 0), } + // revs won't be longer than the retentions. + pc.revs = make([]int64, 0, pc.getRetentions()) pc.ctx, pc.cancel = context.WithCancel(context.Background()) return pc } @@ -66,7 +68,7 @@ Compaction period 1-hour: 2. record revisions for every 1/10 of 1-hour (6-minute) 3. keep recording revisions with no compaction for first 1-hour 4. do compact with revs[0] - - success? contiue on for-loop and move sliding window; revs = revs[1:] + - success? continue on for-loop and move sliding window; revs = revs[1:] - failure? update revs, and retry after 1/10 of 1-hour (6-minute) Compaction period 24-hour: @@ -74,7 +76,7 @@ Compaction period 24-hour: 2. record revisions for every 1/10 of 1-hour (6-minute) 3. keep recording revisions with no compaction for first 24-hour 4. do compact with revs[0] - - success? contiue on for-loop and move sliding window; revs = revs[1:] + - success? continue on for-loop and move sliding window; revs = revs[1:] - failure? update revs, and retry after 1/10 of 1-hour (6-minute) Compaction period 59-min: @@ -82,7 +84,7 @@ Compaction period 59-min: 2. record revisions for every 1/10 of 59-min (5.9-min) 3. keep recording revisions with no compaction for first 59-min 4. do compact with revs[0] - - success? contiue on for-loop and move sliding window; revs = revs[1:] + - success? continue on for-loop and move sliding window; revs = revs[1:] - failure? update revs, and retry after 1/10 of 59-min (5.9-min) Compaction period 5-sec: @@ -90,7 +92,7 @@ Compaction period 5-sec: 2. record revisions for every 1/10 of 5-sec (0.5-sec) 3. keep recording revisions with no compaction for first 5-sec 4. do compact with revs[0] - - success? contiue on for-loop and move sliding window; revs = revs[1:] + - success? continue on for-loop and move sliding window; revs = revs[1:] - failure? update revs, and retry after 1/10 of 5-sec (0.5-sec) */ @@ -113,9 +115,9 @@ func (pc *Periodic) Run() { case <-pc.ctx.Done(): return case <-pc.clock.After(retryInterval): - pc.mu.Lock() + pc.mu.RLock() p := pc.paused - pc.mu.Unlock() + pc.mu.RUnlock() if p { continue }