diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-04-05 17:50:51 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-04-05 17:50:51 +0200 |
commit | 0ed195a2fd2e6eb5da01aa7b70dbb7847d557d85 (patch) | |
tree | 6f61ca7c31a59ffe5a84bab5bf6d15a28dee02d2 /config-model | |
parent | 97bf0d647fd2f3aee965d6fe31654a4c1b3c740d (diff) |
Use weighted random group distribution as default
Diffstat (limited to 'config-model')
5 files changed, 28 insertions, 8 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/TuningDispatch.java b/config-model/src/main/java/com/yahoo/vespa/model/content/TuningDispatch.java index 8dd4e941154..774bb5abdbf 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/TuningDispatch.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/TuningDispatch.java @@ -7,7 +7,7 @@ package com.yahoo.vespa.model.content; public class TuningDispatch { private final Integer maxHitsPerPartition; - public enum DispatchPolicy { ROUNDROBIN, RANDOM}; + public enum DispatchPolicy { ROUNDROBIN, WEIGHTED}; private final DispatchPolicy dispatchPolicy; private final Boolean useLocalNode; private final Double minGroupCoverage; @@ -33,7 +33,7 @@ public class TuningDispatch { public static class Builder { private Integer maxHitsPerPartition; - private DispatchPolicy dispatchPolicy = DispatchPolicy.ROUNDROBIN; + private DispatchPolicy dispatchPolicy = DispatchPolicy.WEIGHTED; private Boolean useLocalNode; private Double minGroupCoverage; private Double minActiveDocsCoverage; @@ -48,6 +48,8 @@ public class TuningDispatch { } public Builder setDispatchPolicy(String policy) { if (policy == null) { + } else if ("random".equals(policy.toLowerCase())) { + dispatchPolicy = DispatchPolicy.WEIGHTED; } else if ("round-robin".equals(policy.toLowerCase())) { dispatchPolicy = DispatchPolicy.ROUNDROBIN; } else { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java b/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java index f29c7ade816..a2dbdfb293f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java @@ -43,7 +43,7 @@ public class Tuning extends AbstractConfigProducer implements PartitionsConfig.P } for (PartitionsConfig.Dataset.Builder dataset : builder.dataset) { switch (policy) { - case RANDOM: + case WEIGHTED: dataset.useroundrobinforfixedrow(false); break; case ROUNDROBIN: diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java index fd25ae2ae48..f7f6c706057 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java @@ -183,7 +183,15 @@ public class IndexedHierarchicDistributionTest { " </group>", ""); } private ContentCluster getIllegalGroupsCluster() throws Exception { - return createCluster(createClusterXml(getOddGroupsClusterXml(), 4, 4)); + return createCluster(createClusterXml(getOddGroupsClusterXml(), Optional.of(getRoundRobinDispatchXml()), 4, 4)); + } + + private String getRoundRobinDispatchXml() { + return joinLines("<tuning>", + " <dispatch>", + " <dispatch-policy>round-robin</dispatch-policy>", + " </dispatch>", + "</tuning>"); } private String getRandomDispatchXml() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/TuningDispatchTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/TuningDispatchTest.java index 5cfdc8eb6b6..8d618037076 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/TuningDispatchTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/TuningDispatchTest.java @@ -30,7 +30,17 @@ public class TuningDispatchTest { TuningDispatch dispatch = new TuningDispatch.Builder() .setDispatchPolicy("random") .build(); - assertTrue(TuningDispatch.DispatchPolicy.RANDOM == dispatch.getDispatchPolicy()); + assertTrue(TuningDispatch.DispatchPolicy.WEIGHTED == dispatch.getDispatchPolicy()); + assertNull(dispatch.getMinGroupCoverage()); + assertNull(dispatch.getMinActiveDocsCoverage()); + } + + @Test + public void requireThatWeightedDispatchWork() { + TuningDispatch dispatch = new TuningDispatch.Builder() + .setDispatchPolicy("weighted") + .build(); + assertTrue(TuningDispatch.DispatchPolicy.WEIGHTED == dispatch.getDispatchPolicy()); assertNull(dispatch.getMinGroupCoverage()); assertNull(dispatch.getMinActiveDocsCoverage()); } @@ -39,6 +49,6 @@ public class TuningDispatchTest { public void requireThatDefaultsAreNull() { TuningDispatch dispatch = new TuningDispatch.Builder().build(); assertNull(dispatch.getMaxHitsPerPartition()); - assertTrue(TuningDispatch.DispatchPolicy.ROUNDROBIN == dispatch.getDispatchPolicy()); + assertTrue(TuningDispatch.DispatchPolicy.WEIGHTED == dispatch.getDispatchPolicy()); } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomTuningDispatchBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomTuningDispatchBuilderTest.java index a8d928fe236..3b87aad2f6b 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomTuningDispatchBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomTuningDispatchBuilderTest.java @@ -45,7 +45,7 @@ public class DomTuningDispatchBuilderTest { assertNull(dispatch.getMaxHitsPerPartition()); assertNull(dispatch.getMinGroupCoverage()); assertNull(dispatch.getMinActiveDocsCoverage()); - assertTrue(TuningDispatch.DispatchPolicy.ROUNDROBIN == dispatch.getDispatchPolicy()); + assertTrue(TuningDispatch.DispatchPolicy.WEIGHTED == dispatch.getDispatchPolicy()); } @Test @@ -86,7 +86,7 @@ public class DomTuningDispatchBuilderTest { " </dispatch>" + " </tuning>" + "</content>"); - assertTrue(TuningDispatch.DispatchPolicy.RANDOM == dispatch.getDispatchPolicy()); + assertTrue(TuningDispatch.DispatchPolicy.WEIGHTED == dispatch.getDispatchPolicy()); } private static TuningDispatch newTuningDispatch(String xml) throws Exception { |