From 6a3f44c0aa00c529d40c41d8505584481511e46a Mon Sep 17 00:00:00 2001 From: Andrew Purtell Date: Thu, 1 Aug 2019 18:18:24 -0700 Subject: [PATCH] Amend HBASE-22762 Print the delta between phases in the split/merge/compact/flush transaction journals Update merge, compact, and flush transaction journals too --- .../hbase/monitoring/MonitoredTaskImpl.java | 17 ++++++++++++++++- .../hadoop/hbase/regionserver/HRegion.java | 4 ++-- .../regionserver/RegionMergeRequest.java | 1 + .../RegionMergeTransactionImpl.java | 19 +++++++++++++++++++ .../regionserver/SplitTransactionImpl.java | 2 +- 5 files changed, 39 insertions(+), 4 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.java index ed042126f9..4eedf977ef 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hbase.monitoring; import org.apache.hadoop.hbase.classification.InterfaceAudience; +import org.apache.hadoop.hbase.regionserver.SplitTransaction.JournalEntry; import org.apache.hadoop.util.StringUtils; import org.codehaus.jackson.map.ObjectMapper; @@ -269,7 +270,21 @@ class MonitoredTaskImpl implements MonitoredTask { @Override public String prettyPrintJournal() { - return StringUtils.join("\n\t", getStatusJournal()); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < journal.size(); i++) { + StatusJournalEntry je = journal.get(i); + sb.append(je.toString()); + if (i != 0) { + StatusJournalEntry jep = journal.get(i-1); + long delta = je.getTimeStamp() - jep.getTimeStamp(); + if (delta != 0) { + sb.append(" (+" + delta + " ms)\n"); + } else { + sb.append("\n"); + } + } + } + return sb.toString(); } } 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 1712867caf..8f0b96d892 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 @@ -2126,7 +2126,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi } finally { if (requestNeedsCancellation) store.cancelRequestedCompaction(compaction); if (status != null) { - LOG.debug("Compaction status journal:\n\t" + status.prettyPrintJournal()); + LOG.debug("Compaction status journal:\n" + status.prettyPrintJournal()); status.cleanup(); } } @@ -2232,7 +2232,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi } } finally { lock.readLock().unlock(); - LOG.debug("Flush status journal:\n\t" + status.prettyPrintJournal()); + LOG.debug("Flush status journal:\n" + status.prettyPrintJournal()); status.cleanup(); } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java index 4d806aab40..4856ffc7be 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeRequest.java @@ -129,6 +129,7 @@ class RegionMergeRequest implements Runnable { + mt.getMergedRegionInfo().getRegionNameAsString() + ". Region merge took " + StringUtils.formatTimeDiff(EnvironmentEdgeManager.currentTime(), startTime)); + LOG.info("Merge transaction journal:\n" + mt.toString()); } catch (IOException ex) { LOG.error("Merge failed " + this, RemoteExceptionHandler.checkIOException(ex)); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeTransactionImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeTransactionImpl.java index ff0d7a19ac..be70a5ec8b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeTransactionImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionMergeTransactionImpl.java @@ -41,6 +41,7 @@ import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager; import org.apache.hadoop.hbase.coordination.RegionMergeCoordination.RegionMergeDetails; import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode; +import org.apache.hadoop.hbase.regionserver.SplitTransaction.JournalEntry; import org.apache.hadoop.hbase.regionserver.SplitTransactionImpl.LoggingProgressable; import org.apache.hadoop.hbase.security.User; import org.apache.hadoop.hbase.util.Bytes; @@ -870,4 +871,22 @@ public class RegionMergeTransactionImpl implements RegionMergeTransaction { return rsServices; } + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < journal.size(); i++) { + JournalEntry je = journal.get(i); + sb.append(je.toString()); + if (i != 0) { + JournalEntry jep = journal.get(i-1); + long delta = je.getTimeStamp() - jep.getTimeStamp(); + if (delta != 0) { + sb.append(" (+" + delta + " ms)\n"); + } else { + sb.append("\n"); + } + } + } + return sb.toString(); + } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransactionImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransactionImpl.java index 7aacac0cf2..dd2e53041e 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransactionImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransactionImpl.java @@ -971,7 +971,7 @@ public class SplitTransactionImpl implements SplitTransaction { StringBuilder sb = new StringBuilder(); for (int i = 0; i < journal.size(); i++) { JournalEntry je = journal.get(i); - sb.append( je.toString()); + sb.append(je.toString()); if (i != 0) { JournalEntry jep = journal.get(i-1); long delta = je.getTimeStamp() - jep.getTimeStamp(); -- 2.22.0