HBASE-18390 Sleep too long when finding region location failed

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

Branch: refs/heads/HBASE-18147
Commit: 6b7ebc019c8c64a7e7a00461029f699b0f0e3772
Parents: 56d00f5
Author: Phil Yang <yangzhe1...@apache.org>
Authored: Wed Jul 19 11:34:57 2017 +0800
Committer: Phil Yang <yangzhe1...@apache.org>
Committed: Wed Jul 19 11:34:57 2017 +0800

----------------------------------------------------------------------
 .../hadoop/hbase/client/ConnectionUtils.java    | 14 --------------
 .../client/RegionAdminServiceCallable.java      |  8 +-------
 .../hbase/client/RegionServerCallable.java      |  8 +-------
 .../hbase/client/TestConnectionUtils.java       | 20 --------------------
 4 files changed, 2 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/6b7ebc01/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java
----------------------------------------------------------------------
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java
index 98ac845..1f2fbb5 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionUtils.java
@@ -95,20 +95,6 @@ public final class ConnectionUtils {
   }
 
   /**
-   * Adds / subs an up to 50% jitter to a pause time. Minimum is 1.
-   * @param pause the expected pause.
-   * @param jitter the jitter ratio, between 0 and 1, exclusive.
-   */
-  public static long addJitter(final long pause, final float jitter) {
-    float lag = pause * (ThreadLocalRandom.current().nextFloat() - 0.5f) * 
jitter;
-    long newPause = pause + (long) lag;
-    if (newPause <= 0) {
-      return 1;
-    }
-    return newPause;
-  }
-
-  /**
    * @param conn The connection for which to replace the generator.
    * @param cnm Replaces the nonce generator used, for testing.
    * @return old nonce generator.

http://git-wip-us.apache.org/repos/asf/hbase/blob/6b7ebc01/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java
----------------------------------------------------------------------
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java
index 6846562..c9a143c 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java
@@ -51,7 +51,6 @@ public abstract class RegionAdminServiceCallable<T> 
implements RetryingCallable<
   protected final TableName tableName;
   protected final byte[] row;
   protected final int replicaId;
-  protected final static int MIN_WAIT_DEAD_SERVER = 10000;
 
   public RegionAdminServiceCallable(ClusterConnection connection,
       RpcControllerFactory rpcControllerFactory, TableName tableName, byte[] 
row) {
@@ -136,12 +135,7 @@ public abstract class RegionAdminServiceCallable<T> 
implements RetryingCallable<
 
   @Override
   public long sleep(long pause, int tries) {
-    long sleep = ConnectionUtils.getPauseTime(pause, tries);
-    if (sleep < MIN_WAIT_DEAD_SERVER
-        && (location == null || 
connection.isDeadServer(location.getServerName()))) {
-      sleep = ConnectionUtils.addJitter(MIN_WAIT_DEAD_SERVER, 0.10f);
-    }
-    return sleep;
+    return ConnectionUtils.getPauseTime(pause, tries);
   }
 
   public static RegionLocations getRegionLocations(

http://git-wip-us.apache.org/repos/asf/hbase/blob/6b7ebc01/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java
----------------------------------------------------------------------
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java
index a8e17c6..fb593a3 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RegionServerCallable.java
@@ -58,7 +58,6 @@ public abstract class RegionServerCallable<T, S> implements 
RetryingCallable<T>
    * Some subclasses want to set their own location. Make it protected.
    */
   protected HRegionLocation location;
-  protected final static int MIN_WAIT_DEAD_SERVER = 10000;
   protected S stub;
 
   /**
@@ -185,12 +184,7 @@ public abstract class RegionServerCallable<T, S> 
implements RetryingCallable<T>
   }
 
   public long sleep(long pause, int tries) {
-    long sleep = ConnectionUtils.getPauseTime(pause, tries);
-    if (sleep < MIN_WAIT_DEAD_SERVER
-        && (location == null || 
getConnection().isDeadServer(location.getServerName()))) {
-      sleep = ConnectionUtils.addJitter(MIN_WAIT_DEAD_SERVER, 0.10f);
-    }
-    return sleep;
+    return ConnectionUtils.getPauseTime(pause, tries);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/6b7ebc01/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestConnectionUtils.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestConnectionUtils.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestConnectionUtils.java
index c3e4a28..d34f9fa 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestConnectionUtils.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestConnectionUtils.java
@@ -56,26 +56,6 @@ public class TestConnectionUtils {
   }
 
   @Test
-  public void testAddJitter() {
-    long basePause = 10000;
-    long maxTimeExpected = (long) (basePause * 1.25f);
-    long minTimeExpected = (long) (basePause * 0.75f);
-    int testTries = 100;
-
-    Set<Long> timeSet = new TreeSet<>();
-    for (int i = 0; i < testTries; i++) {
-      long withJitter = ConnectionUtils.addJitter(basePause, 0.5f);
-      assertTrue(withJitter >= minTimeExpected);
-      assertTrue(withJitter <= maxTimeExpected);
-      // Add the long to the set
-      timeSet.add(withJitter);
-    }
-
-    //Make sure that most are unique.  some overlap will happen
-    assertTrue(timeSet.size() > (testTries * 0.90));
-  }
-
-  @Test
   public void testGetPauseTime() {
     long pauseTime;
     long baseTime = 100;

Reply via email to