aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search/dispatch/LoadBalancerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/dispatch/LoadBalancerTest.java')
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/LoadBalancerTest.java34
1 files changed, 16 insertions, 18 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/LoadBalancerTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/LoadBalancerTest.java
index 40711fb8dbe..62b56e6e8ff 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/LoadBalancerTest.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/LoadBalancerTest.java
@@ -11,9 +11,10 @@ import org.opentest4j.AssertionFailedError;
import java.time.Duration;
import java.time.Instant;
-import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Optional;
import java.util.Random;
@@ -110,14 +111,19 @@ public class LoadBalancerTest {
assertEquals(Duration.ofNanos(1045087), decayer.averageSearchTime());
}
+ private Map<Integer, GroupStatus> createScoreBoard(int count) {
+ Map<Integer, GroupStatus> scoreboard = new HashMap<>();
+ for (int i = 0; i < count; i++) {
+ GroupStatus gs = newGroupStatus(i);
+ scoreboard.put(gs.groupId(), gs);
+ }
+ return scoreboard;
+ }
+
@Test
void requireEqualDistributionInFlatWeightListWithAdaptiveScheduler() {
- List<GroupStatus> scoreboard = new ArrayList<>();
- for (int i = 0; i < 5; i++) {
- scoreboard.add(newGroupStatus(i));
- }
Random seq = sequence(0.0, 0.1, 0.2, 0.39, 0.4, 0.6, 0.8, 0.99999);
- AdaptiveScheduler sched = new AdaptiveScheduler(AdaptiveScheduler.Type.REQUESTS, seq, scoreboard);
+ AdaptiveScheduler sched = new AdaptiveScheduler(AdaptiveScheduler.Type.REQUESTS, seq, createScoreBoard(5));
assertEquals(0, sched.takeNextGroup(null).get().groupId());
assertEquals(0, sched.takeNextGroup(null).get().groupId());
@@ -131,15 +137,11 @@ public class LoadBalancerTest {
@Test
void requireThatAdaptiveSchedulerObeysWeights() {
- List<GroupStatus> scoreboard = new ArrayList<>();
- for (int i = 0; i < 5; i++) {
- GroupStatus gs = newGroupStatus(i);
- scoreboard.add(gs);
- }
+ var scoreboard = createScoreBoard(5);
Random seq = sequence(0.0, 0.4379, 0.4380, 0.6569, 0.6570, 0.8029, 0.8030, 0.9124, 0.9125);
AdaptiveScheduler sched = new AdaptiveScheduler(AdaptiveScheduler.Type.REQUESTS, seq, scoreboard);
- int i= 0;
- for (GroupStatus gs : scoreboard) {
+ int i = 0;
+ for (GroupStatus gs : scoreboard.values()) {
gs.setDecayer(new AdaptiveScheduler.DecayByRequests(1, Duration.ofMillis((long)(0.1 * (i + 1)*1000.0))));
i++;
}
@@ -161,10 +163,6 @@ public class LoadBalancerTest {
}
@Test
void requireBestOfRandom2Scheduler() {
- List<GroupStatus> scoreboard = new ArrayList<>();
- for (int i = 0; i < 5; i++) {
- scoreboard.add(newGroupStatus(i));
- }
Random seq = sequence(
0.1, 0.125,
0.1, 0.125,
@@ -175,7 +173,7 @@ public class LoadBalancerTest {
0.9, 0.125,
0.9, 0.125
);
- BestOfRandom2 sched = new BestOfRandom2(seq, scoreboard);
+ BestOfRandom2 sched = new BestOfRandom2(seq, createScoreBoard(5));
assertEquals(0, allocate(sched.takeNextGroup(null).get()).groupId());
assertEquals(1, allocate(sched.takeNextGroup(null).get()).groupId());