HBASE-1422 Delayed flush doesn't work causing flush storms; addendum by Lars Hofhansl
This commit is contained in:
parent
9bf4777af5
commit
7d0c08fbcd
|
@ -81,7 +81,8 @@ public class JitterScheduledThreadPoolExecutorImpl extends ScheduledThreadPoolEx
|
||||||
public long getDelay(TimeUnit unit) {
|
public long getDelay(TimeUnit unit) {
|
||||||
long baseDelay = wrapped.getDelay(unit);
|
long baseDelay = wrapped.getDelay(unit);
|
||||||
long spreadTime = (long) (baseDelay * spread);
|
long spreadTime = (long) (baseDelay * spread);
|
||||||
long delay = baseDelay + ThreadLocalRandom.current().nextLong(-spreadTime, spreadTime);
|
long delay = spreadTime <= 0 ? baseDelay
|
||||||
|
: baseDelay + ThreadLocalRandom.current().nextLong(-spreadTime, spreadTime);
|
||||||
// Ensure that we don't roll over for nanoseconds.
|
// Ensure that we don't roll over for nanoseconds.
|
||||||
return (delay < 0) ? baseDelay : delay;
|
return (delay < 0) ? baseDelay : delay;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue