diff options
author | Harald Musum <musum@yahooinc.com> | 2021-11-25 14:03:04 +0100 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2021-11-25 14:03:04 +0100 |
commit | 0113bccfb8667c420d5e5a3cabc2dce00c5828f2 (patch) | |
tree | e9e820c62e5f9c5435f3dd8c8e5cd85beffd42b6 /config-proxy | |
parent | 281e33d219582f44d69e1b42d5f7486f58a04aa1 (diff) |
Choose file distribution connection pool for config proxy based on env variable
Default is unchanged
Diffstat (limited to 'config-proxy')
-rw-r--r-- | config-proxy/src/main/java/com/yahoo/vespa/config/proxy/filedistribution/FileDistributionAndUrlDownload.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/filedistribution/FileDistributionAndUrlDownload.java b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/filedistribution/FileDistributionAndUrlDownload.java index f2f52dca9fa..f5a92b7bdca 100644 --- a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/filedistribution/FileDistributionAndUrlDownload.java +++ b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/filedistribution/FileDistributionAndUrlDownload.java @@ -4,13 +4,18 @@ package com.yahoo.vespa.config.proxy.filedistribution; import com.yahoo.concurrent.DaemonThreadFactory; import com.yahoo.config.subscription.ConfigSourceSet; import com.yahoo.jrt.Supervisor; +import com.yahoo.vespa.config.ConnectionPool; import com.yahoo.vespa.config.JRTConnectionPool; +import com.yahoo.vespa.filedistribution.FileDistributionConnectionPool; import com.yahoo.vespa.filedistribution.FileDownloader; import java.time.Duration; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; +import java.util.logging.Logger; + +import static java.util.logging.Level.INFO; /** * Keeps track of file distribution and url download rpc servers. @@ -19,7 +24,9 @@ import java.util.concurrent.TimeUnit; */ public class FileDistributionAndUrlDownload { + private static final Logger log = Logger.getLogger(FileDistributionAndUrlDownload.class.getName()); private static final Duration delay = Duration.ofMinutes(1); + private final FileDistributionRpcServer fileDistributionRpcServer; private final UrlDownloadRpcServer urlDownloadRpcServer; private final ScheduledExecutorService cleanupExecutor = @@ -28,7 +35,7 @@ public class FileDistributionAndUrlDownload { public FileDistributionAndUrlDownload(Supervisor supervisor, ConfigSourceSet source) { fileDistributionRpcServer = new FileDistributionRpcServer(supervisor, - new FileDownloader(new JRTConnectionPool(source, supervisor), supervisor, Duration.ofMinutes(5))); + new FileDownloader(createConnectionPool(supervisor, source), supervisor, Duration.ofMinutes(5))); urlDownloadRpcServer = new UrlDownloadRpcServer(supervisor); cleanupExecutor.scheduleAtFixedRate(new CachedFilesMaintainer(), delay.toSeconds(), delay.toSeconds(), TimeUnit.SECONDS); } @@ -45,4 +52,14 @@ public class FileDistributionAndUrlDownload { } } + private static ConnectionPool createConnectionPool(Supervisor supervisor, ConfigSourceSet source) { + String useFileDistributionConnectionPool = System.getenv("VESPA_USE_FILE_DISTRIBUTION_CONNECTION_POOL"); + // TODO: Lower log level or remove when verified + log.log(INFO, "VESPA_USE_FILE_DISTRIBUTION_CONNECTION_POOL: " + useFileDistributionConnectionPool); + if (useFileDistributionConnectionPool != null && useFileDistributionConnectionPool.equalsIgnoreCase("true")) + return new FileDistributionConnectionPool(source, supervisor); + else + return new JRTConnectionPool(source, supervisor); + } + } |