summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-08-04 21:21:23 +0200
committerGitHub <noreply@github.com>2020-08-04 21:21:23 +0200
commit26846137d774879c1e68ed8a7975f782bb19976c (patch)
tree1e0e373f4aa7f38f8265d83470885f868506fc34
parentea481119e597fc3db83be3dcbda18a66e8ab196a (diff)
parent9d42acaa1bb26e68cb6b0c436a4f69af00a27be5 (diff)
Merge pull request #13988 from vespa-engine/balder/prepare-threadpool
Add flags for controlling threads for feeding.
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java3
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java4
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadPool.java4
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/Flags.java6
4 files changed, 16 insertions, 1 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 7aba83861ce..64a2906b1be 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
@@ -118,6 +118,9 @@ public interface ModelContext {
// TODO(bjorncs): Temporary feature flag, revisit August 2020
default Duration jdiscHealthCheckProxyClientTimeout() { return Duration.ofMillis(100); }
+
+ // 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 eccd6d4431b..d26f6c6da04 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
@@ -161,6 +161,7 @@ public class ModelContextImpl implements ModelContext {
private final boolean skipMbusReplyThread;
private final Optional<AthenzDomain> athenzDomain;
private final Optional<ApplicationRoles> applicationRoles;
+ private final double feedCoreThreadPoolSizeFactor;
public Properties(ApplicationId applicationId,
boolean multitenantFromConfig,
@@ -215,6 +216,8 @@ public class ModelContextImpl implements ModelContext {
.with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value();;
this.athenzDomain = athenzDomain;
this.applicationRoles = applicationRoles;
+ feedCoreThreadPoolSizeFactor = Flags.FEED_CORE_THREAD_POOL_SIZE_FACTOR.bindTo(flagSource)
+ .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value();
}
@Override
@@ -297,6 +300,7 @@ public class ModelContextImpl implements ModelContext {
@Override public boolean skipCommunicationManagerThread() { return skipCommunicationManagerThread; }
@Override public boolean skipMbusRequestThread() { return skipMbusRequestThread; }
@Override public boolean skipMbusReplyThread() { return skipMbusReplyThread; }
+ @Override public double feedCoreThreadPoolSizeFactor() { return feedCoreThreadPoolSizeFactor; }
}
}
diff --git a/container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadPool.java b/container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadPool.java
index 6fc9da298a8..edbe12b64c6 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadPool.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/threadpool/ContainerThreadPool.java
@@ -83,7 +83,9 @@ public class ContainerThreadPool implements AutoCloseable {
}
private static int computeCoreThreadPoolSize(int corePoolSize, int maxNumThreads) {
- return Math.min(corePoolSize, maxNumThreads);
+ return Math.min(
+ corePoolSize <= 0 ? Runtime.getRuntime().availableProcessors() * 2 : corePoolSize,
+ maxNumThreads);
}
}
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 f7ef8866313..2ac5969c726 100644
--- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
+++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java
@@ -345,6 +345,12 @@ public class Flags {
"Takes effect on next tick"
);
+ 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);
+
public static final UnboundBooleanFlag USE_CONFIG_SERVER_LOCK = defineFeatureFlag(
"use-config-server-lock",
false,