From 0113bccfb8667c420d5e5a3cabc2dce00c5828f2 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Thu, 25 Nov 2021 14:03:04 +0100 Subject: Choose file distribution connection pool for config proxy based on env variable Default is unchanged --- .../FileDistributionAndUrlDownload.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'config-proxy') 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); + } + } -- cgit v1.2.3