aboutsummaryrefslogtreecommitdiffstats
path: root/configdefinitions
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahooinc.com>2022-01-26 10:56:49 +0000
committerTor Brede Vekterli <vekterli@yahooinc.com>2022-01-26 10:56:49 +0000
commit5c727a35f8c824f6d13d3702211a3554e031e1b6 (patch)
tree9fcb88e400cccf91f4bd4eefd06e9c203aadd2aa /configdefinitions
parent1ecbb8ced4c2599155a2438625987b78e174bd5a (diff)
Support live reconfig of dynamic persistence throttling
Start moving internal `stor-server` throttling config to use struct config instead of separate fields, as this is more flexible and better matches how we configure throttling elsewhere. For now, let dynamic throttling be enabled via both the new and the old config enum. Config model will be updated to use the new config struct shortly.
Diffstat (limited to 'configdefinitions')
-rw-r--r--configdefinitions/src/vespa/stor-filestor.def17
1 files changed, 17 insertions, 0 deletions
diff --git a/configdefinitions/src/vespa/stor-filestor.def b/configdefinitions/src/vespa/stor-filestor.def
index 99f79a92c07..f1fc667ca9d 100644
--- a/configdefinitions/src/vespa/stor-filestor.def
+++ b/configdefinitions/src/vespa/stor-filestor.def
@@ -80,6 +80,22 @@ resource_usage_reporter_noise_level double default=0.001
## - DYNAMIC uses DynamicThrottlePolicy under the hood and will block if the window
## is full (if a blocking throttler API call is invoked).
##
+async_operation_throttler.type enum { UNLIMITED, DYNAMIC } default=UNLIMITED restart
+## Internal throttler tuning parameters that only apply when type == DYNAMIC:
+async_operation_throttler.window_size_increment int default=20
+async_operation_throttler.window_size_decrement_factor double default=1.2
+async_operation_throttler.window_size_backoff double default=0.95
+
+## Specify throttling used for async persistence operations. This throttling takes place
+## before operations are dispatched to Proton and serves as a limiter for how many
+## operations may be in flight in Proton's internal queues.
+##
+## - UNLIMITED is, as it says on the tin, unlimited. Offers no actual throttling, but
+## has near zero overhead and never blocks.
+## - DYNAMIC uses DynamicThrottlePolicy under the hood and will block if the window
+## is full (if a blocking throttler API call is invoked).
+##
+## TODO deprecate in favor of the async_operation_throttler struct instead.
async_operation_throttler_type enum { UNLIMITED, DYNAMIC } default=UNLIMITED restart
## Specifies the extent the throttling window is increased by when the async throttle
@@ -88,4 +104,5 @@ async_operation_throttler_type enum { UNLIMITED, DYNAMIC } default=UNLIMITED res
## value, number of threads).
##
## Only applies if async_operation_throttler_type == DYNAMIC.
+## DEPRECATED! use the async_operation_throttler struct instead
async_operation_dynamic_throttling_window_increment int default=20 restart