You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2019/08/02 02:23:17 UTC

[hbase] 02/02: Amend HBASE-22762 Print the delta between phases in the split/merge/compact/flush transaction journals

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

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

commit 031a83bb30372564dd2d4e200e3eef20418bc7f2
Author: Andrew Purtell <ap...@apache.org>
AuthorDate: Thu Aug 1 18:18:24 2019 -0700

    Amend HBASE-22762 Print the delta between phases in the split/merge/compact/flush transaction journals
    
    Update merge, compact, and flush transaction journals too
---
 .../hadoop/hbase/monitoring/MonitoredTaskImpl.java     | 16 ++++++++++++++--
 .../org/apache/hadoop/hbase/regionserver/HRegion.java  |  8 ++++++--
 .../hadoop/hbase/regionserver/RegionMergeRequest.java  |  1 +
 .../hbase/regionserver/RegionMergeTransactionImpl.java | 18 ++++++++++++++++++
 .../apache/hadoop/hbase/regionserver/SplitRequest.java |  3 +--
 .../hbase/regionserver/SplitTransactionImpl.java       |  7 +++----
 6 files changed, 43 insertions(+), 10 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 ed04212..4f373c4 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,7 +19,6 @@
 package org.apache.hadoop.hbase.monitoring;
 
 import org.apache.hadoop.hbase.classification.InterfaceAudience;
-import org.apache.hadoop.util.StringUtils;
 import org.codehaus.jackson.map.ObjectMapper;
 
 import java.io.IOException;
@@ -269,7 +268,20 @@ 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)");
+        }
+      }
+      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 1712867..3cb0de5 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,9 @@ 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());
+        if (LOG.isDebugEnabled()) {
+          LOG.debug("Compaction status journal:\n" + status.prettyPrintJournal());
+        }
         status.cleanup();
       }
     }
@@ -2232,7 +2234,9 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver, Regi
       }
     } finally {
       lock.readLock().unlock();
-      LOG.debug("Flush status journal:\n\t" + status.prettyPrintJournal());
+      if (LOG.isDebugEnabled()) {
+        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 4d806aa..4856ffc 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 ff0d7a1..262dd9b 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,21 @@ 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)");
+        }
+      }
+      sb.append("\n");
+    }
+    return sb.toString();
+  }
 }
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java
index 5a62495..79aaa5c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java
@@ -138,9 +138,8 @@ class SplitRequest implements Runnable {
             + st.getFirstDaughter().getRegionNameAsString() + ", "
             + st.getSecondDaughter().getRegionNameAsString() + ". Split took "
             + StringUtils.formatTimeDiff(EnvironmentEdgeManager.currentTime(), startTime));
+        LOG.info("Split transaction journal:\n" + st.toString());
       }
-      // Always log the split transaction journal
-      LOG.info("Split transaction journal:\n" + st.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 7aacac0..8685236 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,16 +971,15 @@ 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();
         if (delta != 0) {
-          sb.append(" (+" + delta + " ms)\n");
-        } else {
-          sb.append("\n");
+          sb.append(" (+" + delta + " ms)");
         }
       }
+      sb.append("\n");
     }
     return sb.toString();
   }