mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-01-30 15:22:07 +00:00
lib/storage: skip non-matching metricIDs in sortedFilter
This should improve performance for big sorteFilter lists.
This commit is contained in:
parent
2257dcd278
commit
ffc1bb00f6
1 changed files with 9 additions and 0 deletions
|
@ -1727,6 +1727,15 @@ func (is *indexSearch) updateMetricIDsForOrSuffixWithFilter(prefix []byte, metri
|
|||
}
|
||||
metricID := encoding.UnmarshalUint64(v)
|
||||
if metricID != nextMetricID {
|
||||
// Skip metricIDs smaller than the found metricID, since they don't
|
||||
// match anything.
|
||||
if len(sortedFilter) > 0 && metricID > sortedFilter[0] {
|
||||
sortedFilter = sortedFilter[1:]
|
||||
n := sort.Search(len(sortedFilter), func(i int) bool {
|
||||
return metricID <= sortedFilter[i]
|
||||
})
|
||||
sortedFilter = sortedFilter[n:]
|
||||
}
|
||||
continue
|
||||
}
|
||||
if isNegative {
|
||||
|
|
Loading…
Reference in a new issue