mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-26 22:19:40 -08:00
Merge pull request #12997 from prometheus/wal-samples-size
TSDB: Pre-size buffer to read samples from WAL
This commit is contained in:
commit
059f7f0738
|
@ -304,6 +304,10 @@ func (d *Decoder) Samples(rec []byte, samples []RefSample) ([]RefSample, error)
|
||||||
baseRef = dec.Be64()
|
baseRef = dec.Be64()
|
||||||
baseTime = dec.Be64int64()
|
baseTime = dec.Be64int64()
|
||||||
)
|
)
|
||||||
|
// Allow 1 byte for each varint and 8 for the value; the output slice must be at least that big.
|
||||||
|
if minSize := dec.Len() / (1 + 1 + 8); cap(samples) < minSize {
|
||||||
|
samples = make([]RefSample, 0, minSize)
|
||||||
|
}
|
||||||
for len(dec.B) > 0 && dec.Err() == nil {
|
for len(dec.B) > 0 && dec.Err() == nil {
|
||||||
dref := dec.Varint64()
|
dref := dec.Varint64()
|
||||||
dtime := dec.Varint64()
|
dtime := dec.Varint64()
|
||||||
|
|
Loading…
Reference in a new issue