diff options
author | gjoranv <gv@verizonmedia.com> | 2020-08-17 15:56:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-17 15:56:48 +0200 |
commit | 2fcc1a6fbab5292eefab789f9446c3376530fea4 (patch) | |
tree | f8eaf1a0e18b2c77a95ec7e4733b86d442667e29 | |
parent | 529694a88d48270298171fdcb87d1439f183202b (diff) | |
parent | 1b66ee7a14cfc6403da19c6531099638b8cba6ab (diff) |
Merge pull request #14063 from vespa-engine/hmusum/get-session-list-only-once
Avoid getting session list two times
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java | 11 |
1 files changed, 5 insertions, 6 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 389b661909e..dccb4aa42c3 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 @@ -47,7 +47,6 @@ 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; @@ -317,8 +316,7 @@ public class SessionRepository { getRemoteSessions().forEach(this::sessionAdded); } - private synchronized void sessionsChanged() throws NumberFormatException { - List<Long> sessions = getSessionListFromDirectoryCache(directoryCache.getCurrentData()); + private synchronized void sessionsChanged(List<Long> sessions) throws NumberFormatException { checkForRemovedSessions(sessions); checkForAddedSessions(sessions); } @@ -418,14 +416,15 @@ 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(); - synchronizeOnNew(getSessionListFromDirectoryCache(Collections.singletonList(event.getData()))); + sessionsChanged(sessions); + synchronizeOnNew(sessions); break; case CHILD_REMOVED: case CONNECTION_RECONNECTED: - sessionsChanged(); + sessionsChanged(sessions); break; } }); |