From 0f1b5a16edc9c15316143d6b9e2a3e8ef3a3beef Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Thu, 14 Dec 2017 10:38:19 +0100 Subject: Do async file distribution (when preparing application) when file distributor disable Also: Don't cancel future when getting dile references started by async file distribution --- .../server/filedistribution/CombinedLegacyDistribution.java | 10 ++++++---- .../server/filedistribution/FileDistributionProvider.java | 12 ++++++------ .../config/server/modelfactory/PreparedModelsBuilder.java | 3 ++- .../vespa/config/server/session/FileDistributionFactory.java | 7 +++---- .../config/server/session/MockFileDistributionFactory.java | 5 ++--- 5 files changed, 19 insertions(+), 18 deletions(-) (limited to 'configserver') diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyDistribution.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyDistribution.java index f0e64a936a5..1046ed93491 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyDistribution.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyDistribution.java @@ -23,9 +23,11 @@ public class CombinedLegacyDistribution implements FileDistribution { private final Supervisor supervisor = new Supervisor(new Transport()); private final FileDistribution legacy; + private final boolean disableFileDistributor; - CombinedLegacyDistribution(FileDBHandler legacy) { + CombinedLegacyDistribution(FileDBHandler legacy, boolean disableFileDistributor) { this.legacy = legacy; + this.disableFileDistributor = disableFileDistributor; } @Override @@ -35,8 +37,8 @@ public class CombinedLegacyDistribution implements FileDistribution { @Override public void startDownload(String hostName, Set fileReferences) { - // TODO: Not active for now - // startDownloadingFileReferences(hostName, fileReferences); + if (disableFileDistributor) + startDownloadingFileReferences(hostName, fileReferences); } @Override @@ -56,7 +58,7 @@ public class CombinedLegacyDistribution implements FileDistribution { double timeout = 0.1; Request request = new Request("filedistribution.setFileReferencesToDownload"); request.parameters().add(new StringArray(fileReferences.stream().map(FileReference::value).toArray(String[]::new))); - log.log(LogLevel.INFO, "Executing " + request.methodName() + " against " + target.toString()); + log.log(LogLevel.DEBUG, "Executing " + request.methodName() + " against " + target.toString()); target.invokeSync(request, timeout); if (request.isError()) { log.log(LogLevel.INFO, request.methodName() + " failed: " + request.errorCode() + " (" + request.errorMessage() + ")"); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java index 59c3a54897d..38fa3087f88 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java @@ -12,8 +12,7 @@ import java.util.concurrent.locks.Lock; /** * Provides file distribution registry and invoker. * - * @author lulf - * @since 5.1.14 + * @author Ulf Lilleengen */ public class FileDistributionProvider { @@ -37,18 +36,19 @@ public class FileDistributionProvider { } public FileDistributionProvider(File applicationDir, String zooKeepersSpec, - String applicationId, Lock fileDistributionLock) - { + String applicationId, Lock fileDistributionLock, + boolean disableFileDistributor) { ensureDirExists(FileDistribution.getDefaultFileDBPath()); final FileDistributionManager manager = new FileDistributionManager( FileDistribution.getDefaultFileDBPath(), applicationDir, zooKeepersSpec, applicationId, fileDistributionLock); - this.fileDistribution = new CombinedLegacyDistribution(new FileDBHandler(manager)); + this.fileDistribution = new CombinedLegacyDistribution(new FileDBHandler(manager), disableFileDistributor); this.fileRegistry = new CombinedLegacyRegistry(new FileDBRegistry(new ManagerWrapper(manager)), new FileDBRegistry(new ApplicationFileManager(applicationDir, new FileDirectory()))); } - public FileDistributionProvider(FileRegistry fileRegistry, FileDistribution fileDistribution) { + // For testing only + FileDistributionProvider(FileRegistry fileRegistry, FileDistribution fileDistribution) { this.fileRegistry = fileRegistry; this.fileDistribution = fileDistribution; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java index 78d660b347e..b3ade24603c 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java @@ -88,7 +88,8 @@ public class PreparedModelsBuilder extends ModelsBuilder hostProvisioner = createHostProvisioner(allocatedHosts); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java index 003f931a218..99a34a45a2f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java @@ -13,8 +13,7 @@ import java.util.concurrent.locks.Lock; /** * Factory for creating providers that are used to interact with file distribution. * - * @author lulf - * @since 5.1 + * @author Ulf Lilleengen */ @SuppressWarnings("WeakerAccess") public class FileDistributionFactory { @@ -33,8 +32,8 @@ public class FileDistributionFactory { this.zkSpec = zkSpec; } - public FileDistributionProvider createProvider(File applicationPackage, ApplicationId applicationId) { - return new FileDistributionProvider(applicationPackage, zkSpec, applicationId.serializedForm(), lock); + public FileDistributionProvider createProvider(File applicationPackage, ApplicationId applicationId, boolean disableFileDistributor) { + return new FileDistributionProvider(applicationPackage, zkSpec, applicationId.serializedForm(), lock, disableFileDistributor); } } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java index ce9de5e066f..d32b3a9e1a6 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java @@ -10,8 +10,7 @@ import com.yahoo.vespa.curator.mock.MockCurator; import java.io.File; /** -* @author lulf -* @since 5.1 +* @author Ulf Lilleengen */ public class MockFileDistributionFactory extends FileDistributionFactory { @@ -27,7 +26,7 @@ public class MockFileDistributionFactory extends FileDistributionFactory { } @Override - public FileDistributionProvider createProvider(File applicationFile, ApplicationId applicationId) { + public FileDistributionProvider createProvider(File applicationFile, ApplicationId applicationId, boolean disableFileDistributor) { return mockFileDistributionProvider; } } -- cgit v1.2.3