code: func (db *DB) Delete(mint, maxt int64, ms ...labels.Matcher) error {
  	db.cmtx.Lock()
  	defer db.cmtx.Unlock()
  
  	var g errgroup.Group
  
  	db.mtx.RLock()
  	defer db.mtx.RUnlock()
  
  	for _, b := range db.blocks {
  		if b.OverlapsClosedInterval(mint, maxt) {
  			g.Go(func(b *Block) func() error {
  				return func() error { return b.Delete(mint, maxt, ms...) }
  			}(b))
  		}
  	}
  	g.Go(func() error {
  		return db.head.Delete(mint, maxt, ms...)
  	})
  	return g.Wait()
  }
docs: // Delete implements deletion of metrics. It only has atomicity guarantees on a per-block basis.