Skip to content

Commit 46dd9b6

Browse files
committed
Add benchmark
Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
1 parent d0ba985 commit 46dd9b6

File tree

1 file changed

+47
-6
lines changed

1 file changed

+47
-6
lines changed

‎pkg/storage/stores/shipper/bloomshipper/fetcher_test.go

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"encoding/json"
66
"fmt"
7+
"math"
78
"os"
89
"path/filepath"
910
"testing"
@@ -436,16 +437,56 @@ func TestFetcher_IsBlockDir(t *testing.T) {
436437
})
437438
}
438439

439-
func metasFromCache(data map[string][]byte) []Meta {
440-
metas := make([]Meta, 0, len(data))
441-
for _, v := range data {
440+
func Benchmark_Fetcher_processMetasCacheResponse(b *testing.B) {
441+
b.Log(b.N)
442+
443+
cfg := bloomStoreConfig{
444+
numWorkers: 1,
445+
workingDirs: []string{b.TempDir()},
446+
}
447+
448+
c, err := NewBloomClient(cfg, nil, log.NewNopLogger())
449+
require.NoError(b, err)
450+
f, err := NewFetcher(cfg, c, nil, nil, nil, log.NewNopLogger(), v1.NewMetrics(nil))
451+
require.NoError(b, err)
452+
453+
step := math.MaxUint64 / uint64(b.N)
454+
455+
metas := make([]Meta, 0, b.N)
456+
refs := make([]MetaRef, 0, b.N)
457+
keys := make([]string, 0, b.N)
458+
bufs := make([][]byte, 0, b.N)
459+
460+
for i := 0; i < b.N; i++ {
461+
minFp := model.Fingerprint(uint64(i) * step)
462+
maxFp := model.Fingerprint(uint64(i)*step + step)
463+
464+
ref := Ref{
465+
TenantID: "fake",
466+
TableName: "tsdb_index_20000",
467+
Bounds: v1.NewBounds(minFp, maxFp),
468+
StartTimestamp: model.Earliest,
469+
EndTimestamp: model.Latest,
470+
}
471+
metaRef := MetaRef{Ref: ref}
472+
refs = append(refs, metaRef)
473+
474+
keys = append(keys, f.client.Meta(metaRef).Addr())
475+
442476
meta := Meta{
443-
MetaRef: MetaRef{},
477+
MetaRef: metaRef,
478+
Blocks: []BlockRef{BlockRef{Ref: ref}},
444479
}
445-
_ = json.Unmarshal(v, &meta)
446480
metas = append(metas, meta)
481+
482+
buf, _ := json.Marshal(meta)
483+
bufs = append(bufs, buf)
447484
}
448-
return metas
485+
486+
b.ReportAllocs()
487+
b.ResetTimer()
488+
489+
_, _, _ = f.processMetasCacheResponse(nil, refs, keys, bufs)
449490
}
450491

451492
func metaRefs(metas []Meta) []MetaRef {

0 commit comments

Comments
 (0)