mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-23 12:31:07 +01:00
lib/storage: skip non-matching metricIDs in sortedFilter
This should improve performance for big sorteFilter lists.
This commit is contained in:
parent
0c88afa386
commit
2ecb117082
@ -1678,6 +1678,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 New Issue
Block a user