diff options
author | Jon Bratseth <jonbratseth@yahoo.com> | 2017-05-19 08:48:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-19 08:48:11 +0200 |
commit | c7b62d54f409534f90aade097c7b0a437f2d0319 (patch) | |
tree | ca73a92625c50a61e00017cce095bc4267f472c4 | |
parent | c18d0ea72c9613fd1ba40aa302f5fcc7e168bb71 (diff) | |
parent | 2493f64a1ee669b33ecc8faf79af509bc6feeebe (diff) |
Merge pull request #2498 from yahoo/balder/another-try-at-creating-correct-threadpool-config
The threadpoolProvider does not use the container to get config. Only…
5 files changed, 40 insertions, 10 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerClusterVerifier.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerClusterVerifier.java index 156cab1cf59..af9740a3633 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerClusterVerifier.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerClusterVerifier.java @@ -1,6 +1,7 @@ package com.yahoo.vespa.model.admin.clustercontroller; import com.yahoo.component.ComponentSpecification; +import com.yahoo.container.handler.ThreadpoolConfig; import com.yahoo.vespa.model.container.Container; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.ContainerClusterVerifier; @@ -25,4 +26,9 @@ public class ClusterControllerClusterVerifier implements ContainerClusterVerifie public boolean acceptContainer(Container container) { return container instanceof ClusterControllerContainer; } + + @Override + public void getConfig(ThreadpoolConfig.Builder builder) { + builder.maxthreads(10); + } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java index 9a573172ec9..2db5c8ae927 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java @@ -28,8 +28,7 @@ import java.util.TreeSet; public class ClusterControllerContainer extends Container implements BundlesConfig.Producer, ZookeeperServerConfig.Producer, - QrStartConfig.Producer, - ThreadpoolConfig.Producer + QrStartConfig.Producer { private static final ComponentSpecification CLUSTERCONTROLLER_BUNDLE = new ComponentSpecification("clustercontroller-apps"); private static final ComponentSpecification ZKFACADE_BUNDLE = new ComponentSpecification("zkfacade"); @@ -115,10 +114,6 @@ public class ClusterControllerContainer extends Container implements public void getConfig(QrStartConfig.Builder builder) { builder.jvm(new QrStartConfig.Jvm.Builder().heapsize(512)); } - @Override - public void getConfig(ThreadpoolConfig.Builder builder) { - builder.maxthreads(10); - } int getIndex() { return index; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index 970bf3c453d..addf14d5e6b 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -24,6 +24,7 @@ import com.yahoo.container.bundle.BundleInstantiationSpecification; import com.yahoo.container.core.ApplicationMetadataConfig; import com.yahoo.container.core.document.ContainerDocumentConfig; import com.yahoo.container.handler.ThreadPoolProvider; +import com.yahoo.container.handler.ThreadpoolConfig; import com.yahoo.container.jdisc.ContainerMbusConfig; import com.yahoo.container.jdisc.JdiscBindingsConfig; import com.yahoo.container.jdisc.config.HealthMonitorConfig; @@ -133,7 +134,9 @@ public final class ContainerCluster ClusterInfoConfig.Producer, ServletPathsConfig.Producer, RoutingProviderConfig.Producer, - ConfigserverConfig.Producer { + ConfigserverConfig.Producer, + ThreadpoolConfig.Producer +{ /** * URI prefix used for internal, usually programmatic, APIs. URIs using this @@ -190,6 +193,11 @@ public final class ContainerCluster @Override public boolean acceptContainer(Container container) { return true; } + + @Override + public void getConfig(ThreadpoolConfig.Builder builder) { + + } } public ContainerCluster(AbstractConfigProducer<?> parent, String subId, String name) { @@ -571,7 +579,12 @@ public final class ContainerCluster allJersey1Handlers().forEach(handler -> builder.handlers.putAll(DiscBindingsConfigGenerator.generate(handler)) ); - } + } + + @Override + public void getConfig(ThreadpoolConfig.Builder builder) { + clusterVerifier.getConfig(builder); + } private Stream<JerseyHandler> allJersey1Handlers() { return restApiGroup.getComponents().stream().flatMap(streamOf(RestApi::getJersey1Handler)); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerClusterVerifier.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerClusterVerifier.java index 727201e3d70..36ccf95d803 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerClusterVerifier.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerClusterVerifier.java @@ -1,5 +1,6 @@ package com.yahoo.vespa.model.container; +import com.yahoo.container.handler.ThreadpoolConfig; import com.yahoo.vespa.model.container.component.Component; /** @@ -24,4 +25,9 @@ public interface ContainerClusterVerifier { * @return true if you accept it */ boolean acceptContainer(Container container); + + /** + * Produce threadpool config + */ + void getConfig(ThreadpoolConfig.Builder builder); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java index 630ab87344b..859dd15e040 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java @@ -172,6 +172,17 @@ public class ContainerClusterTest { } @Test + public void testContainerClusterMaxThreads() { + ContainerCluster cluster = createContainerCluster(false, false); + addContainer(cluster, "c1","host-c1"); + + ThreadpoolConfig.Builder tpBuilder = new ThreadpoolConfig.Builder(); + cluster.getConfig(tpBuilder); + ThreadpoolConfig threadpoolConfig = new ThreadpoolConfig(tpBuilder); + assertEquals(500, threadpoolConfig.maxthreads()); + } + + @Test public void testClusterControllerResourceUsage() { ContainerCluster cluster = createClusterControllerCluster(); addClusterController(cluster, "host-c1"); @@ -183,10 +194,9 @@ public class ContainerClusterTest { assertEquals(512, qrStartConfig.jvm().heapsize()); ThreadpoolConfig.Builder tpBuilder = new ThreadpoolConfig.Builder(); - container.getConfig(tpBuilder); + cluster.getConfig(tpBuilder); ThreadpoolConfig threadpoolConfig = new ThreadpoolConfig(tpBuilder); assertEquals(10, threadpoolConfig.maxthreads()); - } @Test |