aboutsummaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-13 21:49:25 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-03-13 21:49:25 +0000
commit2c52421478d1e47db32ec8ff8c482f861fd93b93 (patch)
treed44c9522168f60ff81da82ec0542dd18b3d61adf /container-core
parent7e92c3852e893d09f0aa821e04e4e9dbe83b4ab2 (diff)
When you have a container with both feed and query, you risk that during warmup the throughput optimized
feed pipeline will overwhelm the search pipeline during warmup. Here we add an option to enforce a soft start of the feed pipeline, by gradually increasing max number of feed threads. It might not be the perfect solution as mesages will pile up in the dynamic throttle policy, but that should have a builtin softstart already. So I think this might a good fit.
Diffstat (limited to 'container-core')
-rw-r--r--container-core/abi-spec.json4
-rw-r--r--container-core/src/main/resources/configdefinitions/threadpool.def5
2 files changed, 8 insertions, 1 deletions
diff --git a/container-core/abi-spec.json b/container-core/abi-spec.json
index f0d7f4068be..ce567176679 100644
--- a/container-core/abi-spec.json
+++ b/container-core/abi-spec.json
@@ -172,6 +172,7 @@
"public void <init>(com.yahoo.container.handler.ThreadpoolConfig)",
"public com.yahoo.container.handler.ThreadpoolConfig$Builder maxthreads(int)",
"public com.yahoo.container.handler.ThreadpoolConfig$Builder maxThreadExecutionTimeSeconds(int)",
+ "public com.yahoo.container.handler.ThreadpoolConfig$Builder softStartSeconds(double)",
"public final boolean dispatchGetConfig(com.yahoo.config.ConfigInstance$Producer)",
"public final java.lang.String getDefMd5()",
"public final java.lang.String getDefName()",
@@ -209,7 +210,8 @@
"public static java.lang.String getDefVersion()",
"public void <init>(com.yahoo.container.handler.ThreadpoolConfig$Builder)",
"public int maxthreads()",
- "public int maxThreadExecutionTimeSeconds()"
+ "public int maxThreadExecutionTimeSeconds()",
+ "public double softStartSeconds()"
],
"fields": [
"public static final java.lang.String CONFIG_DEF_MD5",
diff --git a/container-core/src/main/resources/configdefinitions/threadpool.def b/container-core/src/main/resources/configdefinitions/threadpool.def
index 5b5e7e2f4a2..9bb9badd9b5 100644
--- a/container-core/src/main/resources/configdefinitions/threadpool.def
+++ b/container-core/src/main/resources/configdefinitions/threadpool.def
@@ -8,3 +8,8 @@ maxthreads int default=500
# get out of a bad state. This should be set a bit higher than the expected max execution
# time of each request when in a state of overload, i.e about "worst case execution time*2"
maxThreadExecutionTimeSeconds int default=190
+
+# Length of period for soft start
+# During this period number of availble threads will be gradually increased.
+# Currently used to avoid feeding overload in container during cold start.
+softStartSeconds double default=0