diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-09-14 16:02:02 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-09-14 16:02:02 +0200 |
commit | 0a64098e1950d5c2884f7ebeb9c43ed8ae9731ef (patch) | |
tree | 4d60eb59054fbfaac0a93b41c845a611c61d33ad /config-model/src/main | |
parent | 7987a90002395bcb4c98cb2991c79832f3e0c5e6 (diff) |
Deduplicate logic for finding cluster vcpu
Diffstat (limited to 'config-model/src/main')
3 files changed, 16 insertions, 25 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java index 2150b2b677a..ecf05d97fa7 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/clients/ContainerDocumentApi.java @@ -13,8 +13,6 @@ import com.yahoo.vespa.model.container.component.UserBindingPattern; import java.util.Collection; import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; /** * @author Einar M R Rosenvinge @@ -111,17 +109,6 @@ public class ContainerDocumentApi { if (vcpu == 0) return FALLBACK_CORE_POOL_SIZE; return Math.max(1, (int)Math.ceil(vcpu * options.feedThreadPoolSizeFactor * 0.5)); } - - private static double vcpu(ContainerCluster<?> cluster) { - List<Double> vcpus = cluster.getContainers().stream() - .filter(c -> c.getHostResource() != null && c.getHostResource().realResources() != null) - .map(c -> c.getHostResource().realResources().vcpu()) - .distinct() - .collect(Collectors.toList()); - // We can only use host resource for calculation if all container nodes in the cluster are homogeneous (in terms of vcpu) - if (vcpus.size() != 1 || vcpus.get(0) == 0) return 0; - return vcpus.get(0); - } } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerThreadpoolComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerThreadpoolComponent.java index 7cec7e44460..648dce95a59 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerThreadpoolComponent.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerThreadpoolComponent.java @@ -7,6 +7,9 @@ import com.yahoo.container.handler.threadpool.ContainerThreadpoolConfig; import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.vespa.model.container.component.SimpleComponent; +import java.util.List; +import java.util.stream.Collectors; + /** * Component definition for a {@link java.util.concurrent.Executor} using {@link ContainerThreadPool}. * @@ -26,4 +29,15 @@ public class ContainerThreadpoolComponent extends SimpleComponent implements Con } @Override public void getConfig(ContainerThreadpoolConfig.Builder builder) { builder.name(this.name); } + + protected static double vcpu(ContainerCluster<?> cluster) { + List<Double> vcpus = cluster.getContainers().stream() + .filter(c -> c.getHostResource() != null && c.getHostResource().realResources() != null) + .map(c -> c.getHostResource().realResources().vcpu()) + .distinct() + .collect(Collectors.toList()); + // We can only use host resource for calculation if all container nodes in the cluster are homogeneous (in terms of vcpu) + if (vcpus.size() != 1 || vcpus.get(0) == 0) return 0; + return vcpus.get(0); + } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java index ec3ab3f9c87..62b447a7139 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/SearchHandler.java @@ -11,7 +11,6 @@ import com.yahoo.vespa.model.container.component.chain.ProcessingHandler; import com.yahoo.vespa.model.container.search.searchchain.SearchChains; import java.util.List; -import java.util.stream.Collectors; /** * Component definition for {@link com.yahoo.search.handler.SearchHandler} @@ -52,7 +51,7 @@ class SearchHandler extends ProcessingHandler<SearchChains> { builder.keepAliveTime(5.0); double threadPoolSizeFactor = deployState.getProperties().threadPoolSizeFactor(); - double vcpu = vcpu(); + double vcpu = vcpu(cluster); if (threadPoolSizeFactor <= 0 || vcpu == 0) { builder.maxThreads(500); builder.minThreads(500); @@ -70,15 +69,6 @@ class SearchHandler extends ProcessingHandler<SearchChains> { } } - private double vcpu() { - List<Double> vcpus = cluster.getContainers().stream() - .filter(c -> c.getHostResource() != null && c.getHostResource().realResources() != null) - .map(c -> c.getHostResource().realResources().vcpu()) - .distinct() - .collect(Collectors.toList()); - // We can only use host resource for calculation if all container nodes in the cluster are homogeneous (in terms of vcpu) - if (vcpus.size() != 1 || vcpus.get(0) == 0) return 0; - return vcpus.get(0); - } + } } |