aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-04-05 17:50:51 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2018-04-05 17:50:51 +0200
commit0ed195a2fd2e6eb5da01aa7b70dbb7847d557d85 (patch)
tree6f61ca7c31a59ffe5a84bab5bf6d15a28dee02d2 /config-model
parent97bf0d647fd2f3aee965d6fe31654a4c1b3c740d (diff)
Use weighted random group distribution as default
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/TuningDispatch.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java10
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/TuningDispatchTest.java14
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomTuningDispatchBuilderTest.java4
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 {