summaryrefslogtreecommitdiffstats
path: root/config-model/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/TuningDispatch.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/Dispatch.java11
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java22
5 files changed, 35 insertions, 13 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
index a6f2a205f94..f93688abddc 100644
--- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
+++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
@@ -36,6 +36,7 @@ public class TestProperties implements ModelContext.Properties {
private boolean isFirstTimeDeployment = false;
private boolean useDedicatedNodeForLogserver = false;
private boolean useFdispatchByDefault = true;
+ private boolean useAdaptiveDispatch = false;
@Override public boolean multitenant() { return multitenant; }
@Override public ApplicationId applicationId() { return applicationId; }
@@ -48,6 +49,7 @@ public class TestProperties implements ModelContext.Properties {
@Override public Set<Rotation> rotations() { return rotations; }
@Override public boolean isBootstrap() { return isBootstrap; }
@Override public boolean isFirstTimeDeployment() { return isFirstTimeDeployment; }
+ @Override public boolean useAdaptiveDispatch() { return useAdaptiveDispatch; }
@Override public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; }
@Override public boolean useFdispatchByDefault() { return useFdispatchByDefault; }
@@ -61,6 +63,11 @@ public class TestProperties implements ModelContext.Properties {
return this;
}
+ public TestProperties setUseAdaptiveDispatch(boolean useAdaptiveDispatch) {
+ this.useAdaptiveDispatch = useAdaptiveDispatch;
+ return this;
+ }
+
public TestProperties setMultitenant(boolean multitenant) {
this.multitenant = multitenant;
return this;
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 b3815994742..ec958589483 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
@@ -33,7 +33,7 @@ public class TuningDispatch {
public static class Builder {
private Integer maxHitsPerPartition;
- private DispatchPolicy dispatchPolicy = DispatchPolicy.ROUNDROBIN;
+ private DispatchPolicy dispatchPolicy;
private Boolean useLocalNode;
private Double minGroupCoverage;
private Double minActiveDocsCoverage;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/Dispatch.java b/config-model/src/main/java/com/yahoo/vespa/model/search/Dispatch.java
index 8158de692a9..b9c937b4a4c 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/Dispatch.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/Dispatch.java
@@ -7,7 +7,6 @@ import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.vespa.model.AbstractService;
import com.yahoo.vespa.model.application.validation.RestartConfigs;
import com.yahoo.vespa.model.content.SearchCoverage;
-import com.yahoo.vespa.model.content.TuningDispatch;
import java.util.ArrayList;
import java.util.List;
@@ -32,6 +31,7 @@ public class Dispatch extends AbstractService implements SearchInterface,
private final int dispatchLevel;
private final boolean preferLocalRow;
private final boolean isTopLevel;
+ private boolean useAdaptiveDispatch;
private Dispatch(DispatchGroup dispatchGroup, AbstractConfigProducer parent, String subConfigId,
NodeSpec nodeSpec, int dispatchLevel, boolean preferLocalRow, boolean isTopLevel) {
@@ -41,6 +41,7 @@ public class Dispatch extends AbstractService implements SearchInterface,
this.dispatchLevel = dispatchLevel;
this.preferLocalRow = preferLocalRow;
this.isTopLevel = isTopLevel;
+ this.useAdaptiveDispatch = false;
portsMeta.on(0).tag("rpc").tag("admin");
portsMeta.on(1).tag("fs4");
portsMeta.on(2).tag("http").tag("json").tag("health").tag("state");
@@ -49,6 +50,11 @@ public class Dispatch extends AbstractService implements SearchInterface,
.setProp("index", nodeSpec.groupIndex());
}
+ public Dispatch useAdaptiveDispatch(boolean useAdaptiveDispatch) {
+ this.useAdaptiveDispatch = useAdaptiveDispatch;
+ return this;
+ }
+
public static Dispatch createTld(DispatchGroup dispatchGroup, AbstractConfigProducer parent, int rowId) {
return createTld(dispatchGroup, parent, rowId, false);
}
@@ -139,6 +145,9 @@ public class Dispatch extends AbstractService implements SearchInterface,
datasetBuilder.querydistribution(PartitionsConfig.Dataset.Querydistribution.Enum.FIXEDROW);
datasetBuilder.maxnodesdownperfixedrow(dispatchGroup.getMaxNodesDownPerFixedRow());
}
+ if (useAdaptiveDispatch) {
+ datasetBuilder.useroundrobinforfixedrow(false);
+ }
SearchCoverage coverage = dispatchGroup.getSearchCoverage();
if (coverage != null) {
if (coverage.getMinimum() != null) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
index 6aa023e486b..fe61041196b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
@@ -107,6 +107,7 @@ public class IndexedSearchCluster extends SearchCluster
private final DispatchGroup rootDispatch;
private DispatchSpec dispatchSpec;
private final boolean useFdispatchByDefault;
+ private final boolean useAdaptiveDispatch;
private List<SearchNode> searchNodes = new ArrayList<>();
/**
@@ -125,6 +126,7 @@ public class IndexedSearchCluster extends SearchCluster
dispatchParent = new SimpleConfigProducer(this, "dispatchers");
rootDispatch = new DispatchGroup(this);
useFdispatchByDefault = deployState.getProperties().useFdispatchByDefault();
+ useAdaptiveDispatch = deployState.getProperties().useAdaptiveDispatch();
}
@Override
@@ -186,6 +188,7 @@ public class IndexedSearchCluster extends SearchCluster
public Dispatch addTld(DeployLogger deployLogger, AbstractConfigProducer tldParent, HostResource hostResource) {
int index = rootDispatch.getDispatchers().size();
Dispatch tld = Dispatch.createTld(rootDispatch, tldParent, index);
+ tld.useAdaptiveDispatch(useAdaptiveDispatch);
tld.setHostResource(hostResource);
tld.initService(deployLogger);
rootDispatch.addDispatcher(tld);
@@ -210,12 +213,13 @@ public class IndexedSearchCluster extends SearchCluster
log.log(LogLevel.DEBUG, "Adding tld with index " + containerIndex + " for content cluster " + this.getClusterName() +
", container cluster " + containerClusterName + " (container id " + containerSubId +
") on host " + container.getHostResource().getHostname());
- rootDispatch.addDispatcher(createTld(deployLogger, tldParent, container.getHostResource(), containerClusterName, containerIndex));
+ rootDispatch.addDispatcher(createTld(deployLogger, tldParent, container.getHostResource(), containerClusterName, containerIndex).useAdaptiveDispatch(useAdaptiveDispatch));
}
}
private Dispatch createTld(DeployLogger deployLogger, AbstractConfigProducer tldParent, HostResource hostResource, String containerClusterName, int containerIndex) {
Dispatch tld = Dispatch.createTldWithContainerIdInName(rootDispatch, tldParent, containerClusterName, containerIndex);
+ tld.useAdaptiveDispatch(useAdaptiveDispatch);
tld.setHostResource(hostResource);
tld.initService(deployLogger);
return tld;
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 2571381167e..2e51e432e68 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
@@ -19,7 +19,7 @@ public class Tuning extends AbstractConfigProducer implements PartitionsConfig.P
public static class Dispatch implements PartitionsConfig.Producer {
public Integer maxHitsPerPartition = null;
- public TuningDispatch.DispatchPolicy policy = TuningDispatch.DispatchPolicy.ROUNDROBIN;
+ public TuningDispatch.DispatchPolicy policy = null;
public boolean useLocalNode = false;
public Double minGroupCoverage = null;
public Double minActiveDocsCoverage = null;
@@ -41,15 +41,17 @@ public class Tuning extends AbstractConfigProducer implements PartitionsConfig.P
dataset.min_activedocs_coverage(minActiveDocsCoverage);
}
}
- for (PartitionsConfig.Dataset.Builder dataset : builder.dataset) {
- switch (policy) {
- case ADAPTIVE:
- dataset.useroundrobinforfixedrow(false);
- break;
- case ROUNDROBIN:
- default:
- dataset.useroundrobinforfixedrow(true);
- break;
+ if (policy != null) {
+ for (PartitionsConfig.Dataset.Builder dataset : builder.dataset) {
+ switch (policy) {
+ case ADAPTIVE:
+ dataset.useroundrobinforfixedrow(false);
+ break;
+ case ROUNDROBIN:
+ default:
+ dataset.useroundrobinforfixedrow(true);
+ break;
+ }
}
}
}