aimd
This type provides the following service implementations:
-
io.helidon.common.concurrency.limits.spi.LimitProvider
Configuration options
| key | type | default value | description |
|---|---|---|---|
|
double |
|
Backoff ratio to use for the algorithm. The value must be within [0.5, 1.0). |
|
boolean |
|
Whether to collect metrics for the AIMD implementation. |
|
boolean |
|
Whether the java.util.concurrent.Semaphore should be java.util.concurrent.Semaphore.isFair().
Defaults to |
|
int |
|
Initial limit. The value must be within [minLimit(), maxLimit()]. |
|
int |
|
Maximal limit. The value must be same or higher than minLimit(). |
|
int |
|
Minimal limit. The value must be same or lower than maxLimit(). |
|
int |
|
How many requests can be enqueued waiting for a permit after the max limit is reached. Note that this may not be an exact behavior due to concurrent invocations. We use java.util.concurrent.Semaphore.getQueueLength() in the io.helidon.common.concurrency.limits.AimdLimit implementation. Default value is AimdLimit.DEFAULT_QUEUE_LENGTH. If set to {code 0}, there is no queueing. |
|
Duration |
|
How long to wait for a permit when enqueued. Defaults to AimdLimit.DEFAULT_QUEUE_TIMEOUT_DURATION |
|
Duration |
|
Timeout that when exceeded is the same as if the task failed. |