Repository: hbase
Updated Branches:
  refs/heads/branch-1 f1111e6f9 -> 3edf1154f
  refs/heads/branch-1.3 9321f7d86 -> f91a91247
  refs/heads/branch-1.4 709feeae9 -> 80802cbe6
  refs/heads/branch-2 c9c861dbb -> 5fe40089f
  refs/heads/branch-2.1 e26a6e0e1 -> e44ed1b1e
  refs/heads/master 704f8b81b -> 668a17988


HBASE-19418 configurable range of delay in PeriodicMemstoreFlusher

Signed-off-by: Andrew Purtell <[email protected]>


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

Branch: refs/heads/master
Commit: 668a17988222e7657ff21f945b6dd023bda4276c
Parents: 704f8b8
Author: ramie-raufdeen <[email protected]>
Authored: Mon Sep 10 18:39:53 2018 -0700
Committer: Andrew Purtell <[email protected]>
Committed: Fri Sep 28 14:27:07 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/668a1798/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 33abaae..d5e9832 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
@@ -1757,11 +1757,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
@@ -1772,7 +1777,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/668a1798/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 5754edb..79ee15d 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();

Reply via email to