Merge pull request #13473 from bboreham/pure-mutex

tsdb: use cheaper Mutex on series
This commit is contained in:
Bryan Boreham 2024-01-30 09:57:08 +00:00 committed by GitHub
commit cd4562d3a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 5 deletions

View File

@ -1487,9 +1487,9 @@ func (h *Head) Delete(ctx context.Context, mint, maxt int64, ms ...*labels.Match
continue continue
} }
series.RLock() series.Lock()
t0, t1 := series.minTime(), series.maxTime() t0, t1 := series.minTime(), series.maxTime()
series.RUnlock() series.Unlock()
if t0 == math.MinInt64 || t1 == math.MinInt64 { if t0 == math.MinInt64 || t1 == math.MinInt64 {
continue continue
} }
@ -2024,7 +2024,7 @@ func (s sample) Type() chunkenc.ValueType {
// memSeries is the in-memory representation of a series. None of its methods // memSeries is the in-memory representation of a series. None of its methods
// are goroutine safe and it is the caller's responsibility to lock it. // are goroutine safe and it is the caller's responsibility to lock it.
type memSeries struct { type memSeries struct {
sync.RWMutex sync.Mutex
ref chunks.HeadSeriesRef ref chunks.HeadSeriesRef
lset labels.Labels lset labels.Labels

View File

@ -684,9 +684,9 @@ func (a *headAppender) UpdateMetadata(ref storage.SeriesRef, lset labels.Labels,
return 0, fmt.Errorf("unknown series when trying to add metadata with HeadSeriesRef: %d and labels: %s", ref, lset) return 0, fmt.Errorf("unknown series when trying to add metadata with HeadSeriesRef: %d and labels: %s", ref, lset)
} }
s.RLock() s.Lock()
hasNewMetadata := s.meta == nil || *s.meta != meta hasNewMetadata := s.meta == nil || *s.meta != meta
s.RUnlock() s.Unlock()
if hasNewMetadata { if hasNewMetadata {
a.metadata = append(a.metadata, record.RefMetadata{ a.metadata = append(a.metadata, record.RefMetadata{