tsdb: use smaller allocation in blockBaseSeriesSet
This reduces garbage, hence goes faster, when a short time range is required compared to the amount of chunks in the block. For example recording rules and alerts often look only at the last few minutes. Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
This commit is contained in:
parent
30b31cae93
commit
0c05f95e92
|
@ -471,7 +471,14 @@ func (b *blockBaseSeriesSet) Next() bool {
|
||||||
var trimFront, trimBack bool
|
var trimFront, trimBack bool
|
||||||
|
|
||||||
// Copy chunks as iterables are reusable.
|
// Copy chunks as iterables are reusable.
|
||||||
chks := make([]chunks.Meta, 0, len(b.bufChks))
|
// Count those in range to size allocation (roughly - ignoring tombstones).
|
||||||
|
nChks := 0
|
||||||
|
for _, chk := range b.bufChks {
|
||||||
|
if !(chk.MaxTime < b.mint || chk.MinTime > b.maxt) {
|
||||||
|
nChks++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
chks := make([]chunks.Meta, 0, nChks)
|
||||||
|
|
||||||
// Prefilter chunks and pick those which are not entirely deleted or totally outside of the requested range.
|
// Prefilter chunks and pick those which are not entirely deleted or totally outside of the requested range.
|
||||||
for _, chk := range b.bufChks {
|
for _, chk := range b.bufChks {
|
||||||
|
|
Loading…
Reference in New Issue