Skip to content

Commit ea4c258

Browse files
committed
Added benchmark
Signed-off-by: Marco Pracucci <[email protected]>
1 parent 627e799 commit ea4c258

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

pkg/ring/ring_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,33 @@ func TestRing_ShuffleShard_Consistency(t *testing.T) {
457457
}
458458
}
459459

460+
func BenchmarkRing_ShuffleShard(b *testing.B) {
461+
for _, numInstances := range []int{50, 100, 1000} {
462+
for _, numZones := range []int{1, 3} {
463+
for _, shardSize := range []int{3, 10, 30} {
464+
b.Run(fmt.Sprintf("num instances = %d, num zones = %d, shard size = %d", numInstances, numZones, shardSize), func(b *testing.B) {
465+
// Initialise the ring.
466+
ringDesc := &Desc{Ingesters: generateRingInstances(numInstances, numZones)}
467+
ring := Ring{
468+
cfg: Config{HeartbeatTimeout: time.Hour},
469+
ringDesc: ringDesc,
470+
ringTokens: ringDesc.getTokens(),
471+
ringTokensByZone: ringDesc.getTokensByZone(),
472+
ringZones: getZones(ringDesc.getTokensByZone()),
473+
strategy: &DefaultReplicationStrategy{},
474+
}
475+
476+
b.ResetTimer()
477+
478+
for n := 0; n < b.N; n++ {
479+
ring.ShuffleShard("tenant-1", shardSize)
480+
}
481+
})
482+
}
483+
}
484+
}
485+
}
486+
460487
func TestSubring(t *testing.T) {
461488
r := NewDesc()
462489

0 commit comments

Comments
 (0)