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 410f993bf6
commit 6e586fa09c

View File

@ -1578,6 +1578,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 {
@ -1594,6 +1595,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, tfs.accountID, tfs.projectID)
}
for i, tf := range tfsPostponed {
mIDs, err := is.intersectMetricIDsWithTagFilter(tf, minMetricIDs)