summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com')
-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/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/cluster/ContentCluster.java6
5 files changed, 32 insertions, 24 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/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/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();
}