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/09 23:23:51 UTC
[hbase] 01/02: 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
commit 1047246717c9d866401938264f3b2c523c3dfd83
Author: stack <st...@apache.org>
AuthorDate: Thu Jan 9 11:31:20 2020 -0800
HBASE-23668 Master log start filling with "Flush journal status" messages
---
.../store/region/RegionFlusherAndCompactor.java | 15 +++++++++++++--
.../procedure2/store/region/RegionProcedureStore.java | 14 ++++++++------
.../org/apache/hadoop/hbase/regionserver/HRegion.java | 4 ++--
3 files changed, 23 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..5f2ff07 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 ||
+ boolean flush = region.getMemStoreHeapSize() + region.getMemStoreOffHeapSize() >= flushSize ||
changes > flushPerChanges;
+ if (flush && LOG.isTraceEnabled()) {
+ LOG.trace("shouldFlush memStoreSize={}, flushSize={}, changes={}, flushPerChanges={}",
+ region.getMemStoreHeapSize() + region.getMemStoreOffHeapSize(), 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..be543d0 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
@@ -382,7 +383,8 @@ public class RegionProcedureStore extends ProcedureStoreBase {
if (conf.get(USE_HSYNC_KEY) != null) {
conf.set(HRegion.WAL_HSYNC_CONF_KEY, conf.get(USE_HSYNC_KEY));
}
- conf.setInt(AbstractFSWAL.RING_BUFFER_SLOT_COUNT, IntMath.ceilingPowerOfTwo(16 * numThreads));
+ conf.setInt(AbstractFSWAL.RING_BUFFER_SLOT_COUNT,
+ IntMath.ceilingPowerOfTwo(16 * numThreads));
walRoller = RegionProcedureStoreWALRoller.create(conf, server, fs, rootDir, globalWALRootDir);
walRoller.start();
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
+}