HBASE-1422 Delayed flush doesn't work causing flush storms; addendum by Lars Hofhansl

This commit is contained in:
stack 2015-12-05 11:39:34 -08:00
parent 9bf4777af5
commit 7d0c08fbcd
1 changed files with 2 additions and 1 deletions

View File

@ -81,7 +81,8 @@ public class JitterScheduledThreadPoolExecutorImpl extends ScheduledThreadPoolEx
public long getDelay(TimeUnit unit) {
long baseDelay = wrapped.getDelay(unit);
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.
return (delay < 0) ? baseDelay : delay;
}