diff options
author | HÃ¥kon Hallingstad <hakon.hallingstad@gmail.com> | 2022-07-11 14:35:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-11 14:35:12 +0200 |
commit | 64028e00179ec394e961be89da3cd919bf40c664 (patch) | |
tree | 2e4cab1fc7884d71b781189c637e64d62edc7e97 | |
parent | 2ff5525244c48dd0f1aa8a1a44291fd8839d14ec (diff) | |
parent | c3cc06995f100156a8beb59e02c50d557799fd82 (diff) |
Merge pull request #23454 from vespa-engine/hmusum/expire-remote-sessions-for-standalone-vespa
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()); |