code: func (m *UnpartitionedMemoryIdx) deindexTags(tags TagIndex, def *schema.MetricDefinition) bool {
  	for _, tag := range def.Tags {
  		tagSplits := strings.SplitN(tag, "=", 2)
  		if len(tagSplits) < 2 {
  			// should never happen because every tag in the index
  			// must have a valid format
  			invalidTag.Inc()
  			log.Errorf("memory-idx: Tag %q of id %q has an invalid format", tag, def.Id)
  			continue
  		}
  
  		tagName := tagSplits[0]
  		tagValue := tagSplits[1]
  		tags.delTagId(tagName, tagValue, def.Id)
  	}
  
  	tags.delTagId("name", def.Name, def.Id)
  
  	m.defByTagSet.del(def)
  
  	return true
  }
docs: // deindexTags takes a given metric definition and removes all references
  // to it from the tag index. It assumes a lock is already held.
  // a return value of "false" means there was an error and the deindexing was
  // unsuccessful, "true" means the indexing was at least partially or completely
  // successful