summaryrefslogtreecommitdiffstats
path: root/configserver/src
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-05-07 18:52:43 +0200
committerGitHub <noreply@github.com>2020-05-07 18:52:43 +0200
commit422696491e50bedc57bd390c3e87d1d2a681e55c (patch)
tree9c15b4685374d1313c679237f0622c0b38e76210 /configserver/src
parentecd7c92ee590e652864898199def858b6cf52434 (diff)
Revert "Revert "Add flag for expiry time for config server sessions""
Diffstat (limited to 'configserver/src')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java14
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java2
5 files changed, 16 insertions, 12 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java
index 06d8d41791d..7b4664e040c 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintainer.java
@@ -24,10 +24,6 @@ public abstract class ConfigServerMaintainer extends Maintainer {
protected final ApplicationRepository applicationRepository;
- ConfigServerMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval) {
- this(applicationRepository, curator, interval, interval);
- }
-
ConfigServerMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration initialDelay, Duration interval) {
super(null, interval, initialDelay, new JobControl(new JobControlDb(curator)));
this.applicationRepository = applicationRepository;
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 797c18681ec..502cf280e60 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
@@ -7,6 +7,7 @@ import com.yahoo.config.provision.SystemName;
import com.yahoo.vespa.config.server.ApplicationRepository;
import com.yahoo.vespa.config.server.session.FileDistributionFactory;
import com.yahoo.vespa.curator.Curator;
+import com.yahoo.vespa.flags.FlagSource;
import java.time.Duration;
@@ -27,12 +28,13 @@ public class ConfigServerMaintenance extends AbstractComponent {
public ConfigServerMaintenance(ConfigserverConfig configserverConfig,
ApplicationRepository applicationRepository,
Curator curator,
- FileDistributionFactory fileDistributionFactory) {
+ FileDistributionFactory fileDistributionFactory,
+ FlagSource flagSource) {
DefaultTimes defaults = new DefaultTimes(configserverConfig);
// TODO: Disabled until we have application metadata
//tenantsMaintainer = new TenantsMaintainer(applicationRepository, curator, defaults.tenantsMaintainerInterval);
fileDistributionMaintainer = new FileDistributionMaintainer(applicationRepository, curator, defaults.defaultInterval, configserverConfig);
- sessionsMaintainer = new SessionsMaintainer(applicationRepository, curator, defaults.defaultInterval);
+ sessionsMaintainer = new SessionsMaintainer(applicationRepository, curator, defaults.defaultInterval, flagSource);
}
@Override
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java
index b4ae81376ad..604212b0ae8 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/FileDistributionMaintainer.java
@@ -26,7 +26,7 @@ public class FileDistributionMaintainer extends ConfigServerMaintainer {
Curator curator,
Duration interval,
ConfigserverConfig configserverConfig) {
- super(applicationRepository, curator, interval);
+ super(applicationRepository, curator, interval, interval);
this.applicationRepository = applicationRepository;
this.configserverConfig = configserverConfig;
this.fileReferencesDir = new File(Defaults.getDefaults().underVespaHome(configserverConfig.fileReferencesDir()));
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java
index 214b0f5e732..c5c3e348602 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java
@@ -1,8 +1,12 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.maintenance;
+import com.yahoo.log.LogLevel;
import com.yahoo.vespa.config.server.ApplicationRepository;
import com.yahoo.vespa.curator.Curator;
+import com.yahoo.vespa.flags.FlagSource;
+import com.yahoo.vespa.flags.Flags;
+import com.yahoo.vespa.flags.LongFlag;
import java.time.Duration;
@@ -15,12 +19,14 @@ import java.time.Duration;
*/
public class SessionsMaintainer extends ConfigServerMaintainer {
private final boolean hostedVespa;
+ private final LongFlag expiryTimeFlag;
- SessionsMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval) {
+ SessionsMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval, FlagSource flagSource) {
// Start this maintainer immediately. It frees disk space, so if disk goes full and config server
// restarts this makes sure that cleanup will happen as early as possible
super(applicationRepository, curator, Duration.ZERO, interval);
this.hostedVespa = applicationRepository.configserverConfig().hostedVespa();
+ this.expiryTimeFlag = Flags.CONFIGSERVER_SESSIONS_EXPIRY_INTERVAL_IN_DAYS.bindTo(flagSource);
}
@Override
@@ -30,9 +36,9 @@ public class SessionsMaintainer extends ConfigServerMaintainer {
// Expired remote sessions are sessions that belong to an application that have external deployments that
// are no longer active
if (hostedVespa) {
- // TODO: Reduce to 7 days in steps, otherwise startup of config servers takes a long time
- Duration expiryTime = Duration.ofDays(28);
- applicationRepository.deleteExpiredRemoteSessions(expiryTime);
+ Duration expiryTime = Duration.ofMinutes(expiryTimeFlag.value());
+ int deleted = applicationRepository.deleteExpiredRemoteSessions(expiryTime);
+ log.log(LogLevel.INFO, "Deleted " + deleted + " expired remote sessions, expiry time " + expiryTime);
}
}
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java
index f0753638101..b3c67859098 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/TenantsMaintainer.java
@@ -21,7 +21,7 @@ public class TenantsMaintainer extends ConfigServerMaintainer {
}
private TenantsMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval, Duration ttlForUnusedTenant) {
- super(applicationRepository, curator, interval);
+ super(applicationRepository, curator, interval, interval);
this.ttlForUnusedTenant = ttlForUnusedTenant;
}