diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java index 0493192..5b10edb 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromAdmin.java @@ -54,13 +54,14 @@ public class TestSnapshotFromAdmin { */ @Test(timeout = 60000) public void testBackoffLogic() throws Exception { - final int maxWaitTime = 7500; - final int numRetries = 10; - final int pauseTime = 500; + final int pauseTime = 100; + final int maxWaitTime = + HConstants.RETRY_BACKOFF[HConstants.RETRY_BACKOFF.length - 1] * pauseTime; + final int numRetries = HConstants.RETRY_BACKOFF.length; // calculate the wait time, if we just do straight backoff (ignoring the expected time from // master) long ignoreExpectedTime = 0; - for (int i = 0; i < 6; i++) { + for (int i = 0; i < HConstants.RETRY_BACKOFF.length; i++) { ignoreExpectedTime += HConstants.RETRY_BACKOFF[i] * pauseTime; } // the correct wait time, capping at the maxTime/tries + fudge room diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java index 5cfd340..fab7bbe 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java @@ -492,10 +492,13 @@ public final class HConstants { public static final String CONFIGURATION = "CONFIGURATION"; /** - * This is a retry backoff multiplier table similar to the BSD TCP syn - * backoff table, a bit more aggressive than simple exponential backoff. + * Retrying we multiply hbase.client.pause setting by what we have in this array until we + * run out of array items. Retries beyond this use the last number in the array. So, for + * example, if hbase.client.pause is 1 second, and maximum retries count + * hbase.client.retries.number is 10, we will retry at the following intervals: + * 1, 2, 3, 10, 100, 100, 100, 100, 100, 100. */ - public static int RETRY_BACKOFF[] = { 1, 10, 100 }; + public static int RETRY_BACKOFF[] = { 1, 2, 3, 5, 10, 100 }; public static final String REGION_IMPL = "hbase.hregion.impl";