summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-11-21 21:10:43 +0100
committerGitHub <noreply@github.com>2018-11-21 21:10:43 +0100
commit8a59daf55c312810ce5648a3f37259c487519861 (patch)
tree645676d200aeb72d4edde98d9999bfcc3d56cd78 /config-model
parentc2aaa53513ed848c5d79991988b891e787f6af37 (diff)
parenta1e8c91aafa7142346a7642690d1d7248d3e75c2 (diff)
Merge pull request #5471 from vespa-engine/balder/use-weighted-group-distribution
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 022611fa4f7..1ee70e1c1c5 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, ADAPTIVE};
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.ADAPTIVE;
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.ADAPTIVE;
} 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 5581b9b87ba..2e3c0681f75 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 ADAPTIVE:
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 4749ef314b4..f402bae8fd9 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
@@ -184,7 +184,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 14b7f045ca8..5dab009509d 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.ADAPTIVE == dispatch.getDispatchPolicy());
+ assertNull(dispatch.getMinGroupCoverage());
+ assertNull(dispatch.getMinActiveDocsCoverage());
+ }
+
+ @Test
+ public void requireThatWeightedDispatchWork() {
+ TuningDispatch dispatch = new TuningDispatch.Builder()
+ .setDispatchPolicy("adaptive")
+ .build();
+ assertTrue(TuningDispatch.DispatchPolicy.ADAPTIVE == 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.ADAPTIVE == 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 8c6fe110b0a..93e48f556eb 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.ADAPTIVE == dispatch.getDispatchPolicy());
}
@Test
@@ -86,7 +86,7 @@ public class DomTuningDispatchBuilderTest {
" </dispatch>" +
" </tuning>" +
"</content>");
- assertTrue(TuningDispatch.DispatchPolicy.RANDOM == dispatch.getDispatchPolicy());
+ assertTrue(TuningDispatch.DispatchPolicy.ADAPTIVE == dispatch.getDispatchPolicy());
}
private static TuningDispatch newTuningDispatch(String xml) throws Exception {