aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-04-29 12:12:25 +0200
committerJon Bratseth <bratseth@gmail.com>2021-05-24 15:16:13 +0200
commit432b79f947965c6fa13102757998d42d0f17ab5e (patch)
tree44af6d394a7c1fe1efbf2137cb683127ce139408 /config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
parentf63093f6519dbad54cf7293826100ce6b510880a (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.java14
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);