From ce4e757704866ad16bd456e1140cdfe45b380601 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Fri, 27 Oct 2023 22:02:34 +0100 Subject: [PATCH] TSDB: refine variable naming in chunk gc Slight further refactor. Signed-off-by: Bryan Boreham --- tsdb/head.go | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/tsdb/head.go b/tsdb/head.go index c46ffe0619..575177a7ad 100644 --- a/tsdb/head.go +++ b/tsdb/head.go @@ -1779,7 +1779,7 @@ func (s *stripeSeries) gc(mint int64, minOOOMmapRef chunks.ChunkDiskMapperRef) ( minMmapFile = math.MaxInt32 // For one series, truncate old chunks and check if any chunks left. If not, mark as deleted and collect the ID. - check := func(i int, hash uint64, series *memSeries, deletedForCallback map[chunks.HeadSeriesRef]labels.Labels) { + check := func(hashShard int, hash uint64, series *memSeries, deletedForCallback map[chunks.HeadSeriesRef]labels.Labels) { series.Lock() defer series.Unlock() @@ -1820,20 +1820,16 @@ func (s *stripeSeries) gc(mint int64, minOOOMmapRef chunks.ChunkDiskMapperRef) ( // series alike. // If we don't hold them all, there's a very small chance that a series receives // samples again while we are half-way into deleting it. - j := int(series.ref) & (s.size - 1) - - if i != j { - s.locks[j].Lock() + refShard := int(series.ref) & (s.size - 1) + if hashShard != refShard { + s.locks[refShard].Lock() + defer s.locks[refShard].Unlock() } deleted[storage.SeriesRef(series.ref)] = struct{}{} - s.hashes[i].del(hash, series.lset) - delete(s.series[j], series.ref) + s.hashes[hashShard].del(hash, series.lset) + delete(s.series[refShard], series.ref) deletedForCallback[series.ref] = series.lset - - if i != j { - s.locks[j].Unlock() - } } // Run through all series shard by shard, checking which should be deleted.