diff --git a/pkg/metricstore/buffer.go b/pkg/metricstore/buffer.go index 46eb5149..665d8012 100644 --- a/pkg/metricstore/buffer.go +++ b/pkg/metricstore/buffer.go @@ -237,9 +237,10 @@ func (b *buffer) free(t int64) (delme bool, n int) { n += m if delme { b.prev.next = nil - if cap(b.prev.data) == BufferCap { - bufferPool.Put(b.prev) + if cap(b.prev.data) != BufferCap { + b.prev.data = make([]schema.Float, 0, BufferCap) } + bufferPool.Put(b.prev) b.prev = nil } } diff --git a/pkg/metricstore/level.go b/pkg/metricstore/level.go index bfa0ddf0..85c2ba7b 100644 --- a/pkg/metricstore/level.go +++ b/pkg/metricstore/level.go @@ -189,9 +189,10 @@ func (l *Level) free(t int64) (int, error) { delme, m := b.free(t) n += m if delme { - if cap(b.data) == BufferCap { - bufferPool.Put(b) + if cap(b.data) != BufferCap { + b.data = make([]schema.Float, 0, BufferCap) } + bufferPool.Put(b) l.metrics[i] = nil } }