summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java
diff options
context:
space:
mode:
authorOlli Virtanen <olli.virtanen@oath.com>2018-10-24 09:43:47 +0200
committerOlli Virtanen <olli.virtanen@oath.com>2018-10-24 09:43:47 +0200
commit03f93552fc3ee9e2a009e837addc2c82e075e4f1 (patch)
tree3a0cb5ed4fe78436581b43636365760ab6d25a7d /container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java
parentedf46c3e106da961c522add0691dfa090d8637a1 (diff)
Pull more configuration parameters from config model to internal dispatcher config
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java b/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java
index 4962746cdea..64e38a488ab 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java
@@ -5,6 +5,7 @@ import com.yahoo.search.Query;
import com.yahoo.search.dispatch.SearchCluster.Group;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.logging.Level;
@@ -18,14 +19,13 @@ import java.util.logging.Logger;
*/
public class LoadBalancer {
// The implementation here is a simplistic least queries in flight + round-robin load balancer
- // TODO: consider the options in com.yahoo.vespa.model.content.TuningDispatch
private static final Logger log = Logger.getLogger(LoadBalancer.class.getName());
private final List<GroupSchedule> scoreboard;
private int needle = 0;
- public LoadBalancer(SearchCluster searchCluster) {
+ public LoadBalancer(SearchCluster searchCluster, boolean roundRobin) {
if (searchCluster == null) {
this.scoreboard = null;
return;
@@ -35,6 +35,11 @@ public class LoadBalancer {
for (Group group : searchCluster.orderedGroups()) {
scoreboard.add(new GroupSchedule(group));
}
+
+ if(! roundRobin) {
+ // TODO - More randomness could be desirable
+ Collections.shuffle(scoreboard);
+ }
}
/**