public static class GradientLimit.Builder
extends java.lang.Object
Constructor and Description |
---|
Builder() |
Modifier and Type | Method and Description |
---|---|
GradientLimit |
build() |
GradientLimit.Builder |
initialLimit(int initialLimit)
Initial limit used by the limiter
|
GradientLimit.Builder |
maxConcurrency(int maxConcurrency)
Maximum allowable concurrency.
|
GradientLimit.Builder |
metricRegistry(MetricRegistry registry)
Registry for reporting metrics about the limiter's internal state.
|
GradientLimit.Builder |
minRttThreshold(long minRttTreshold,
java.util.concurrent.TimeUnit units)
Minimum threshold for accepting a new rtt sample.
|
GradientLimit.Builder |
probeMultiplier(int probeMultiplier)
The limiter will probe for a new noload RTT every probeMultiplier * current limit
iterations.
|
GradientLimit.Builder |
queueSize(java.util.function.Function<java.lang.Integer,java.lang.Integer> queueSize)
Function to dynamically determine the amount the estimated limit can grow while
latencies remain low as a function of the current limit.
|
GradientLimit.Builder |
queueSize(int queueSize)
Fixed amount the estimated limit can grow while latencies remain low
|
GradientLimit.Builder |
rttTolerance(double rttTolerance)
Tolerance for changes in minimum latency.
|
GradientLimit.Builder |
smoothing(double smoothing)
Smoothing factor to limit how aggressively the estimated limit can shrink
when queuing has been detected.
|
public GradientLimit.Builder minRttThreshold(long minRttTreshold, java.util.concurrent.TimeUnit units)
minRttTreshold
- units
- public GradientLimit.Builder initialLimit(int initialLimit)
initialLimit
- public GradientLimit.Builder rttTolerance(double rttTolerance)
rttTolerance
- Value >= 1.0 indicating how much change in minimum latency is acceptable
before reducing the limit. For example, a value of 2.0 means that a 2x increase in latency is acceptable.public GradientLimit.Builder maxConcurrency(int maxConcurrency)
maxConcurrency
- public GradientLimit.Builder queueSize(int queueSize)
queueSize
- public GradientLimit.Builder queueSize(java.util.function.Function<java.lang.Integer,java.lang.Integer> queueSize)
queueSize
- public GradientLimit.Builder smoothing(double smoothing)
smoothing
- Value of 0.0 to 1.0 where 1.0 means the limit is completely
replicated by the new estimate.public GradientLimit.Builder metricRegistry(MetricRegistry registry)
registry
- public GradientLimit.Builder probeMultiplier(int probeMultiplier)
probeMultiplier
- public GradientLimit build()