diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-04-29 12:12:25 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-05-24 15:16:13 +0200 |
commit | 432b79f947965c6fa13102757998d42d0f17ab5e (patch) | |
tree | 44af6d394a7c1fe1efbf2137cb683127ce139408 /config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java | |
parent | f63093f6519dbad54cf7293826100ce6b510880a (diff) |
Assign Slobroks only on cluster controllers
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java | 14 |
1 files changed, 11 insertions, 3 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 d1b9bbb4e58..e080ce43730 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 @@ -148,15 +148,23 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable public void setClusterControllers(ClusterControllerContainerCluster clusterControllers, DeployLogger deployLogger) { this.clusterControllers = clusterControllers; - if (isHostedVespa) + 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)); + } + } + + private void removeSlobroks() { + slobroks.forEach(Slobrok::remove); + slobroks.clear(); } private List<Slobrok> createSlobroksOn(ClusterControllerContainerCluster clusterControllers, DeployLogger deployLogger) { List<Slobrok> slobroks = new ArrayList<>(); - int index = this.slobroks.size(); for (ClusterControllerContainer clusterController : clusterControllers.getContainers()) { - Slobrok slobrok = new Slobrok(this, index++); + Slobrok slobrok = new Slobrok(this, clusterController.index()); slobrok.setHostResource(clusterController.getHostResource()); slobroks.add(slobrok); slobrok.initService(deployLogger); |