summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-06-15 16:34:43 +0200
committerGitHub <noreply@github.com>2021-06-15 16:34:43 +0200
commit8ef499e16e9fb5daede071d36cb523f4d30538c0 (patch)
tree9120fcd1105f9a3a487ad02fe1cf8e847406bce1
parent5fc6e1efa88c6c86d7b0f697eeb238e593aa782f (diff)
parent7aaceccd0a420cb862bf2adc0e06bcaec2dc35a4 (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.java7
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/Flags.java6
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,