From d624fe0232b2a1c2017545a6da5408930e60b57b Mon Sep 17 00:00:00 2001 From: Vincent Poon Date: Tue, 20 Feb 2018 17:28:34 -0800 Subject: [PATCH] HBASE-20034 Make periodic flusher delay configurable --- .../java/org/apache/hadoop/hbase/regionserver/HRegionServer.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 e2aac03..0533df1 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 @@ -1739,11 +1739,15 @@ 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 + private int rangeOfDelay; + final static int DEFAULT_RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds final static int MIN_DELAY_TIME = 0; // millisec public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) { super("MemstoreFlusherChore", server, cacheFlushInterval); this.server = server; + this.rangeOfDelay = server.getConfiguration(). + getInt("hbase.regionserver.periodicflusher.rangeofdelay", + DEFAULT_RANGE_OF_DELAY); } @Override @@ -1754,7 +1758,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; LOG.info(getName() + " requesting flush of " + r.getRegionInfo().getRegionNameAsString() + " because " + whyFlush.toString() + -- 2.7.4