Skip to content

Commit 7437f27

Browse files
authored
feat: Add new logging for compaction level 5 and remove bug with opt holdoff time (#26488)
Previously ```go // StartOptHoldOff will create a hold off timer for OptimizedCompaction func (e *Engine) StartOptHoldOff(holdOffDurationCheck time.Duration, optHoldoffStart time.Time, optHoldoffDuration time.Duration) { startOptHoldoff := func(dur time.Duration) { optHoldoffStart = time.Now() optHoldoffDuration = dur e.logger.Info("optimize compaction holdoff timer started", logger.Shard(e.id), zap.Duration("duration", optHoldoffDuration), zap.Time("endTime", optHoldoffStart.Add(optHoldoffDuration))) } startOptHoldoff(holdOffDurationCheck) } ``` was not passing the data by reference which meant we were never modifying the `optHoldoffDuration` and `optHoldoffStart` vars. This PR also adds additional logging to Optimized level 5 compactions to clear up a little bit of confusion around log messages.
1 parent c07e237 commit 7437f27

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

tsdb/engine/tsm1/engine.go

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2163,16 +2163,6 @@ const optimizationHoldoff = 5 * time.Minute
21632163
// tickPeriod is the interval between successive compaction loops.
21642164
const tickPeriod = time.Second
21652165

2166-
// StartOptHoldOff will create a hold off timer for OptimizedCompaction
2167-
func (e *Engine) StartOptHoldOff(holdOffDurationCheck time.Duration, optHoldoffStart time.Time, optHoldoffDuration time.Duration) {
2168-
startOptHoldoff := func(dur time.Duration) {
2169-
optHoldoffStart = time.Now()
2170-
optHoldoffDuration = dur
2171-
e.logger.Info("optimize compaction holdoff timer started", logger.Shard(e.id), zap.Duration("duration", optHoldoffDuration), zap.Time("endTime", optHoldoffStart.Add(optHoldoffDuration)))
2172-
}
2173-
startOptHoldoff(holdOffDurationCheck)
2174-
}
2175-
21762166
func (e *Engine) GetPlanTypeBasedOnHoldOff(start time.Time, dur time.Duration) PlanType {
21772167
planType := PT_SmartOptimize
21782168
if time.Since(start) < dur {
@@ -2186,7 +2176,12 @@ func (e *Engine) compact(wg *sync.WaitGroup) {
21862176
defer t.Stop()
21872177
var optHoldoffStart time.Time
21882178
var optHoldoffDuration time.Duration
2189-
e.StartOptHoldOff(initialOptimizationHoldoff, optHoldoffStart, optHoldoffDuration)
2179+
startOptHoldoff := func(dur time.Duration) {
2180+
optHoldoffStart = time.Now()
2181+
optHoldoffDuration = dur
2182+
e.logger.Info("optimize compaction holdoff timer started", logger.Shard(e.id), zap.Duration("duration", optHoldoffDuration), zap.Time("endTime", optHoldoffStart.Add(optHoldoffDuration)))
2183+
}
2184+
startOptHoldoff(initialOptimizationHoldoff)
21902185

21912186
var nextDisabledMsg time.Time
21922187

@@ -2253,7 +2248,7 @@ func (e *Engine) compact(wg *sync.WaitGroup) {
22532248
}
22542249
log := e.logger.With(zap.Strings("files", theGroup), zap.Bool("aggressive", isAggressive))
22552250

2256-
log.Info("Running optimized compaction for level 5 group")
2251+
log.Debug("Checking optimized level 5 group is compactable")
22572252
if err := e.compactOptimize(theGroup, pointsPerBlock, wg); err != nil {
22582253
if errors.Is(err, ErrOptimizeCompactionLimited) {
22592254
// We've reached the limit of optimized compactions. Let's not schedule anything else this schedule cycle
@@ -2267,9 +2262,10 @@ func (e *Engine) compact(wg *sync.WaitGroup) {
22672262
log.Error("Error during compactOptimize", zap.Error(err))
22682263
}
22692264
} else {
2265+
log.Info("Optimized level 5 group compacted")
22702266
level5Groups = level5Groups[1:]
22712267
}
2272-
e.StartOptHoldOff(optimizationHoldoff, optHoldoffStart, optHoldoffDuration)
2268+
startOptHoldoff(optimizationHoldoff)
22732269
}
22742270
}
22752271

0 commit comments

Comments
 (0)