Class VeniceAdaptiveIngestionThrottler
java.lang.Object
com.linkedin.venice.throttle.EventThrottler
com.linkedin.davinci.kafka.consumer.VeniceAdaptiveIngestionThrottler
- All Implemented Interfaces:
VeniceAdaptiveThrottler,VeniceRateLimiter
public class VeniceAdaptiveIngestionThrottler
extends EventThrottler
implements VeniceAdaptiveThrottler
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.linkedin.venice.throttle.VeniceRateLimiter
VeniceRateLimiter.RateLimiterType -
Field Summary
Fields inherited from class com.linkedin.venice.throttle.EventThrottler
BLOCK_STRATEGY, REJECT_STRATEGY -
Constructor Summary
ConstructorsConstructorDescriptionVeniceAdaptiveIngestionThrottler(int signalIdleThreshold, long quotaPerSecond, List<Double> factors, long timeWindow, VeniceAdaptiveThrottlerType throttlerType, AdaptiveThrottlingServiceStats adaptiveThrottlingServiceStats) -
Method Summary
Modifier and TypeMethodDescriptionvoidEvaluates all registered limiter and booster signals, and adjusts the throttler’s rate accordingly.longReturns the current effective throttler rate after adaptive adjustments.Returns a human-readable name for this throttler instance.voidmaybeThrottle(double eventsSeen) Sleeps if necessary to slow down the caller.voidregisterBoosterSignal(BooleanSupplier supplier) Registers a booster signal supplier that, when evaluated totrue, indicates that the throttler may safely increase its throughput rate.voidregisterLimiterSignal(BooleanSupplier supplier) Registers a limiter signal supplier that, when evaluated totrue, indicates that the throttler should reduce its throughput rate.Methods inherited from class com.linkedin.venice.throttle.EventThrottler
getConfiguredMaxRatePerSecond, getMaxRatePerSecond, getQuota, getRateConfig, getTime, isCheckQuotaBeforeRecording, setQuota, toString, tryAcquirePermitMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.linkedin.venice.throttle.VeniceRateLimiter
acquirePermit
-
Constructor Details
-
VeniceAdaptiveIngestionThrottler
public VeniceAdaptiveIngestionThrottler(int signalIdleThreshold, long quotaPerSecond, List<Double> factors, long timeWindow, VeniceAdaptiveThrottlerType throttlerType, AdaptiveThrottlingServiceStats adaptiveThrottlingServiceStats)
-
-
Method Details
-
getThrottlerName
Description copied from interface:VeniceAdaptiveThrottlerReturns a human-readable name for this throttler instance.This is useful for logging, debugging, or monitoring purposes when multiple throttlers are in use.
- Specified by:
getThrottlerNamein interfaceVeniceAdaptiveThrottler- Overrides:
getThrottlerNamein classEventThrottler- Returns:
- the throttler’s name.
-
getThrottlerType
-
maybeThrottle
public void maybeThrottle(double eventsSeen) Description copied from class:EventThrottlerSleeps if necessary to slow down the caller.- Overrides:
maybeThrottlein classEventThrottler- Parameters:
eventsSeen- Number of events seen since last invocation. Basis for determining whether its necessary to sleep.
-
registerLimiterSignal
Description copied from interface:VeniceAdaptiveThrottlerRegisters a limiter signal supplier that, when evaluated totrue, indicates that the throttler should reduce its throughput rate.- Specified by:
registerLimiterSignalin interfaceVeniceAdaptiveThrottler- Parameters:
supplier- aBooleanSupplierproviding the limiter signal.
-
registerBoosterSignal
Description copied from interface:VeniceAdaptiveThrottlerRegisters a booster signal supplier that, when evaluated totrue, indicates that the throttler may safely increase its throughput rate.- Specified by:
registerBoosterSignalin interfaceVeniceAdaptiveThrottler- Parameters:
supplier- aBooleanSupplierproviding the booster signal.
-
checkSignalAndAdjustThrottler
public void checkSignalAndAdjustThrottler()Description copied from interface:VeniceAdaptiveThrottlerEvaluates all registered limiter and booster signals, and adjusts the throttler’s rate accordingly. The exact adjustment strategy is defined by the implementation.- Specified by:
checkSignalAndAdjustThrottlerin interfaceVeniceAdaptiveThrottler
-
getCurrentThrottlerRate
public long getCurrentThrottlerRate()Description copied from interface:VeniceAdaptiveThrottlerReturns the current effective throttler rate after adaptive adjustments.- Specified by:
getCurrentThrottlerRatein interfaceVeniceAdaptiveThrottler- Returns:
- the current throttling rate, typically represented in operations per second or another unit defined by the implementation.
-