diff --git a/lib/storage/inmemory_inverted_index.go b/lib/storage/inmemory_inverted_index.go
index 487c226ee7..4f11537994 100644
--- a/lib/storage/inmemory_inverted_index.go
+++ b/lib/storage/inmemory_inverted_index.go
@@ -76,7 +76,7 @@ func (iidx *inmemoryInvertedIndex) MustUpdate(idb *indexDB, src *uint64set.Set)
 	metricIDs := src.AppendTo(nil)
 	iidx.mu.Lock()
 	iidx.pendingMetricIDs = append(iidx.pendingMetricIDs, metricIDs...)
-	if err := iidx.updateLocked(idb); err != nil {
+	if err := iidx.addPendingEntriesLocked(idb); err != nil {
 		logger.Panicf("FATAL: cannot update inmemoryInvertedIndex with pendingMetricIDs: %s", err)
 	}
 	iidx.mu.Unlock()
@@ -85,7 +85,7 @@ func (iidx *inmemoryInvertedIndex) MustUpdate(idb *indexDB, src *uint64set.Set)
 func (iidx *inmemoryInvertedIndex) AddMetricID(idb *indexDB, metricID uint64) {
 	iidx.mu.Lock()
 	iidx.pendingMetricIDs = append(iidx.pendingMetricIDs, metricID)
-	if err := iidx.updateLocked(idb); err != nil {
+	if err := iidx.addPendingEntriesLocked(idb); err != nil {
 		logger.Panicf("FATAL: cannot update inmemoryInvertedIndex with pendingMetricIDs: %s", err)
 	}
 	iidx.mu.Unlock()
@@ -102,6 +102,7 @@ func (iidx *inmemoryInvertedIndex) UpdateMetricIDsForTagFilters(metricIDs, allMe
 			continue
 		}
 		tfFirst = &tfs.tfs[i]
+		break
 	}
 
 	iidx.mu.RLock()
@@ -155,14 +156,15 @@ func (iidx *inmemoryInvertedIndex) getMetricIDsForTagFilterLocked(tf *tagFilter,
 	return &m
 }
 
-func (iidx *inmemoryInvertedIndex) updateLocked(idb *indexDB) error {
+func (iidx *inmemoryInvertedIndex) addPendingEntriesLocked(idb *indexDB) error {
 	metricIDs := iidx.pendingMetricIDs
 	iidx.pendingMetricIDs = iidx.pendingMetricIDs[:0]
 
 	kb := kbPool.Get()
 	defer kbPool.Put(kb)
 
-	var mn MetricName
+	mn := GetMetricName()
+	defer PutMetricName(mn)
 	for _, metricID := range metricIDs {
 		var err error
 		kb.B, err = idb.searchMetricName(kb.B[:0], metricID)