summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-12-18 14:01:43 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-12-18 14:18:43 +0100
commit754b63e38089758998aa1fa504faea0cfeff10d8 (patch)
treea413ccecaa038727ba64d79dad9041abc428cd18 /configserver
parentd2b41dc79d4c9cb3aa42da0574b6cba1d3f56f2e (diff)
Use one supervisor and transport and shut it down once it not needed anymore.
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyDistribution.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java10
3 files changed, 16 insertions, 5 deletions
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 1046ed93491..819f9a9d5d6 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
@@ -21,11 +21,12 @@ import java.util.logging.Logger;
public class CombinedLegacyDistribution implements FileDistribution {
private final static Logger log = Logger.getLogger(CombinedLegacyDistribution.class.getName());
- private final Supervisor supervisor = new Supervisor(new Transport());
+ private final Supervisor supervisor;
private final FileDistribution legacy;
private final boolean disableFileDistributor;
- CombinedLegacyDistribution(FileDBHandler legacy, boolean disableFileDistributor) {
+ CombinedLegacyDistribution(Supervisor supervisor, FileDBHandler legacy, boolean disableFileDistributor) {
+ this.supervisor = supervisor;
this.legacy = legacy;
this.disableFileDistributor = disableFileDistributor;
}
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 38fa3087f88..cd3f0f7f167 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
@@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.filedistribution;
import com.yahoo.config.FileReference;
import com.yahoo.config.model.api.FileDistribution;
import com.yahoo.config.application.api.FileRegistry;
+import com.yahoo.jrt.Supervisor;
import com.yahoo.vespa.filedistribution.FileDistributionManager;
import java.io.File;
@@ -35,16 +36,17 @@ public class FileDistributionProvider {
}
}
- public FileDistributionProvider(File applicationDir, String zooKeepersSpec,
+ public FileDistributionProvider(Supervisor supervisor, File applicationDir, String zooKeepersSpec,
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), disableFileDistributor);
+ this.fileDistribution = new CombinedLegacyDistribution(supervisor, new FileDBHandler(manager), disableFileDistributor);
this.fileRegistry = new CombinedLegacyRegistry(new FileDBRegistry(new ManagerWrapper(manager)),
new FileDBRegistry(new ApplicationFileManager(applicationDir, new FileDirectory())));
+
}
// For testing only
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 99a34a45a2f..243c47ba3d7 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
@@ -3,6 +3,8 @@ package com.yahoo.vespa.config.server.session;
import com.google.inject.Inject;
import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.jrt.Supervisor;
+import com.yahoo.jrt.Transport;
import com.yahoo.vespa.config.server.filedistribution.FileDistributionLock;
import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider;
import com.yahoo.vespa.curator.Curator;
@@ -21,6 +23,7 @@ public class FileDistributionFactory {
private static final String lockPath = "/vespa/filedistribution/lock";
private final String zkSpec;
private final Lock lock;
+ private final Supervisor supervisor = new Supervisor(new Transport());
@Inject
public FileDistributionFactory(Curator curator) {
@@ -33,7 +36,12 @@ public class FileDistributionFactory {
}
public FileDistributionProvider createProvider(File applicationPackage, ApplicationId applicationId, boolean disableFileDistributor) {
- return new FileDistributionProvider(applicationPackage, zkSpec, applicationId.serializedForm(), lock, disableFileDistributor);
+ return new FileDistributionProvider(supervisor, applicationPackage, zkSpec, applicationId.serializedForm(), lock, disableFileDistributor);
}
+ @Override
+ protected void finalize() throws Throwable {
+ super.finalize();
+ supervisor.transport().shutdown().join();
+ }
}