summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-09-07 21:49:43 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2021-09-07 21:49:43 +0200
commit994d45c9d86d9781db5e93d8fc0a649ae12bd42b (patch)
treeb5ecce6eb4bdb7e56f3946094b9f8151af5ea60e /config-model
parente0dd46186f2dead2fdc5666ee8063b3e1af33f69 (diff)
parent9b46fd9bc716c4fac2c84eed2ee25f6cf725aa38 (diff)
Merge branch 'balder/only-allow-legal-inheritance' of github.com:yahoo/vespa into balder/only-allow-legal-inheritance
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java22
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java18
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java1
8 files changed, 46 insertions, 31 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
index e7d15ad9742..01243a75aee 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
@@ -147,13 +147,13 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable
public ClusterControllerContainerCluster getClusterControllers() { return clusterControllers; }
- public void setClusterControllers(ClusterControllerContainerCluster clusterControllers, DeployLogger deployLogger) {
+ public void setClusterControllers(ClusterControllerContainerCluster clusterControllers, DeployState deployState) {
this.clusterControllers = clusterControllers;
if (isHostedVespa) {
// Prefer to put Slobroks on the admin cluster running cluster controllers to avoid unnecessary
// movement of the slobroks when there are changes to the content cluster nodes
removeSlobroks();
- addSlobroks(createSlobroksOn(clusterControllers, deployLogger));
+ addSlobroks(createSlobroksOn(clusterControllers, deployState));
}
}
@@ -162,13 +162,13 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable
slobroks.clear();
}
- private List<Slobrok> createSlobroksOn(ClusterControllerContainerCluster clusterControllers, DeployLogger deployLogger) {
+ private List<Slobrok> createSlobroksOn(ClusterControllerContainerCluster clusterControllers, DeployState deployState) {
List<Slobrok> slobroks = new ArrayList<>();
for (ClusterControllerContainer clusterController : clusterControllers.getContainers()) {
- Slobrok slobrok = new Slobrok(this, clusterController.index());
+ Slobrok slobrok = new Slobrok(this, clusterController.index(), deployState.featureFlags());
slobrok.setHostResource(clusterController.getHostResource());
slobroks.add(slobrok);
- slobrok.initService(deployLogger);
+ slobrok.initService(deployState.getDeployLogger());
}
return slobroks;
}
@@ -218,7 +218,7 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable
*/
public void addPerHostServices(List<HostResource> hosts, DeployState deployState) {
if (slobroks.isEmpty()) // TODO: Move to caller
- slobroks.addAll(createDefaultSlobrokSetup(deployState.getDeployLogger()));
+ slobroks.addAll(createDefaultSlobrokSetup(deployState));
if (! deployState.isHosted() || ! deployState.getProperties().applicationId().instance().isTester())
addMetricsProxyCluster(hosts, deployState);
@@ -295,12 +295,12 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable
}
// If not configured by user: Use default setup: max 3 slobroks, 1 on the default configserver host
- private List<Slobrok> createDefaultSlobrokSetup(DeployLogger deployLogger) {
+ private List<Slobrok> createDefaultSlobrokSetup(DeployState deployState) {
List<HostResource> hosts = hostSystem().getHosts();
List<Slobrok> slobs = new ArrayList<>();
if (logserver != null) {
- Slobrok slobrok = new Slobrok(this, 0);
- addAndInitializeService(deployLogger, logserver.getHostResource(), slobrok);
+ Slobrok slobrok = new Slobrok(this, 0, deployState.featureFlags());
+ addAndInitializeService(deployState.getDeployLogger(), logserver.getHostResource(), slobrok);
slobs.add(slobrok);
}
@@ -308,8 +308,8 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable
while ((n < hosts.size()) && (slobs.size() < 3)) {
HostResource host = hosts.get(n);
if ((logserver== null || host != logserver.getHostResource()) && ! host.getHost().runsConfigServer()) {
- Slobrok newSlobrok = new Slobrok(this, slobs.size());
- addAndInitializeService(deployLogger, host, newSlobrok);
+ Slobrok newSlobrok = new Slobrok(this, slobs.size(), deployState.featureFlags());
+ addAndInitializeService(deployState.getDeployLogger(), host, newSlobrok);
slobs.add(newSlobrok);
}
n++;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java
index 00b6d872ddd..07b1de3fdad 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Slobrok.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.admin;
+import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.vespa.config.core.StateserverConfig;
import com.yahoo.vespa.model.AbstractService;
@@ -16,6 +17,7 @@ public class Slobrok extends AbstractService implements StateserverConfig.Produc
private static final long serialVersionUID = 1L;
public final static int BASEPORT = 19099;
+ public final boolean useNewLogic;
@Override
public void getConfig(StateserverConfig.Builder builder) {
@@ -26,8 +28,11 @@ public class Slobrok extends AbstractService implements StateserverConfig.Produc
* @param parent the parent ConfigProducer.
* @param index unique index for all slobroks
*/
- public Slobrok(AbstractConfigProducer<?> parent, int index) {
+ public Slobrok(AbstractConfigProducer<?> parent, int index,
+ ModelContext.FeatureFlags featureFlags)
+ {
super(parent, "slobrok." + index);
+ this.useNewLogic = featureFlags.newLocationBrokerLogic();
portsMeta.on(0).tag("rpc").tag("admin").tag("status");
portsMeta.on(1).tag("http").tag("state");
setProp("index", index);
@@ -45,6 +50,9 @@ public class Slobrok extends AbstractService implements StateserverConfig.Produc
}
public String getStartupCommand() {
+ if (useNewLogic) {
+ return "exec $ROOT/sbin/vespa-slobrok -N -p " + getRpcPort() + " -c " + getConfigId();
+ }
return "exec $ROOT/sbin/vespa-slobrok -p " + getRpcPort() + " -c " + getConfigId();
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
index ec5da9baa11..a876ba7c3a0 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
@@ -782,6 +782,8 @@ public class VespaMetricSet {
metrics.add(new Metric("vds.mergethrottler.bounced_due_to_back_pressure.rate"));
metrics.add(new Metric("vds.mergethrottler.locallyexecutedmerges.ok.rate"));
metrics.add(new Metric("vds.mergethrottler.mergechains.ok.rate"));
+ metrics.add(new Metric("vds.mergethrottler.mergechains.failures.busy.rate"));
+ metrics.add(new Metric("vds.mergethrottler.mergechains.failures.total.rate"));
return metrics;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
index 04c7db8e701..8e3451540f9 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java
@@ -45,7 +45,7 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
admin.addSlobroks(getSlobroks(deployState, admin, XML.getChild(adminE, "slobroks")));
if ( ! admin.multitenant())
admin.setClusterControllers(addConfiguredClusterControllers(deployState, admin, adminE),
- deployState.getDeployLogger());
+ deployState);
ModelElement adminElement = new ModelElement(adminE);
addLogForwarders(adminElement.child("logforwarding"), admin);
@@ -188,7 +188,7 @@ public class DomAdminV2Builder extends DomAdminBuilderBase {
@Override
protected Slobrok doBuild(DeployState deployState, AbstractConfigProducer parent, Element spec) {
- return new Slobrok(parent, i);
+ return new Slobrok(parent, i, deployState.featureFlags());
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
index c836c5557ea..5b5d1b401aa 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java
@@ -53,20 +53,20 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
Optional<NodesSpecification> requestedLogservers =
NodesSpecification.optionalDedicatedFromParent(adminElement.child("logservers"), context);
- assignSlobroks(deployState.getDeployLogger(), requestedSlobroks.orElse(NodesSpecification.nonDedicated(3, context)), admin);
+ assignSlobroks(deployState, requestedSlobroks.orElse(NodesSpecification.nonDedicated(3, context)), admin);
assignLogserver(deployState, requestedLogservers.orElse(createNodesSpecificationForLogserver()), admin);
addLogForwarders(adminElement.child("logforwarding"), admin);
}
- private void assignSlobroks(DeployLogger deployLogger, NodesSpecification nodesSpecification, Admin admin) {
+ private void assignSlobroks(DeployState deployState, NodesSpecification nodesSpecification, Admin admin) {
if (nodesSpecification.isDedicated()) {
- createSlobroks(deployLogger,
+ createSlobroks(deployState,
admin,
allocateHosts(admin.hostSystem(), "slobroks", nodesSpecification));
}
else { // These will be removed later, if an admin cluster (for cluster controllers) is assigned
- createSlobroks(deployLogger,
+ createSlobroks(deployState,
admin,
pickContainerHostsForSlobrok(nodesSpecification.minResources().nodes(), 2));
}
@@ -177,15 +177,15 @@ public class DomAdminV4Builder extends DomAdminBuilderBase {
return logserver;
}
- private void createSlobroks(DeployLogger deployLogger, Admin admin, Collection<HostResource> hosts) {
+ private void createSlobroks(DeployState deployState, Admin admin, Collection<HostResource> hosts) {
if (hosts.isEmpty()) return; // No slobroks can be created (and none are needed)
List<Slobrok> slobroks = new ArrayList<>();
int index = 0;
for (HostResource host : hosts) {
- Slobrok slobrok = new Slobrok(admin, index++);
+ Slobrok slobrok = new Slobrok(admin, index++, deployState.featureFlags());
slobrok.setHostResource(host);
slobroks.add(slobrok);
- slobrok.initService(deployLogger);
+ slobrok.initService(deployState.getDeployLogger());
}
admin.addSlobroks(slobroks);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
index f0a2e52f6bf..b5fe4ddee41 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
@@ -49,14 +49,18 @@ public class Distributor extends ContentNode implements StorDistributormanagerCo
}
private int tuneNumDistributorStripes() {
- if ((numDistributorStripesFlag == -1) && (getHostResource() != null)) {
- int cores = (int)getHostResource().realResources().vcpu();
- if (cores <= 16) {
- return 1;
- } else if (cores <= 64) {
- return 2;
+ if (numDistributorStripesFlag == -1) {
+ if (getHostResource() != null) {
+ int cores = (int)getHostResource().realResources().vcpu();
+ if (cores <= 16) {
+ return 1;
+ } else if (cores <= 64) {
+ return 2;
+ } else {
+ return 4;
+ }
} else {
- return 4;
+ return 1;
}
}
return numDistributorStripesFlag;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
index ad8948153cb..1f443da51db 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
@@ -296,7 +296,7 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce
"cluster-controllers",
true,
deployState),
- deployState.getDeployLogger());
+ deployState);
}
clusterControllers = admin.getClusterControllers();
}
@@ -313,7 +313,7 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce
"cluster-controllers",
false,
deployState),
- deployState.getDeployLogger());
+ deployState);
}
clusterControllers = admin.getClusterControllers();
}
@@ -347,7 +347,7 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce
"cluster-controllers",
true,
context.getDeployState()),
- deployState.getDeployLogger());
+ deployState);
}
return admin.getClusterControllers();
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
index c79238ed1d6..c7c02c581f9 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
@@ -1079,6 +1079,7 @@ public class ContentClusterTest extends ContentBaseTest {
assertEquals(0, resolveNumDistributorStripesConfigWithFeatureFlag(new TestProperties(), Optional.empty()));
assertEquals(0, resolveNumDistributorStripesConfigWithFeatureFlag(0));
assertEquals(1, resolveNumDistributorStripesConfigWithFeatureFlag(1));
+ assertEquals(1, resolveNumDistributorStripesConfigWithFeatureFlag(-1));
assertEquals(4, resolveNumDistributorStripesConfigWithFeatureFlag(4));
}