From 42699622633cb226ff73aff5f618cf8f115fcf92 Mon Sep 17 00:00:00 2001 From: Sandeep Guggilam Date: Wed, 5 Aug 2020 13:56:12 -0700 Subject: [PATCH 1/2] HBASE-24823 Port HBASE-22762 Print the delta between phases in the split/merge/compact/flush transaction journals to master branch --- .../hbase/monitoring/MonitoredTaskImpl.java | 16 ++++++++++++++-- .../hadoop/hbase/regionserver/HRegion.java | 4 ++-- 2 files changed, 16 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 c95363bb7083..43295f16d27e 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 @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import org.apache.hadoop.hbase.util.GsonUtil; -import org.apache.hadoop.util.StringUtils; import org.apache.yetus.audience.InterfaceAudience; import org.apache.hbase.thirdparty.com.google.gson.Gson; @@ -271,7 +270,20 @@ public void disableStatusJournal() { @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)"); + } + } + 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 8e3b818f58a5..219252ac6001 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 @@ -2341,7 +2341,7 @@ public boolean compact(CompactionContext compaction, HStore store, } finally { if (requestNeedsCancellation) store.cancelRequestedCompaction(compaction); if (status != null) { - LOG.debug("Compaction status journal for {}:\n\t{}", this.getRegionInfo().getEncodedName(), + LOG.debug("Compaction status journal for {}:\n{}", this.getRegionInfo().getEncodedName(), status.prettyPrintJournal()); status.cleanup(); } @@ -2506,7 +2506,7 @@ public FlushResultImpl flushcache(List families, } } finally { lock.readLock().unlock(); - LOG.debug("Flush status journal for {}:\n\t{}", this.getRegionInfo().getEncodedName(), + LOG.debug("Flush status journal for {}:\n{}", this.getRegionInfo().getEncodedName(), status.prettyPrintJournal()); status.cleanup(); } From cde232b40f0de316abe1c15b99bf76737f40457a Mon Sep 17 00:00:00 2001 From: Sandeep Guggilam Date: Wed, 5 Aug 2020 16:45:59 -0700 Subject: [PATCH 2/2] Check for journal enabled beforre printing --- .../org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.java | 3 +++ 1 file changed, 3 insertions(+) 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 43295f16d27e..af6a47af3731 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 @@ -270,6 +270,9 @@ public void disableStatusJournal() { @Override public String prettyPrintJournal() { + if (!journalEnabled) { + return ""; + } StringBuilder sb = new StringBuilder(); for (int i = 0; i < journal.size(); i++) { StatusJournalEntry je = journal.get(i);