diff options
author | Harald Musum <musum@yahooinc.com> | 2023-11-08 14:56:40 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-11-08 14:56:40 +0100 |
commit | e0d807f82338ea2278592d7a2079dc85c286135f (patch) | |
tree | 57fc1989a6d167087051f2420516a20449b5178a | |
parent | e7b517e5705538cd90a72920c3edb0d36abb274e (diff) |
Stop subscribing to config that is static
File acquirer will always use localhost:19090 for getting files now,
remove need for subscribing to qr config.
Will also remove restart log message when e.g. moving logserver
to a new node
6 files changed, 19 insertions, 36 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/Container.java b/container-core/src/main/java/com/yahoo/container/Container.java index c86f53d86bb..7f46c6d8a02 100755 --- a/container-core/src/main/java/com/yahoo/container/Container.java +++ b/container-core/src/main/java/com/yahoo/container/Container.java @@ -95,18 +95,11 @@ public class Container { } // Only intended for use by the Server instance. - public void setupFileAcquirer(QrConfig.Filedistributor filedistributorConfig) { + public void setupFileAcquirer() { if (usingCustomFileAcquirer) return; - if (filedistributorConfig.configid().isEmpty()) { - if (fileAcquirer != null) - logger.warning("Disabling file distribution"); - fileAcquirer = null; - } else { - fileAcquirer = FileAcquirerFactory.create(filedistributorConfig.configid()); - } - + fileAcquirer = FileAcquirerFactory.create(); setPathAcquirer(fileAcquirer); } diff --git a/container-core/src/main/resources/configdefinitions/container.qr.def b/container-core/src/main/resources/configdefinitions/container.qr.def index ba2207541e8..e49e334a299 100644 --- a/container-core/src/main/resources/configdefinitions/container.qr.def +++ b/container-core/src/main/resources/configdefinitions/container.qr.def @@ -5,7 +5,8 @@ namespace=container ### connection to the config system ## filedistributor rpc configuration -filedistributor.configid reference default="" restart +## TODO: Unused, remove in Vespa 9 +filedistributor.configid reference default="" ## Is RPC server enabled? rpc.enabled bool default=false restart diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java index 623d11cc473..6edfcecdda9 100644 --- a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java +++ b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java @@ -168,7 +168,7 @@ public final class ConfiguredApplication implements Application { public void start() { qrConfig = getConfig(QrConfig.class); reconfigure(qrConfig.shutdown()); - hackToInitializeServer(qrConfig); + hackToInitializeServer(); ContainerBuilder builder = createBuilderWithGuiceBindings(); configurer = createConfigurer(builder.guiceModules().activate()); @@ -242,9 +242,9 @@ public final class ConfiguredApplication implements Application { } } - private static void hackToInitializeServer(QrConfig config) { + private static void hackToInitializeServer() { try { - Container.get().setupFileAcquirer(config.filedistributor()); + Container.get().setupFileAcquirer(); Container.get().setupUrlDownloader(); } catch (Exception e) { log.log(Level.SEVERE, "Caught exception when initializing server. Exiting.", e); diff --git a/fileacquirer/abi-spec.json b/fileacquirer/abi-spec.json index 63e3ba71f2d..caec5f8629c 100644 --- a/fileacquirer/abi-spec.json +++ b/fileacquirer/abi-spec.json @@ -21,7 +21,7 @@ ], "methods" : [ "public void <init>()", - "public static com.yahoo.filedistribution.fileacquirer.FileAcquirer create(java.lang.String)" + "public static com.yahoo.filedistribution.fileacquirer.FileAcquirer create()" ], "fields" : [ ] }, diff --git a/fileacquirer/src/main/java/com/yahoo/filedistribution/fileacquirer/FileAcquirerFactory.java b/fileacquirer/src/main/java/com/yahoo/filedistribution/fileacquirer/FileAcquirerFactory.java index 24744728f78..8de5f87d8b0 100644 --- a/fileacquirer/src/main/java/com/yahoo/filedistribution/fileacquirer/FileAcquirerFactory.java +++ b/fileacquirer/src/main/java/com/yahoo/filedistribution/fileacquirer/FileAcquirerFactory.java @@ -9,8 +9,8 @@ package com.yahoo.filedistribution.fileacquirer; */ public class FileAcquirerFactory { - public static FileAcquirer create(String configId) { - return new FileAcquirerImpl(configId); + public static FileAcquirer create() { + return new FileAcquirerImpl(); } } diff --git a/fileacquirer/src/main/java/com/yahoo/filedistribution/fileacquirer/FileAcquirerImpl.java b/fileacquirer/src/main/java/com/yahoo/filedistribution/fileacquirer/FileAcquirerImpl.java index b3c4382c397..ddddcfc2170 100644 --- a/fileacquirer/src/main/java/com/yahoo/filedistribution/fileacquirer/FileAcquirerImpl.java +++ b/fileacquirer/src/main/java/com/yahoo/filedistribution/fileacquirer/FileAcquirerImpl.java @@ -1,9 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.filedistribution.fileacquirer; -import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig; import com.yahoo.config.FileReference; -import com.yahoo.config.subscription.ConfigSubscriber; import com.yahoo.jrt.ErrorCode; import com.yahoo.jrt.Request; import com.yahoo.jrt.Spec; @@ -12,6 +10,7 @@ import com.yahoo.jrt.Supervisor; import com.yahoo.jrt.Target; import com.yahoo.jrt.Transport; import com.yahoo.vespa.config.FileReferenceDoesNotExistException; + import java.io.File; import java.time.Duration; import java.util.concurrent.TimeUnit; @@ -20,6 +19,8 @@ import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; import java.util.logging.Logger; +import static com.yahoo.net.HostName.getLocalhost; + /** * Retrieves the path to a file or directory on the local file system * that has been transferred with the vespa file distribution @@ -43,15 +44,15 @@ class FileAcquirerImpl implements FileAcquirer { private final Supervisor supervisor = new Supervisor(new Transport("fileaquirer")); - private final ConfigSubscriber configSubscriber; + private class Connection { - private class Connection implements ConfigSubscriber.SingleSubscriber<FiledistributorrpcConfig> { - private final Lock targetLock = new ReentrantLock(); - private Target target; + private static final int configProxyRpcPort = 19090; - private volatile Spec spec; + private final Lock targetLock = new ReentrantLock(); + private final Spec spec = new Spec(getLocalhost(), configProxyRpcPort); private long pauseTime = 0; //milliseconds + private Target target; private long nextLogTime = 0; private long logCount = 0; @@ -85,7 +86,7 @@ class FileAcquirerImpl implements FileAcquirer { private void logWarning() { if (logCount == 0 || System.currentTimeMillis() > nextLogTime ) { - log.warning("Could not connect to the config proxy '" + spec.toString() + "'" + " - " + this + "@" + System.identityHashCode(this)); + log.warning("Could not connect to the config proxy '" + spec + "'" + " - " + this + "@" + System.identityHashCode(this)); nextLogTime = System.currentTimeMillis() + Math.min(TimeUnit.DAYS.toMillis(1), @@ -94,11 +95,6 @@ class FileAcquirerImpl implements FileAcquirer { } } - @Override - public void configure(FiledistributorrpcConfig filedistributorrpcConfig) { - spec = new Spec(filedistributorrpcConfig.connectionspec()); - } - public Target getTarget(Timer timer) throws InterruptedException { TimeUnit unit = TimeUnit.MILLISECONDS; @@ -122,17 +118,10 @@ class FileAcquirerImpl implements FileAcquirer { }; } - public FileAcquirerImpl(String configId) { - configSubscriber = new ConfigSubscriber(); - configSubscriber.subscribe(connection, FiledistributorrpcConfig.class, configId); - } - public void shutdown() { - configSubscriber.close(); supervisor.transport().shutdown().join(); } - /** * Returns the path to a file or directory corresponding to the * given file reference. File references are produced by the |