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 53bf66b49df..5f2ff075f67 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 05a50592def..be543d03688 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 a55e2fe069c..dac034d3be7 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 +}