You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2020/01/10 18:27:44 UTC

[hbase] branch branch-2 updated: HBASE-23668 Master log start filling with "Flush journal status" messages"

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

stack pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 938dd1c  HBASE-23668 Master log start filling with "Flush journal status" messages"
938dd1c is described below

commit 938dd1c2f80283c2aa37219ae8224204688a5124
Author: stack <st...@apache.org>
AuthorDate: Thu Jan 9 15:35:43 2020 -0800

    HBASE-23668 Master log start filling with "Flush journal status" messages"
    
    This reverts commit fb9fa04da72379431d13f22a7e5d8e75ae1267be.
    i.e. reapplication of patch that was preamaturely applied.
    
    Signed-off-by: Duo Zhang <zh...@apache.org>
---
 .../store/region/RegionFlusherAndCompactor.java         | 17 ++++++++++++++---
 .../procedure2/store/region/RegionProcedureStore.java   | 11 ++++++-----
 .../org/apache/hadoop/hbase/regionserver/HRegion.java   |  4 ++--
 3 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionFlusherAndCompactor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionFlusherAndCompactor.java
index 53bf66b..ee3dbad 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionFlusherAndCompactor.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionFlusherAndCompactor.java
@@ -120,6 +120,8 @@ class RegionFlusherAndCompactor implements Closeable {
     flushThread.start();
     compactExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder()
       .setNameFormat("Procedure-Region-Store-Compactor").setDaemon(true).build());
+    LOG.info("Constructor flushSize={}, flushPerChanges={}, flushIntervalMs={}, " +
+        "compactMin=", flushSize, flushPerChanges, flushIntervalMs, compactMin);
   }
 
   // inject our flush related configurations
@@ -130,6 +132,8 @@ class RegionFlusherAndCompactor implements Closeable {
     conf.setLong(HRegion.MEMSTORE_FLUSH_PER_CHANGES, flushPerChanges);
     long flushIntervalMs = conf.getLong(FLUSH_INTERVAL_MS_KEY, DEFAULT_FLUSH_INTERVAL_MS);
     conf.setLong(HRegion.MEMSTORE_PERIODIC_FLUSH_INTERVAL, flushIntervalMs);
+    LOG.info("Injected flushSize={}, flushPerChanges={}, flushIntervalMs={}", flushSize,
+      flushPerChanges, flushIntervalMs);
   }
 
   private void compact() {
@@ -180,6 +184,7 @@ class RegionFlusherAndCompactor implements Closeable {
       changesAfterLastFlush.set(0);
       try {
         region.flush(true);
+        lastFlushTime = EnvironmentEdgeManager.currentTime();
       } catch (IOException e) {
         LOG.error(HBaseMarkers.FATAL, "Failed to flush procedure store region, aborting...", e);
         abortable.abort("Failed to flush procedure store region", e);
@@ -207,8 +212,14 @@ class RegionFlusherAndCompactor implements Closeable {
   }
 
   private boolean shouldFlush(long changes) {
-    return region.getMemStoreHeapSize() + region.getMemStoreOffHeapSize() >= flushSize ||
-      changes > flushPerChanges;
+    long heapSize = region.getMemStoreHeapSize();
+    long offHeapSize = region.getMemStoreOffHeapSize();
+    boolean flush = heapSize + offHeapSize >= flushSize || changes > flushPerChanges;
+    if (flush && LOG.isTraceEnabled()) {
+      LOG.trace("shouldFlush totalMemStoreSize={}, flushSize={}, changes={}, flushPerChanges={}",
+        heapSize + offHeapSize, flushSize, changes, flushPerChanges);
+    }
+    return flush;
   }
 
   void onUpdate() {
@@ -237,4 +248,4 @@ class RegionFlusherAndCompactor implements Closeable {
     flushThread.interrupt();
     compactExecutor.shutdown();
   }
-}
\ No newline at end of file
+}
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.java
index 05a5059..52d8566 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.java
@@ -306,7 +306,7 @@ public class RegionProcedureStore extends ProcedureStoreBase {
     if (!fs.exists(procWALDir)) {
       return;
     }
-    LOG.info("The old procedure wal directory {} exists, start migrating", procWALDir);
+    LOG.info("The old WALProcedureStore wal directory {} exists, migrating...", procWALDir);
     WALProcedureStore store = new WALProcedureStore(conf, leaseRecovery);
     store.start(numThreads);
     store.recoverLease();
@@ -347,7 +347,7 @@ public class RegionProcedureStore extends ProcedureStoreBase {
         }
       }
     });
-    LOG.info("The max pid is {}, and the max pid of all loaded procedures is {}",
+    LOG.info("The WALProcedureStore max pid is {}, and the max pid of all loaded procedures is {}",
       maxProcIdSet.longValue(), maxProcIdFromProcs.longValue());
     // Theoretically, the maxProcIdSet should be greater than or equal to maxProcIdFromProcs, but
     // anyway, let's do a check here.
@@ -358,12 +358,13 @@ public class RegionProcedureStore extends ProcedureStoreBase {
           PROC_QUALIFIER, EMPTY_BYTE_ARRAY));
       }
     } else if (maxProcIdSet.longValue() < maxProcIdFromProcs.longValue()) {
-      LOG.warn("The max pid is less than the max pid of all loaded procedures");
+      LOG.warn("The WALProcedureStore max pid is less than the max pid of all loaded procedures");
     }
     if (!fs.delete(procWALDir, true)) {
-      throw new IOException("Failed to delete the migrated proc wal directory " + procWALDir);
+      throw new IOException("Failed to delete the WALProcedureStore migrated proc wal directory " +
+        procWALDir);
     }
-    LOG.info("Migration finished");
+    LOG.info("Migration of WALProcedureStore finished");
   }
 
   @Override
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index a55e2fe..dac034d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -2401,7 +2401,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
           flushesQueued.reset();
         }
 
-        status.markComplete("Flush successful");
+        status.markComplete("Flush successful " + fs.toString());
         return fs;
       } finally {
         synchronized (writestate) {
@@ -8871,4 +8871,4 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
       }
     }
   }
-}
\ No newline at end of file
+}