code: func (c *Cluster) getRegionsCoverRange(start, end MvccKey) []*Region {
  	regions := make([]*Region, 0, len(c.regions))
  	for _, region := range c.regions {
  		onRight := bytes.Compare(end, region.Meta.StartKey) <= 0
  		onLeft := bytes.Compare(region.Meta.EndKey, start) <= 0
  		if len(region.Meta.EndKey) == 0 {
  			onLeft = false
  		}
  		if onLeft || onRight {
  			continue
  		}
  		regions = append(regions, region)
  	}
  	return regions
  }
docs: // getRegionsCoverRange gets regions in the cluster that has intersection with [start, end).