includeBlock indicates whether a given block should be included in a backend search
(b *backend.BlockMeta, _ common.ID, blockStart, blockEnd []byte, timeStart, timeEnd int64)
| 820 | |
| 821 | // includeBlock indicates whether a given block should be included in a backend search |
| 822 | func includeBlock(b *backend.BlockMeta, _ common.ID, blockStart, blockEnd []byte, timeStart, timeEnd int64) bool { |
| 823 | // todo: restore this functionality once it works. min/max ids are currently not recorded |
| 824 | // https://github.com/grafana/tempo/issues/1903 |
| 825 | // correctly in a block |
| 826 | // if bytes.Compare(id, b.MinID) == -1 || bytes.Compare(id, b.MaxID) == 1 { |
| 827 | // return false |
| 828 | // } |
| 829 | |
| 830 | if timeStart != 0 && timeEnd != 0 { |
| 831 | if b.StartTime.Unix() >= timeEnd || b.EndTime.Unix() <= timeStart { |
| 832 | return false |
| 833 | } |
| 834 | } |
| 835 | |
| 836 | blockIDBytes, _ := b.BlockID.Marshal() |
| 837 | // check block is in shard boundaries |
| 838 | // blockStartBytes <= blockIDBytes <= blockEndBytes |
| 839 | if bytes.Compare(blockIDBytes, blockStart) == -1 || bytes.Compare(blockIDBytes, blockEnd) == 1 { |
| 840 | return false |
| 841 | } |
| 842 | |
| 843 | return true |
| 844 | } |
| 845 | |
| 846 | // if block is compacted within lookback period, and is within shard ranges, include it in search |
| 847 | func includeCompactedBlock(c *backend.CompactedBlockMeta, id common.ID, blockStart, blockEnd []byte, poll time.Duration, timeStart, timeEnd int64) bool { |