diff options
author | Olli Virtanen <olli.virtanen@oath.com> | 2018-10-24 09:43:47 +0200 |
---|---|---|
committer | Olli Virtanen <olli.virtanen@oath.com> | 2018-10-24 09:43:47 +0200 |
commit | 03f93552fc3ee9e2a009e837addc2c82e075e4f1 (patch) | |
tree | 3a0cb5ed4fe78436581b43636365760ab6d25a7d /container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java | |
parent | edf46c3e106da961c522add0691dfa090d8637a1 (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.java | 9 |
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); + } } /** |