diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-06-09 16:03:04 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-06-15 13:18:01 +0200 |
commit | 2e86091b55d26a7e15aa1885490c329eceedfc1c (patch) | |
tree | 8397fc3cbe265375bf1f9e1577953aed8c409e0a | |
parent | cd1bfb0b2b4cabae2532b61a4ff833e5879cfbeb (diff) |
Add feature flag to scale core size for feeding thread pools
3 files changed, 14 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index 2fa3217ef4a..49e7ae39962 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -106,6 +106,9 @@ public interface ModelContext { // TODO(bjorncs): Temporary feature flag, revisit July 2020 default Duration jdiscHealthCheckProxyClientTimeout() { return Duration.ofSeconds(1); } + + // TODO(bjorncs): Temporary feature flag + default double feedCoreThreadPoolSizeFactor() { return 1.0; } } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java index 3a2bc9f1a81..bb86966640e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java @@ -158,6 +158,7 @@ public class ModelContextImpl implements ModelContext { private final Optional<AthenzDomain> athenzDomain; private final Optional<ApplicationRoles> applicationRoles; private final int jdiscHealthCheckProxyClientTimeout; + private final double feedCoreThreadPoolSizeFactor; public Properties(ApplicationId applicationId, boolean multitenantFromConfig, @@ -204,6 +205,8 @@ public class ModelContextImpl implements ModelContext { this.applicationRoles = applicationRoles; jdiscHealthCheckProxyClientTimeout = Flags.JDISC_HEALTH_CHECK_PROXY_CLIENT_TIMEOUT.bindTo(flagSource) .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value(); + feedCoreThreadPoolSizeFactor = Flags.FEED_CORE_THREAD_POOL_SIZE_FACTOR.bindTo(flagSource) + .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value(); } @Override @@ -283,8 +286,10 @@ public class ModelContextImpl implements ModelContext { } @Override public Duration jdiscHealthCheckProxyClientTimeout() { return Duration.ofMillis(jdiscHealthCheckProxyClientTimeout); } + @Override public String jvmGCOptions() { return jvmGCOPtions; } + @Override public double feedCoreThreadPoolSizeFactor() { return feedCoreThreadPoolSizeFactor; } } } diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 74522f4c517..841cd590663 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -294,6 +294,12 @@ public class Flags { ZONE_ID ); + public static final UnboundDoubleFlag FEED_CORE_THREAD_POOL_SIZE_FACTOR = defineDoubleFlag( + "feed-core-thread-pool-size-factor", 1.0, + "Number of core threads in threadpool for feeding APIs as factor of max pool size", + "Takes effect on next internal redeployment", + APPLICATION_ID); + /** WARNING: public for testing: All flags should be defined in {@link Flags}. */ public static UnboundBooleanFlag defineFeatureFlag(String flagId, boolean defaultValue, String description, String modificationEffect, FetchVector.Dimension... dimensions) { |