hbase git commit: HBASE-21164 reportForDuty should do backoff rather than retry
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
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
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