code: func (a *AggMetric) pushToCache(c *chunk.Chunk) {
  	if a.cachePusher == nil {
  		return
  	}
  	// push into cache
  	intervalHint := a.key.Archive.Span()
  
  	itergen, err := chunk.NewIterGen(c.Series.T0, intervalHint, c.Encode(a.chunkSpan))
  	if err != nil {
  		log.Errorf("AM: %s failed to generate IterGen. this should never happen: %s", a.key, err)
  	}
  	go a.cachePusher.AddIfHot(a.key, 0, itergen)
  }
docs: // pushToCache adds the chunk into the cache if it is hot
  // caller must hold lock