diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-12-08 13:44:47 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-12-08 13:44:47 +0100 |
commit | 637e6d823a470eeff9b2d1f91bbb9faa11b39775 (patch) | |
tree | b3c19040582eb11bbae05d1c13410445ddf1d995 /container-di/src/main | |
parent | d1e33a9420805f5d416ca55ed79497fd28f20216 (diff) |
Revert "Merge pull request #15739 from vespa-engine/revert-15734-bratseth/simplify-config-take-2"
This reverts commit d1e33a9420805f5d416ca55ed79497fd28f20216, reversing
changes made to 10464c859ccca2596e2b841612f8ea958330e4dc.
Diffstat (limited to 'container-di/src/main')
4 files changed, 10 insertions, 28 deletions
diff --git a/container-di/src/main/java/com/yahoo/container/di/CloudSubscriberFactory.java b/container-di/src/main/java/com/yahoo/container/di/CloudSubscriberFactory.java index 1133363be8e..75a660789e2 100644 --- a/container-di/src/main/java/com/yahoo/container/di/CloudSubscriberFactory.java +++ b/container-di/src/main/java/com/yahoo/container/di/CloudSubscriberFactory.java @@ -30,8 +30,9 @@ public class CloudSubscriberFactory implements SubscriberFactory { private static final Logger log = Logger.getLogger(CloudSubscriberFactory.class.getName()); private final ConfigSource configSource; + private final Map<CloudSubscriber, Integer> activeSubscribers = new WeakHashMap<>(); + private Optional<Long> testGeneration = Optional.empty(); - private Map<CloudSubscriber, Integer> activeSubscribers = new WeakHashMap<>(); public CloudSubscriberFactory(ConfigSource configSource) { this.configSource = configSource; @@ -70,9 +71,6 @@ public class CloudSubscriberFactory implements SubscriberFactory { // if waitNextGeneration has not yet been called, -1 should be returned private long generation = -1L; - // True if this reconfiguration was caused by a system-internal redeploy, not an external application change - private boolean internalRedeploy = false; - private CloudSubscriber(Set<ConfigKey<ConfigInstance>> keys, ConfigSource configSource) { this.subscriber = new ConfigSubscriber(configSource); keys.forEach(k -> handles.put(k, subscriber.subscribe(k.getConfigClass(), k.getConfigId()))); @@ -88,11 +86,6 @@ public class CloudSubscriberFactory implements SubscriberFactory { return generation; } - @Override - public boolean internalRedeploy() { - return internalRedeploy; - } - //mapValues returns a view,, so we need to force evaluation of it here to prevent deferred evaluation. @Override public Map<ConfigKey<ConfigInstance>, ConfigInstance> config() { @@ -128,7 +121,6 @@ public class CloudSubscriberFactory implements SubscriberFactory { } generation = subscriber.getGeneration(); - internalRedeploy = subscriber.isInternalRedeploy(); return generation; } diff --git a/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java b/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java index f892fe410a8..44e38648230 100644 --- a/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java +++ b/container-di/src/main/java/com/yahoo/container/di/ConfigRetriever.java @@ -46,11 +46,10 @@ public final class ConfigRetriever { } public ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, - long leastGeneration, - boolean restartOnRedeploy) { + long leastGeneration) { // Loop until we get config. while (true) { - Optional<ConfigSnapshot> maybeSnapshot = getConfigsOnce(componentConfigKeys, leastGeneration, restartOnRedeploy); + Optional<ConfigSnapshot> maybeSnapshot = getConfigsOnce(componentConfigKeys, leastGeneration); if (maybeSnapshot.isPresent()) { var configSnapshot = maybeSnapshot.get(); resetComponentSubscriberIfBootstrap(configSnapshot); @@ -59,13 +58,8 @@ public final class ConfigRetriever { } } - ConfigSnapshot getConfigs(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, long leastGeneration) { - return getConfigs(componentConfigKeys, leastGeneration, false); - } - Optional<ConfigSnapshot> getConfigsOnce(Set<ConfigKey<? extends ConfigInstance>> componentConfigKeys, - long leastGeneration, - boolean restartOnRedeploy) { + long leastGeneration) { if (!Sets.intersection(componentConfigKeys, bootstrapKeys).isEmpty()) { throw new IllegalArgumentException( "Component config keys [" + componentConfigKeys + "] overlaps with bootstrap config keys [" + bootstrapKeys + "]"); @@ -76,18 +70,16 @@ public final class ConfigRetriever { allKeys.addAll(bootstrapKeys); setupComponentSubscriber(allKeys); - return getConfigsOptional(leastGeneration, restartOnRedeploy); + return getConfigsOptional(leastGeneration); } - private Optional<ConfigSnapshot> getConfigsOptional(long leastGeneration, boolean restartOnRedeploy) { + private Optional<ConfigSnapshot> getConfigsOptional(long leastGeneration) { long newestComponentGeneration = componentSubscriber.waitNextGeneration(); log.log(FINE, "getConfigsOptional: new component generation: " + newestComponentGeneration); // leastGeneration is only used to ensure newer generation when the previous generation was invalidated due to an exception if (newestComponentGeneration < leastGeneration) { return Optional.empty(); - } else if (restartOnRedeploy && !componentSubscriber.internalRedeploy()) { // Don't reconfig - wait for restart - return Optional.empty(); } else if (bootstrapSubscriber.generation() < newestComponentGeneration) { long newestBootstrapGeneration = bootstrapSubscriber.waitNextGeneration(); log.log(FINE, "getConfigsOptional: new bootstrap generation: " + bootstrapSubscriber.generation()); diff --git a/container-di/src/main/java/com/yahoo/container/di/Container.java b/container-di/src/main/java/com/yahoo/container/di/Container.java index 7fc2f2e55bc..7855cd6b2f1 100644 --- a/container-di/src/main/java/com/yahoo/container/di/Container.java +++ b/container-di/src/main/java/com/yahoo/container/di/Container.java @@ -72,10 +72,10 @@ public class Container { }); } - public ComponentGraph getNewComponentGraph(ComponentGraph oldGraph, Injector fallbackInjector, boolean restartOnRedeploy) { + public ComponentGraph getNewComponentGraph(ComponentGraph oldGraph, Injector fallbackInjector) { try { Collection<Bundle> obsoleteBundles = new HashSet<>(); - ComponentGraph newGraph = getConfigAndCreateGraph(oldGraph, fallbackInjector, restartOnRedeploy, obsoleteBundles); + ComponentGraph newGraph = getConfigAndCreateGraph(oldGraph, fallbackInjector, obsoleteBundles); newGraph.reuseNodes(oldGraph); constructComponents(newGraph); deconstructObsoleteComponents(oldGraph, newGraph, obsoleteBundles); @@ -88,12 +88,11 @@ public class Container { private ComponentGraph getConfigAndCreateGraph(ComponentGraph graph, Injector fallbackInjector, - boolean restartOnRedeploy, Collection<Bundle> obsoleteBundles) // NOTE: Return value { ConfigSnapshot snapshot; while (true) { - snapshot = configurer.getConfigs(graph.configKeys(), leastGeneration, restartOnRedeploy); + snapshot = configurer.getConfigs(graph.configKeys(), leastGeneration); log.log(FINE, String.format("createNewGraph:\n" + "graph.configKeys = %s\n" + "graph.generation = %s\n" + "snapshot = %s\n", graph.configKeys(), graph.generation(), snapshot)); diff --git a/container-di/src/main/java/com/yahoo/container/di/config/Subscriber.java b/container-di/src/main/java/com/yahoo/container/di/config/Subscriber.java index 0feab7779ad..9fd30f888b9 100644 --- a/container-di/src/main/java/com/yahoo/container/di/config/Subscriber.java +++ b/container-di/src/main/java/com/yahoo/container/di/config/Subscriber.java @@ -14,7 +14,6 @@ public interface Subscriber { long waitNextGeneration(); long generation(); - boolean internalRedeploy(); boolean configChanged(); Map<ConfigKey<ConfigInstance>, ConfigInstance> config(); |