From 8fb94aafa0749d61ce3172346ac825409dad4144 Mon Sep 17 00:00:00 2001 From: Vincent Poon Date: Tue, 20 Feb 2018 17:27:27 -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 37ea94b..d03749d 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 @@ -1653,11 +1653,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(server.getServerName() + "-MemstoreFlusherChore", server, cacheFlushInterval); this.server = server; + this.rangeOfDelay = server.getConfiguration(). + getInt("hbase.regionserver.periodicflusher.rangeofdelay", + DEFAULT_RANGE_OF_DELAY); } @Override @@ -1668,7 +1672,7 @@ public class HRegionServer extends HasThread implements if (((HRegion)r).shouldFlush(whyFlush)) { FlushRequester requester = server.getFlushRequester(); if (requester != null) { - long randomDelay = (long) RandomUtils.nextInt(RANGE_OF_DELAY) + MIN_DELAY_TIME; + long randomDelay = (long) RandomUtils.nextInt(rangeOfDelay) + MIN_DELAY_TIME; LOG.info(getName() + " requesting flush of " + r.getRegionInfo().getRegionNameAsString() + " because " + whyFlush.toString() + -- 2.7.4