Revert "Revert "HBASE-14922 Delayed flush doesn't work causing flush storms; 
addendum by Lars Hofhansl""
Push again but with right JIRA number this time.

This reverts commit 9fb53d07c418002c8a03be1e7e664e094f304ba5.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/8bf70144
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/8bf70144
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/8bf70144

Branch: refs/heads/hbase-12439
Commit: 8bf70144e40650ef972f005e2465bd0e2a087c40
Parents: 9fb53d0
Author: stack <st...@apache.org>
Authored: Sat Dec 5 14:30:25 2015 -0800
Committer: stack <st...@apache.org>
Committed: Sat Dec 5 14:30:25 2015 -0800

----------------------------------------------------------------------
 .../hadoop/hbase/JitterScheduledThreadPoolExecutorImpl.java       | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/8bf70144/hbase-common/src/main/java/org/apache/hadoop/hbase/JitterScheduledThreadPoolExecutorImpl.java
----------------------------------------------------------------------
diff --git 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/JitterScheduledThreadPoolExecutorImpl.java
 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/JitterScheduledThreadPoolExecutorImpl.java
index ca15286..7e7239e 100644
--- 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/JitterScheduledThreadPoolExecutorImpl.java
+++ 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/JitterScheduledThreadPoolExecutorImpl.java
@@ -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;
     }

Reply via email to