diff options
author | Harald Musum <musum@yahooinc.com> | 2022-07-11 13:20:57 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2022-07-11 13:20:57 +0200 |
commit | c3cc06995f100156a8beb59e02c50d557799fd82 (patch) | |
tree | f2e0a3b3d143726b1693f53d15d813b7786b77b6 | |
parent | 548fcbaa2a98f1626e7fb652db36dbfd4e9a1624 (diff) |
Expire remote sessions for standalone Vespa as well
4 files changed, 10 insertions, 15 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index ca56a200c2c..7949c2633e0 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -911,14 +911,10 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye sessionsPerTenant.keySet().forEach(tenant -> tenant.getSessionRepository().deleteExpiredSessions(activeSessions)); } - public int deleteExpiredRemoteSessions(Duration expiryTime) { - return deleteExpiredRemoteSessions(clock, expiryTime); - } - - public int deleteExpiredRemoteSessions(Clock clock, Duration expiryTime) { + public int deleteExpiredRemoteSessions(Clock clock) { return tenantRepository.getAllTenants() .stream() - .map(tenant -> tenant.getSessionRepository().deleteExpiredRemoteSessions(clock, expiryTime)) + .map(tenant -> tenant.getSessionRepository().deleteExpiredRemoteSessions(clock)) .mapToInt(i -> i) .sum(); } 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 d980fb079e7..38ac41d0eb9 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 @@ -16,22 +16,17 @@ import java.util.logging.Level; * @author hmusum */ public class SessionsMaintainer extends ConfigServerMaintainer { - private final boolean hostedVespa; SessionsMaintainer(ApplicationRepository applicationRepository, Curator curator, Duration interval, FlagSource flagSource) { super(applicationRepository, curator, flagSource, applicationRepository.clock().instant(), interval, true); - this.hostedVespa = applicationRepository.configserverConfig().hostedVespa(); } @Override protected double maintain() { applicationRepository.deleteExpiredLocalSessions(); - if (hostedVespa) { - Duration expiryTime = Duration.ofMinutes(90); - int deleted = applicationRepository.deleteExpiredRemoteSessions(expiryTime); - log.log(Level.FINE, () -> "Deleted " + deleted + " expired remote sessions older than " + expiryTime); - } + int deleted = applicationRepository.deleteExpiredRemoteSessions(applicationRepository.clock()); + log.log(Level.FINE, () -> "Deleted " + deleted + " expired remote sessions"); return 1.0; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java index ecfee6f2b70..bf596ddf985 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java @@ -350,7 +350,11 @@ public class SessionRepository { return session; } - public int deleteExpiredRemoteSessions(Clock clock, Duration expiryTime) { + public int deleteExpiredRemoteSessions(Clock clock) { + Duration expiryTime = configserverConfig.hostedVespa() + ? sessionLifetime.multipliedBy(2) + : sessionLifetime.multipliedBy(24); // TODO: Remove when tested more (Sep. 2022 at the latest) + List<Long> remoteSessionsFromZooKeeper = getRemoteSessionsFromZooKeeper(); log.log(Level.FINE, () -> "Remote sessions for tenant " + tenantName + ": " + remoteSessionsFromZooKeeper); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index 46cf84e19c1..fe188e08036 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -446,7 +446,7 @@ public class ApplicationRepositoryTest { assertEquals(3, localSession.getSessionId()); // All sessions except 3 should be removed after the call to deleteExpiredRemoteSessions - assertEquals(2, tester.applicationRepository().deleteExpiredRemoteSessions(clock, Duration.ofSeconds(0))); + assertEquals(2, tester.applicationRepository().deleteExpiredRemoteSessions(clock)); ArrayList<Long> remoteSessions = new ArrayList<>(sessionRepository.getRemoteSessionsFromZooKeeper()); Session remoteSession = sessionRepository.getRemoteSession(remoteSessions.get(0)); assertEquals(3, remoteSession.getSessionId()); |