hbase git commit: HBASE-21164 reportForDuty should do backoff rather than retry

2018-09-25 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master 27369136b -> 08c4d70aa


HBASE-21164 reportForDuty should do backoff rather than retry

Remove unused methods from Sleeper (its ok, its @Private).
Remove notion of startTime from Sleeper handling (it is is unused).
Allow passing in how long to sleep so can maintain externally.
In HRS, use a RetryCounter to calculate backoff sleep time for when
reportForDuty is failing against a struggling Master.


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

Branch: refs/heads/master
Commit: 08c4d70aaf0079fa1d0d74d5874f0f2639474138
Parents: 2736913
Author: Mingliang Liu 
Authored: Thu Sep 6 23:01:52 2018 -0700
Committer: Michael Stack 
Committed: Tue Sep 25 11:32:28 2018 -0700

--
 .../org/apache/hadoop/hbase/util/Sleeper.java   | 31 +++
 .../org/apache/hadoop/hbase/master/HMaster.java |  3 +-
 .../hbase/regionserver/HRegionServer.java   | 16 ++--
 .../TestRegionServerReportForDuty.java  | 88 
 4 files changed, 111 insertions(+), 27 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/08c4d70a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
--
diff --git 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
index 7d4d692..93ef08c 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
@@ -50,13 +50,6 @@ public class Sleeper {
   }
 
   /**
-   * Sleep for period.
-   */
-  public void sleep() {
-sleep(System.currentTimeMillis());
-  }
-
-  /**
* If currently asleep, stops sleeping; if not asleep, will skip the next
* sleep cycle.
*/
@@ -68,28 +61,24 @@ public class Sleeper {
   }
 
   /**
-   * Sleep for period adjusted by passed startTime
-   * @param startTime Time some task started previous to now.  Time to sleep
-   * will be docked current time minus passed startTime.
+   * Sleep for period.
*/
-  public void sleep(final long startTime) {
+  public void sleep() {
+sleep(this.period);
+  }
+
+  public void sleep(long sleepTime) {
 if (this.stopper.isStopped()) {
   return;
 }
 long now = System.currentTimeMillis();
-long waitTime = this.period - (now - startTime);
-if (waitTime > this.period) {
-  LOG.warn("Calculated wait time > " + this.period +
-"; setting to this.period: " + System.currentTimeMillis() + ", " +
-startTime);
-  waitTime = this.period;
-}
-while (waitTime > 0) {
+long currentSleepTime = sleepTime;
+while (currentSleepTime > 0) {
   long woke = -1;
   try {
 synchronized (sleepLock) {
   if (triggerWake) break;
-  sleepLock.wait(waitTime);
+  sleepLock.wait(currentSleepTime);
 }
 woke = System.currentTimeMillis();
 long slept = woke - now;
@@ -108,7 +97,7 @@ public class Sleeper {
   }
   // Recalculate waitTime.
   woke = (woke == -1)? System.currentTimeMillis(): woke;
-  waitTime = this.period - (woke - startTime);
+  currentSleepTime = this.period - (woke - now);
 }
 synchronized(sleepLock) {
   triggerWake = false;

http://git-wip-us.apache.org/repos/asf/hbase/blob/08c4d70a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 1853062..8ae8be3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -3012,7 +3012,8 @@ public class HMaster extends HRegionServer implements 
MasterServices {
 }
   }
 
-  void checkServiceStarted() throws ServerNotRunningYetException {
+  @VisibleForTesting
+  protected void checkServiceStarted() throws ServerNotRunningYetException {
 if (!serviceStarted) {
   throw new ServerNotRunningYetException("Server is not running yet");
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/08c4d70a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 

hbase git commit: HBASE-21164 reportForDuty should do backoff rather than retry

2018-09-25 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 2836f7562 -> 0f514ab75


HBASE-21164 reportForDuty should do backoff rather than retry

Remove unused methods from Sleeper (its ok, its @Private).
Remove notion of startTime from Sleeper handling (it is is unused).
Allow passing in how long to sleep so can maintain externally.
In HRS, use a RetryCounter to calculate backoff sleep time for when
reportForDuty is failing against a struggling Master.


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

Branch: refs/heads/branch-2
Commit: 0f514ab75ae3d903bb2229c97ef824bbd53d3ba8
Parents: 2836f75
Author: Mingliang Liu 
Authored: Thu Sep 6 23:01:52 2018 -0700
Committer: Michael Stack 
Committed: Tue Sep 25 11:32:15 2018 -0700

--
 .../org/apache/hadoop/hbase/util/Sleeper.java   | 31 +++
 .../org/apache/hadoop/hbase/master/HMaster.java |  3 +-
 .../hbase/regionserver/HRegionServer.java   | 16 ++--
 .../TestRegionServerReportForDuty.java  | 88 
 4 files changed, 111 insertions(+), 27 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/0f514ab7/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
--
diff --git 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
index 7d4d692..93ef08c 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
@@ -50,13 +50,6 @@ public class Sleeper {
   }
 
   /**
-   * Sleep for period.
-   */
-  public void sleep() {
-sleep(System.currentTimeMillis());
-  }
-
-  /**
* If currently asleep, stops sleeping; if not asleep, will skip the next
* sleep cycle.
*/
@@ -68,28 +61,24 @@ public class Sleeper {
   }
 
   /**
-   * Sleep for period adjusted by passed startTime
-   * @param startTime Time some task started previous to now.  Time to sleep
-   * will be docked current time minus passed startTime.
+   * Sleep for period.
*/
-  public void sleep(final long startTime) {
+  public void sleep() {
+sleep(this.period);
+  }
+
+  public void sleep(long sleepTime) {
 if (this.stopper.isStopped()) {
   return;
 }
 long now = System.currentTimeMillis();
-long waitTime = this.period - (now - startTime);
-if (waitTime > this.period) {
-  LOG.warn("Calculated wait time > " + this.period +
-"; setting to this.period: " + System.currentTimeMillis() + ", " +
-startTime);
-  waitTime = this.period;
-}
-while (waitTime > 0) {
+long currentSleepTime = sleepTime;
+while (currentSleepTime > 0) {
   long woke = -1;
   try {
 synchronized (sleepLock) {
   if (triggerWake) break;
-  sleepLock.wait(waitTime);
+  sleepLock.wait(currentSleepTime);
 }
 woke = System.currentTimeMillis();
 long slept = woke - now;
@@ -108,7 +97,7 @@ public class Sleeper {
   }
   // Recalculate waitTime.
   woke = (woke == -1)? System.currentTimeMillis(): woke;
-  waitTime = this.period - (woke - startTime);
+  currentSleepTime = this.period - (woke - now);
 }
 synchronized(sleepLock) {
   triggerWake = false;

http://git-wip-us.apache.org/repos/asf/hbase/blob/0f514ab7/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 50c7b80..0678bfe 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -2998,7 +2998,8 @@ public class HMaster extends HRegionServer implements 
MasterServices {
 }
   }
 
-  void checkServiceStarted() throws ServerNotRunningYetException {
+  @VisibleForTesting
+  protected void checkServiceStarted() throws ServerNotRunningYetException {
 if (!serviceStarted) {
   throw new ServerNotRunningYetException("Server is not running yet");
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/0f514ab7/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 

hbase git commit: HBASE-21164 reportForDuty should do backoff rather than retry

2018-09-25 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2.1 0d008b479 -> fea75742b


HBASE-21164 reportForDuty should do backoff rather than retry

Remove unused methods from Sleeper (its ok, its @Private).
Remove notion of startTime from Sleeper handling (it is is unused).
Allow passing in how long to sleep so can maintain externally.
In HRS, use a RetryCounter to calculate backoff sleep time for when
reportForDuty is failing against a struggling Master.


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

Branch: refs/heads/branch-2.1
Commit: fea75742b4b9dc476bb2b83efcb3c6358f46bcc2
Parents: 0d008b4
Author: Mingliang Liu 
Authored: Thu Sep 6 23:01:52 2018 -0700
Committer: Michael Stack 
Committed: Tue Sep 25 11:31:39 2018 -0700

--
 .../org/apache/hadoop/hbase/util/Sleeper.java   | 31 +++
 .../org/apache/hadoop/hbase/master/HMaster.java |  3 +-
 .../hbase/regionserver/HRegionServer.java   | 16 ++--
 .../TestRegionServerReportForDuty.java  | 88 
 4 files changed, 111 insertions(+), 27 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/fea75742/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
--
diff --git 
a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
index 7d4d692..93ef08c 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
@@ -50,13 +50,6 @@ public class Sleeper {
   }
 
   /**
-   * Sleep for period.
-   */
-  public void sleep() {
-sleep(System.currentTimeMillis());
-  }
-
-  /**
* If currently asleep, stops sleeping; if not asleep, will skip the next
* sleep cycle.
*/
@@ -68,28 +61,24 @@ public class Sleeper {
   }
 
   /**
-   * Sleep for period adjusted by passed startTime
-   * @param startTime Time some task started previous to now.  Time to sleep
-   * will be docked current time minus passed startTime.
+   * Sleep for period.
*/
-  public void sleep(final long startTime) {
+  public void sleep() {
+sleep(this.period);
+  }
+
+  public void sleep(long sleepTime) {
 if (this.stopper.isStopped()) {
   return;
 }
 long now = System.currentTimeMillis();
-long waitTime = this.period - (now - startTime);
-if (waitTime > this.period) {
-  LOG.warn("Calculated wait time > " + this.period +
-"; setting to this.period: " + System.currentTimeMillis() + ", " +
-startTime);
-  waitTime = this.period;
-}
-while (waitTime > 0) {
+long currentSleepTime = sleepTime;
+while (currentSleepTime > 0) {
   long woke = -1;
   try {
 synchronized (sleepLock) {
   if (triggerWake) break;
-  sleepLock.wait(waitTime);
+  sleepLock.wait(currentSleepTime);
 }
 woke = System.currentTimeMillis();
 long slept = woke - now;
@@ -108,7 +97,7 @@ public class Sleeper {
   }
   // Recalculate waitTime.
   woke = (woke == -1)? System.currentTimeMillis(): woke;
-  waitTime = this.period - (woke - startTime);
+  currentSleepTime = this.period - (woke - now);
 }
 synchronized(sleepLock) {
   triggerWake = false;

http://git-wip-us.apache.org/repos/asf/hbase/blob/fea75742/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index d7e57e8..475b0ca 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -2923,7 +2923,8 @@ public class HMaster extends HRegionServer implements 
MasterServices {
 }
   }
 
-  void checkServiceStarted() throws ServerNotRunningYetException {
+  @VisibleForTesting
+  protected void checkServiceStarted() throws ServerNotRunningYetException {
 if (!serviceStarted) {
   throw new ServerNotRunningYetException("Server is not running yet");
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/fea75742/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java