diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-06-15 16:34:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-15 16:34:43 +0200 |
commit | 8ef499e16e9fb5daede071d36cb523f4d30538c0 (patch) | |
tree | 9120fcd1105f9a3a487ad02fe1cf8e847406bce1 | |
parent | 5fc6e1efa88c6c86d7b0f697eeb238e593aa782f (diff) | |
parent | 7aaceccd0a420cb862bf2adc0e06bcaec2dc35a4 (diff) |
Merge pull request #18276 from vespa-engine/hmusum/add-flag-for-skipping-bootstrapping-local-sesssions
Load local sessions only if enabled by flag
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java | 7 | ||||
-rw-r--r-- | flags/src/main/java/com/yahoo/vespa/flags/Flags.java | 6 |
2 files changed, 10 insertions, 3 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 6fcdd7b0995..41d050025bf 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 @@ -166,16 +166,17 @@ public class SessionRepository { this.configDefinitionRepo = configDefinitionRepo; this.rewriteSearchDefinitions = Flags.MOVE_SEARCH_DEFINITIONS_TO_SCHEMAS_DIR.bindTo(flagSource); - loadSessions(); // Needs to be done before creating cache below + loadSessions(Flags.LOAD_LOCAL_SESSIONS_WHEN_BOOTSTRAPPING.bindTo(flagSource)); // Needs to be done before creating cache below this.directoryCache = curator.createDirectoryCache(sessionsPath.getAbsolute(), false, false, zkCacheExecutor); this.directoryCache.addListener(this::childEvent); this.directoryCache.start(); } - private void loadSessions() { + private void loadSessions(BooleanFlag loadLocalSessions) { ExecutorService executor = Executors.newFixedThreadPool(Math.max(8, Runtime.getRuntime().availableProcessors()), new DaemonThreadFactory("load-sessions-")); - loadLocalSessions(executor); + if (loadLocalSessions.value()) + loadLocalSessions(executor); loadRemoteSessions(executor); try { executor.shutdown(); diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 45c423f7353..4885f5c9ae5 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -280,6 +280,12 @@ public class Flags { "Takes effect on next deployment", ZONE_ID, APPLICATION_ID); + public static final UnboundBooleanFlag LOAD_LOCAL_SESSIONS_WHEN_BOOTSTRAPPING = defineFeatureFlag( + "load-local-sessions-when-bootstrapping", true, + List.of("hmusum"), "2021-06-15", "2021-07-15", + "Whether to load local sessions when bootstrapping config server", + "Takes effect on restart of config server"); + /** WARNING: public for testing: All flags should be defined in {@link Flags}. */ public static UnboundBooleanFlag defineFeatureFlag(String flagId, boolean defaultValue, List<String> owners, String createdAt, String expiresAt, String description, |