summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-12-09 21:12:44 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-12-09 21:12:44 +0100
commitc8f8e85351b70a02b9915b6978dd05e1c2cc55c7 (patch)
treeccd03852e91dfd64838ac3d46e3ed00084f34188 /configserver
parent0107067c0a9c29dd4e60231ad79e35786c390626 (diff)
Split (async) shutdown and (sync) wait for it, and use lists in all maintainer owners
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java26
1 files changed, 11 insertions, 15 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java
index 21462bc4fec..fa82744de90 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.maintenance;
import com.google.inject.Inject;
import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.component.AbstractComponent;
+import com.yahoo.concurrent.maintenance.Maintainer;
import com.yahoo.jdisc.Metric;
import com.yahoo.vespa.config.server.ApplicationRepository;
import com.yahoo.vespa.config.server.ConfigServerBootstrap;
@@ -13,6 +14,8 @@ import com.yahoo.vespa.flags.FlagSource;
import java.time.Clock;
import java.time.Duration;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
/**
* Maintenance jobs of the config server.
@@ -24,11 +27,7 @@ import java.time.Duration;
*/
public class ConfigServerMaintenance extends AbstractComponent {
- private final TenantsMaintainer tenantsMaintainer;
- private final FileDistributionMaintainer fileDistributionMaintainer;
- private final SessionsMaintainer sessionsMaintainer;
- private final ApplicationPackageMaintainer applicationPackageMaintainer;
- private final ReindexingMaintainer reindexingMaintainer;
+ private final List<Maintainer> maintainers = new CopyOnWriteArrayList<>();
@Inject
public ConfigServerMaintenance(ConfigServerBootstrap configServerBootstrap,
@@ -38,20 +37,17 @@ public class ConfigServerMaintenance extends AbstractComponent {
FlagSource flagSource,
ConfigConvergenceChecker convergence) {
DefaultTimes defaults = new DefaultTimes(configserverConfig);
- tenantsMaintainer = new TenantsMaintainer(applicationRepository, curator, flagSource, defaults.defaultInterval, Clock.systemUTC());
- fileDistributionMaintainer = new FileDistributionMaintainer(applicationRepository, curator, defaults.defaultInterval, flagSource);
- sessionsMaintainer = new SessionsMaintainer(applicationRepository, curator, Duration.ofSeconds(30), flagSource);
- applicationPackageMaintainer = new ApplicationPackageMaintainer(applicationRepository, curator, Duration.ofSeconds(30), flagSource);
- reindexingMaintainer = new ReindexingMaintainer(applicationRepository, curator, flagSource, Duration.ofMinutes(3), convergence, Clock.systemUTC());
+ maintainers.add(new TenantsMaintainer(applicationRepository, curator, flagSource, defaults.defaultInterval, Clock.systemUTC()));
+ maintainers.add(new FileDistributionMaintainer(applicationRepository, curator, defaults.defaultInterval, flagSource));
+ maintainers.add(new SessionsMaintainer(applicationRepository, curator, Duration.ofSeconds(30), flagSource));
+ maintainers.add(new ApplicationPackageMaintainer(applicationRepository, curator, Duration.ofSeconds(30), flagSource));
+ maintainers.add(new ReindexingMaintainer(applicationRepository, curator, flagSource, Duration.ofMinutes(3), convergence, Clock.systemUTC()));
}
@Override
public void deconstruct() {
- fileDistributionMaintainer.close();
- sessionsMaintainer.close();
- applicationPackageMaintainer.close();
- tenantsMaintainer.close();
- reindexingMaintainer.close();
+ maintainers.forEach(Maintainer::shutdown);
+ maintainers.forEach(Maintainer::close);
}
/*