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 2022/03/09 22:46:57 UTC

[hbase] branch master updated: HBASE-26814 Default StoreHotnessProtector to off, with logs to guide when to turn it on (#4194)

This is an automated email from the ASF dual-hosted git repository.

apurtell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 1dd29db  HBASE-26814 Default StoreHotnessProtector to off, with logs to guide when to turn it on (#4194)
1dd29db is described below

commit 1dd29dba5cd9272d9a8781f7689ca99d73745411
Author: Bryan Beaudreault <bb...@hubspot.com>
AuthorDate: Wed Mar 9 17:43:58 2022 -0500

    HBASE-26814 Default StoreHotnessProtector to off, with logs to guide when to turn it on (#4194)
    
    Signed-off-by: Andrew Purtell <ap...@apache.org>
---
 .../hbase/regionserver/throttle/StoreHotnessProtector.java | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/throttle/StoreHotnessProtector.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/throttle/StoreHotnessProtector.java
index 7cb3a24..4282c93 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/throttle/StoreHotnessProtector.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/throttle/StoreHotnessProtector.java
@@ -30,7 +30,6 @@ import org.apache.hadoop.hbase.regionserver.Store;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.ClassSize;
 import org.apache.yetus.audience.InterfaceAudience;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,6 +62,10 @@ import org.slf4j.LoggerFactory;
 @InterfaceAudience.Private
 public class StoreHotnessProtector {
   private static final Logger LOG = LoggerFactory.getLogger(StoreHotnessProtector.class);
+
+  // We want to log just once so that users are aware of this tool
+  private static volatile boolean loggedDisableMessage;
+
   private volatile int parallelPutToStoreThreadLimit;
 
   private volatile int parallelPreparePutToStoreThreadLimit;
@@ -70,7 +73,7 @@ public class StoreHotnessProtector {
       "hbase.region.store.parallel.put.limit";
   public final static String PARALLEL_PREPARE_PUT_STORE_MULTIPLIER =
       "hbase.region.store.parallel.prepare.put.multiplier";
-  private final static int DEFAULT_PARALLEL_PUT_STORE_THREADS_LIMIT = 10;
+  private final static int DEFAULT_PARALLEL_PUT_STORE_THREADS_LIMIT = 0;
   private volatile int parallelPutToStoreThreadLimitCheckMinColumnCount;
   public final static String PARALLEL_PUT_STORE_THREADS_LIMIT_MIN_COLUMN_COUNT =
       "hbase.region.store.parallel.put.limit.min.column.count";
@@ -95,6 +98,13 @@ public class StoreHotnessProtector {
         conf.getInt(PARALLEL_PUT_STORE_THREADS_LIMIT_MIN_COLUMN_COUNT,
             DEFAULT_PARALLEL_PUT_STORE_THREADS_LIMIT_MIN_COLUMN_NUM);
 
+    if (!isEnable() && !loggedDisableMessage) {
+      loggedDisableMessage = true;
+
+      LOG.info("StoreHotnessProtector is disabled. Set {} > 0 to enable, "
+          + "which may help mitigate load under heavy write pressure.",
+        PARALLEL_PUT_STORE_THREADS_LIMIT);
+    }
   }
 
   public void update(Configuration conf) {