mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-15 00:13:30 +01:00
lib/storage: do not sort metricIDs passed to Storage.prefetchMetricNames, since the caller is responsible for the sorting
This commit is contained in:
parent
7ed7eb95b4
commit
9b3217db61
@ -1204,11 +1204,13 @@ func (s *Storage) SearchMetricNames(qt *querytracer.Tracer, tfss []*TagFilters,
|
|||||||
return metricNames, nil
|
return metricNames, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// prefetchMetricNames pre-fetches metric names for the given metricIDs into metricID->metricName cache.
|
// prefetchMetricNames pre-fetches metric names for the given srcMetricIDs into metricID->metricName cache.
|
||||||
//
|
//
|
||||||
// It is expected that all the metricIDs belong to the same (accountID, projectID)
|
// It is expected that all the metricIDs belong to the same (accountID, projectID)
|
||||||
//
|
//
|
||||||
// This should speed-up further searchMetricNameWithCache calls for srcMetricIDs from tsids.
|
// This should speed-up further searchMetricNameWithCache calls for srcMetricIDs from tsids.
|
||||||
|
//
|
||||||
|
// It is expected that srcMetricIDs are already sorted by the caller. Otherwise the pre-fetching may be slow.
|
||||||
func (s *Storage) prefetchMetricNames(qt *querytracer.Tracer, accountID, projectID uint32, srcMetricIDs []uint64, deadline uint64) error {
|
func (s *Storage) prefetchMetricNames(qt *querytracer.Tracer, accountID, projectID uint32, srcMetricIDs []uint64, deadline uint64) error {
|
||||||
qt = qt.NewChild("prefetch metric names for %d metricIDs", len(srcMetricIDs))
|
qt = qt.NewChild("prefetch metric names for %d metricIDs", len(srcMetricIDs))
|
||||||
defer qt.Done()
|
defer qt.Done()
|
||||||
@ -1218,7 +1220,7 @@ func (s *Storage) prefetchMetricNames(qt *querytracer.Tracer, accountID, project
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var metricIDs uint64Sorter
|
var metricIDs []uint64
|
||||||
s.prefetchedMetricIDsLock.Lock()
|
s.prefetchedMetricIDsLock.Lock()
|
||||||
prefetchedMetricIDs := s.prefetchedMetricIDs
|
prefetchedMetricIDs := s.prefetchedMetricIDs
|
||||||
for _, metricID := range srcMetricIDs {
|
for _, metricID := range srcMetricIDs {
|
||||||
@ -1238,7 +1240,6 @@ func (s *Storage) prefetchMetricNames(qt *querytracer.Tracer, accountID, project
|
|||||||
atomic.AddUint64(&s.slowMetricNameLoads, uint64(len(metricIDs)))
|
atomic.AddUint64(&s.slowMetricNameLoads, uint64(len(metricIDs)))
|
||||||
|
|
||||||
// Pre-fetch metricIDs.
|
// Pre-fetch metricIDs.
|
||||||
sort.Sort(metricIDs)
|
|
||||||
var missingMetricIDs []uint64
|
var missingMetricIDs []uint64
|
||||||
var metricName []byte
|
var metricName []byte
|
||||||
var err error
|
var err error
|
||||||
|
Loading…
Reference in New Issue
Block a user