aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-08-21 12:29:45 +0200
committerGitHub <noreply@github.com>2020-08-21 12:29:45 +0200
commitf088908ae437891446eef38d6752dd63b590a31d (patch)
tree53381a9fa9533c40238873563799f84b912bf0d2 /configserver
parent41aa82a4e6c4a45b1d179763238a557c560cf742 (diff)
parent03d3f98f61197b120be99dd40bfae5aff5de1bce (diff)
Merge pull request #14084 from vespa-engine/revert-14063-hmusum/get-session-list-only-once
Revert "Avoid getting session list two times"
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java11
1 files changed, 6 insertions, 5 deletions
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 0d093f83ed0..2e6180aeb81 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
@@ -46,6 +46,7 @@ import java.time.Clock;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -316,7 +317,8 @@ public class SessionRepository {
getRemoteSessions().forEach(this::sessionAdded);
}
- private synchronized void sessionsChanged(List<Long> sessions) throws NumberFormatException {
+ private synchronized void sessionsChanged() throws NumberFormatException {
+ List<Long> sessions = getSessionListFromDirectoryCache(directoryCache.getCurrentData());
checkForRemovedSessions(sessions);
checkForAddedSessions(sessions);
}
@@ -416,15 +418,14 @@ public class SessionRepository {
private void childEvent(CuratorFramework ignored, PathChildrenCacheEvent event) {
zkWatcherExecutor.execute(() -> {
log.log(Level.FINE, () -> "Got child event: " + event);
- List<Long> sessions = getSessionListFromDirectoryCache(directoryCache.getCurrentData());
switch (event.getType()) {
case CHILD_ADDED:
- sessionsChanged(sessions);
- synchronizeOnNew(sessions);
+ sessionsChanged();
+ synchronizeOnNew(getSessionListFromDirectoryCache(Collections.singletonList(event.getData())));
break;
case CHILD_REMOVED:
case CONNECTION_RECONNECTED:
- sessionsChanged(sessions);
+ sessionsChanged();
break;
}
});