From ca4c516364ef97695723cd579033fcf1baea7422 Mon Sep 17 00:00:00 2001 From: Bryan Beaudreault Date: Thu, 10 Mar 2022 10:46:17 -0500 Subject: [PATCH] HBASE-26814 Addendum: Fix spotbugs warning and clarify intent --- .../throttle/StoreHotnessProtector.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 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 4282c93032d0..1bf1a9b52b39 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 @@ -63,7 +63,6 @@ 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; @@ -98,12 +97,23 @@ public void init(Configuration conf) { conf.getInt(PARALLEL_PUT_STORE_THREADS_LIMIT_MIN_COLUMN_COUNT, DEFAULT_PARALLEL_PUT_STORE_THREADS_LIMIT_MIN_COLUMN_NUM); - if (!isEnable() && !loggedDisableMessage) { - loggedDisableMessage = true; + if (!isEnable()) { + logDisabledMessageOnce(); + } + } + /** + * {@link #init(Configuration)} is called for every Store that opens on a RegionServer. + * Here we make a lightweight attempt to log this message once per RegionServer, rather than + * per-Store. The goal is just to draw attention to this feature if debugging overload due to + * heavy writes. + */ + private static void logDisabledMessageOnce() { + if (!loggedDisableMessage) { LOG.info("StoreHotnessProtector is disabled. Set {} > 0 to enable, " + "which may help mitigate load under heavy write pressure.", PARALLEL_PUT_STORE_THREADS_LIMIT); + loggedDisableMessage = true; } }