Skip to content

Commit 6b58156

Browse files
authored
perf(tsdb): return full slice to pool after use (#20969)
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
1 parent c0566eb commit 6b58156

File tree

4 files changed

+5
-4
lines changed

4 files changed

+5
-4
lines changed

pkg/storage/stores/shipper/indexshipper/tsdb/index/index.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,7 +2255,7 @@ func (dec *Decoder) readChunkStatsV3(d *encoding.Decbuf, from, through int64) (r
22552255
nMarkers := d.Uvarint()
22562256

22572257
relevantPages := chunkPageMarkersPool.Get(nMarkers)
2258-
defer chunkPageMarkersPool.Put(relevantPages)
2258+
defer func() { chunkPageMarkersPool.Put(relevantPages) }()
22592259
for i := 0; i < nMarkers; i++ {
22602260
var marker chunkPageMarker
22612261
marker.decode(d)
@@ -2351,7 +2351,7 @@ func (dec *Decoder) accumulateChunkStats(d *encoding.Decbuf, nChunks int, from,
23512351
func (dec *Decoder) readChunkStatsPriorV3(d *encoding.Decbuf, seriesRef storage.SeriesRef, from, through int64) (res ChunkStats, err error) {
23522352
// prior to v3, chunks needed iteration for stats aggregation
23532353
chks := ChunkMetasPool.Get()
2354-
defer ChunkMetasPool.Put(chks)
2354+
defer func() { ChunkMetasPool.Put(chks) }()
23552355
err = dec.readChunks(FormatV2, d, seriesRef, from, through, &chks)
23562356
if err != nil {
23572357
return ChunkStats{}, err

pkg/storage/stores/shipper/indexshipper/tsdb/index_client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ func (c *IndexClient) GetShards(ctx context.Context, userID string, from, throug
309309
resp := &logproto.ShardsResponse{}
310310

311311
series := sharding.SizedFPs(sharding.SizedFPsPool.Get(len(m)))
312-
defer sharding.SizedFPsPool.Put(series)
312+
defer func() { sharding.SizedFPsPool.Put(series) }()
313313

314314
for fp, chks := range m {
315315
x := sharding.SizedFP{Fp: fp}

pkg/storage/stores/shipper/indexshipper/tsdb/single_file_index.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ func (i *TSDBIndex) ForSeries(ctx context.Context, _ string, fpFilter index.Fing
166166

167167
var ls labels.Labels
168168
chks := ChunkMetasPool.Get()
169-
defer ChunkMetasPool.Put(chks)
169+
defer func() { ChunkMetasPool.Put(chks) }()
170170

171171
var filterer chunk.Filterer
172172
if i.chunkFilter != nil {

pkg/storage/stores/shipper/indexshipper/tsdb/single_file_index_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ func BenchmarkTSDBIndex_GetChunkRefs(b *testing.B) {
264264
chkRefs, err := tsdbIndex.GetChunkRefs(context.Background(), "fake", queryFrom, queryThrough, nil, nil, labels.MustNewMatcher(labels.MatchEqual, "foo", "bar"))
265265
require.NoError(b, err)
266266
require.Len(b, chkRefs, numChunksToMatch*2)
267+
ChunkRefsPool.Put(chkRefs)
267268
}
268269
}
269270

0 commit comments

Comments
 (0)