lib/storage: skip duplicate call to intersectMetricIDsWithTagFilter on zero successful intersects

This commit is contained in:
Aliaksandr Valialkin 2019-09-18 23:24:12 +03:00
parent 51a21c7d4b
commit 3a697a935a

View File

@ -1561,6 +1561,7 @@ func (is *indexSearch) updateMetricIDsForTagFilters(metricIDs map[uint64]struct{
// Find intersection of minTf with other tfs.
var tfsPostponed []*tagFilter
successfulIntersects := 0
for i := range tfs.tfs {
tf := &tfs.tfs[i]
if tf == minTf {
@ -1577,6 +1578,10 @@ func (is *indexSearch) updateMetricIDsForTagFilters(metricIDs map[uint64]struct{
return err
}
minMetricIDs = mIDs
successfulIntersects++
}
if len(tfsPostponed) > 0 && successfulIntersects == 0 {
return is.updateMetricIDsByMetricNameMatch(metricIDs, minMetricIDs, tfsPostponed)
}
for i, tf := range tfsPostponed {
mIDs, err := is.intersectMetricIDsWithTagFilter(tf, minMetricIDs)