diff options
author | Håkon Hallingstad <hakon@oath.com> | 2019-01-26 02:30:54 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2019-01-26 02:30:54 +0100 |
commit | 5b51470fdf2eb245d509984047dc84ef3a7fae83 (patch) | |
tree | a310e85085feaf5624f826215af766dd4e704b42 /configserver | |
parent | 5d126afb33df13888c58e5b43a79c893c23fb65b (diff) |
Read override file flags from file only once for config server
Up until now, every lookup of a flag in the ConfigServerFlagSource would
1. try to read 2 flag files under /etc/vespa/flags, causing exceptions
because they are typically not set, and
2. then read flag from ZooKeeper through ZooKeeperFlagSource
Optimization was deliberately held off until later (now). This PR fixes (1).
Changes the ConfigServerFlagSource to:
1'. Read VESPA_HOME/var/vespa/flag.db once during component graph
construction. As before, if a flag is defined on file, the flag is not
looked up in ZK, which may be useful in emergencies.
2. As before.
Also, removes the last usages of FileFlagSource and its reading of flags in
/etc/vespa/flags.
Diffstat (limited to 'configserver')
3 files changed, 9 insertions, 9 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java index 2463cca190a..d6d2bfbe89f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/Application.java @@ -25,9 +25,9 @@ import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.util.ConfigUtils; import com.yahoo.vespa.flags.BooleanFlag; import com.yahoo.vespa.flags.FetchVector; -import com.yahoo.vespa.flags.FileFlagSource; import com.yahoo.vespa.flags.FlagSource; import com.yahoo.vespa.flags.Flags; +import com.yahoo.vespa.flags.InMemoryFlagSource; import java.util.Objects; import java.util.Set; @@ -53,7 +53,7 @@ public class Application implements ModelResult { public Application(Model model, ServerCache cache, long appGeneration, boolean internalRedeploy, Version vespaVersion, MetricUpdater metricUpdater, ApplicationId app) { - this(model, cache, appGeneration, internalRedeploy, vespaVersion, metricUpdater, app, new FileFlagSource()); + this(model, cache, appGeneration, internalRedeploy, vespaVersion, metricUpdater, app, new InMemoryFlagSource()); } public Application(Model model, ServerCache cache, long appGeneration, boolean internalRedeploy, diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java index b2e911c47a4..476f77ae1db 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java @@ -14,11 +14,12 @@ import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.rpc.RpcServer; -import com.yahoo.vespa.config.server.session.*; -import com.yahoo.vespa.curator.mock.MockCurator; +import com.yahoo.vespa.config.server.session.SessionPreparer; +import com.yahoo.vespa.config.server.session.SessionTest; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.curator.Curator; -import com.yahoo.vespa.flags.FileFlagSource; +import com.yahoo.vespa.curator.mock.MockCurator; +import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.VespaModelFactory; import org.junit.Before; import org.junit.Rule; @@ -75,7 +76,7 @@ public class InjectedGlobalComponentRegistryTest { globalComponentRegistry = new InjectedGlobalComponentRegistry(curator, configCurator, metrics, modelFactoryRegistry, sessionPreparer, rpcServer, configserverConfig, generationCounter, defRepo, permanentApplicationPackage, hostRegistries, hostProvisionerProvider, zone, - new ConfigServerDB(configserverConfig), new FileFlagSource()); + new ConfigServerDB(configserverConfig), new InMemoryFlagSource()); } @Test diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java index 83b1fdd009f..ef1f0f380e3 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java @@ -18,10 +18,9 @@ import com.yahoo.vespa.config.server.session.SessionPreparer; import com.yahoo.vespa.config.server.tenant.MockTenantListener; import com.yahoo.vespa.config.server.tenant.TenantListener; import com.yahoo.vespa.config.server.tenant.TenantRequestHandlerTest; +import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.curator.mock.MockCurator; -import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; -import com.yahoo.vespa.flags.FileFlagSource; import com.yahoo.vespa.flags.FlagSource; import com.yahoo.vespa.flags.InMemoryFlagSource; import com.yahoo.vespa.model.VespaModelFactory; @@ -200,7 +199,7 @@ public class TestComponentRegistry implements GlobalComponentRegistry { @Override public ConfigServerDB getConfigServerDB() { return configServerDB;} @Override - public FlagSource getFlagSource() { return new FileFlagSource(); } + public FlagSource getFlagSource() { return new InMemoryFlagSource(); } public FileDistributionFactory getFileDistributionFactory() { return fileDistributionFactory; } |