summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHÃ¥kon Hallingstad <hakon.hallingstad@gmail.com>2022-07-11 14:35:12 +0200
committerGitHub <noreply@github.com>2022-07-11 14:35:12 +0200
commit64028e00179ec394e961be89da3cd919bf40c664 (patch)
tree2e4cab1fc7884d71b781189c637e64d62edc7e97
parent2ff5525244c48dd0f1aa8a1a44291fd8839d14ec (diff)
parentc3cc06995f100156a8beb59e02c50d557799fd82 (diff)
Merge pull request #23454 from vespa-engine/hmusum/expire-remote-sessions-for-standalone-vespa
Expire remote sessions for standalone Vespa as well
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java8
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/SessionsMaintainer.java9
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java6
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java2
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());