Overview
While reviewing #36932, I noticed that we currently use integer arithmetic when calculating applied jitter values.
For example, with initialInterval = 2000, multiplier = 1.5, and jitter = 100, we currently see applied jitter values of:
Whereas, with floating-point (double) division, we would rather see:
In order to avoid the staircase scaling effect that results from our current use of integer division, we should use double division to calculate the applied jitter in applyJitter(long) in ExponentialBackOffExecution.
Related Issues
Overview
While reviewing #36932, I noticed that we currently use integer arithmetic when calculating applied jitter values.
For example, with
initialInterval = 2000,multiplier = 1.5, andjitter = 100, we currently see applied jitter values of:Whereas, with floating-point (double) division, we would rather see:
In order to avoid the staircase scaling effect that results from our current use of integer division, we should use double division to calculate the applied jitter in
applyJitter(long)inExponentialBackOffExecution.Related Issues
ExponentialBackOffjitter #36932