You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2018/09/28 22:00:56 UTC
[5/6] hbase git commit: HBASE-19418 configurable range of delay in
PeriodicMemstoreFlusher
HBASE-19418 configurable range of delay in PeriodicMemstoreFlusher
Signed-off-by: Andrew Purtell <ap...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e44ed1b1
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e44ed1b1
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e44ed1b1
Branch: refs/heads/branch-2.1
Commit: e44ed1b1ef6de49f9128ba76a4a6be7e1722d15f
Parents: e26a6e0
Author: ramie-raufdeen <ra...@salesforce.com>
Authored: Mon Sep 10 18:39:53 2018 -0700
Committer: Andrew Purtell <ap...@apache.org>
Committed: Fri Sep 28 14:39:52 2018 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/regionserver/HRegionServer.java | 9 +++++++--
.../hadoop/hbase/regionserver/TestRegionServerMetrics.java | 1 +
2 files changed, 8 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/e44ed1b1/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 b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
index 202d4c2..01d4195 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
@@ -1737,11 +1737,16 @@ public class HRegionServer extends HasThread implements
static class PeriodicMemStoreFlusher extends ScheduledChore {
final HRegionServer server;
- final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds
+ final static int RANGE_OF_DELAY = 5 * 60; // 5 min in seconds
final static int MIN_DELAY_TIME = 0; // millisec
+
+ final int rangeOfDelay;
public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {
super("MemstoreFlusherChore", server, cacheFlushInterval);
this.server = server;
+
+ this.rangeOfDelay = this.server.conf.getInt("hbase.regionserver.periodicmemstoreflusher.rangeofdelayseconds",
+ RANGE_OF_DELAY)*1000;
}
@Override
@@ -1752,7 +1757,7 @@ public class HRegionServer extends HasThread implements
if (r.shouldFlush(whyFlush)) {
FlushRequester requester = server.getFlushRequester();
if (requester != null) {
- long randomDelay = (long) RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;
+ long randomDelay = (long) RandomUtils.nextInt(0, rangeOfDelay) + MIN_DELAY_TIME;
//Throttle the flushes by putting a delay. If we don't throttle, and there
//is a balanced write-load on the regions in a table, we might end up
//overwhelming the filesystem with too many flushes at once.
http://git-wip-us.apache.org/repos/asf/hbase/blob/e44ed1b1/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java
index fab6512..b77adec 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java
@@ -112,6 +112,7 @@ public class TestRegionServerMetrics {
// testMobMetrics creates few hfiles and manages compaction manually.
conf.setInt("hbase.hstore.compactionThreshold", 100);
conf.setInt("hbase.hstore.compaction.max", 100);
+ conf.setInt("hbase.regionserver.periodicmemstoreflusher.rangeofdelayseconds", 4*60);
conf.setInt(HConstants.REGIONSERVER_INFO_PORT, -1);
TEST_UTIL.startMiniCluster(1, 1);