From e2b0cc873b78dec3ad31437bbb99992f5b9b895f Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Fri, 23 Feb 2024 22:51:48 +0200 Subject: [PATCH] lib/storage: convert dedupsDuringMerge from uint64 to atomic.Uint64 This should simplify code maintenance by gradually converting to atomic.* types instead of calling atomic.* functions on int and bool types. See ea9e2b19a5fa8aecc25c9da10fad8f4c1c58df38 --- lib/storage/block.go | 4 ++-- lib/storage/storage.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/storage/block.go b/lib/storage/block.go index 1a3d1f06d8..43635f6519 100644 --- a/lib/storage/block.go +++ b/lib/storage/block.go @@ -171,12 +171,12 @@ func (b *Block) deduplicateSamplesDuringMerge() { srcValues := b.values[b.nextIdx:] timestamps, values := deduplicateSamplesDuringMerge(srcTimestamps, srcValues, dedupInterval) dedups := len(srcTimestamps) - len(timestamps) - atomic.AddUint64(&dedupsDuringMerge, uint64(dedups)) + dedupsDuringMerge.Add(uint64(dedups)) b.timestamps = b.timestamps[:b.nextIdx+len(timestamps)] b.values = b.values[:b.nextIdx+len(values)] } -var dedupsDuringMerge uint64 +var dedupsDuringMerge atomic.Uint64 func (b *Block) rowsCount() int { if len(b.values) == 0 { diff --git a/lib/storage/storage.go b/lib/storage/storage.go index 661dd00d0c..301d443144 100644 --- a/lib/storage/storage.go +++ b/lib/storage/storage.go @@ -560,7 +560,7 @@ func (m *Metrics) Reset() { // UpdateMetrics updates m with metrics from s. func (s *Storage) UpdateMetrics(m *Metrics) { m.RowsAddedTotal = atomic.LoadUint64(&rowsAddedTotal) - m.DedupsDuringMerge = atomic.LoadUint64(&dedupsDuringMerge) + m.DedupsDuringMerge = dedupsDuringMerge.Load() m.SnapshotsCount += uint64(s.mustGetSnapshotsCount()) m.TooSmallTimestampRows += atomic.LoadUint64(&s.tooSmallTimestampRows)