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 2014/11/08 07:28:54 UTC

hbase git commit: Amend HBASE-12424 Finer grained logging and metrics for split transactions; Hadoop 1 build fixes

Repository: hbase
Updated Branches:
  refs/heads/0.98 f279c7513 -> 25bc762ba


Amend HBASE-12424 Finer grained logging and metrics for split transactions; Hadoop 1 build fixes


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/25bc762b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/25bc762b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/25bc762b

Branch: refs/heads/0.98
Commit: 25bc762ba6f058e7e76ae9134f3e4f637db044b1
Parents: f279c75
Author: Andrew Purtell <ap...@apache.org>
Authored: Fri Nov 7 22:23:16 2014 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Fri Nov 7 22:25:05 2014 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/util/Strings.java   | 21 ++++++++++++++++++++
 .../MetricsRegionServerSourceImpl.java          | 16 +++++++++++++++
 .../hadoop/hbase/regionserver/SplitRequest.java |  3 ++-
 3 files changed, 39 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/25bc762b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Strings.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Strings.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Strings.java
index b4b4a13..1c0b3f4 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Strings.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Strings.java
@@ -18,6 +18,8 @@
  */
 package org.apache.hadoop.hbase.util;
 
+import java.util.Iterator;
+
 import org.apache.hadoop.hbase.classification.InterfaceAudience;
 
 /**
@@ -111,4 +113,23 @@ public class Strings {
     }
     return sb.toString();
   }
+
+  /**
+   * Concatenates strings, using a separator.
+   *
+   * @param separator Separator to join with.
+   * @param strings Strings to join.
+   */
+  public static String join(CharSequence separator, Iterable<?> strings) {
+    Iterator<?> i = strings.iterator();
+    if (!i.hasNext()) {
+      return "";
+    }
+    StringBuilder sb = new StringBuilder(i.next().toString());
+    while (i.hasNext()) {
+      sb.append(separator);
+      sb.append(i.next().toString());
+    }
+    return sb.toString();
+  }
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/25bc762b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
index be67541..ffb3055 100644
--- a/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
+++ b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
@@ -45,6 +45,9 @@ public class MetricsRegionServerSourceImpl
   private final MetricMutableCounterLong slowIncrement;
   private final MetricMutableCounterLong slowAppend;
 
+  private final MetricHistogram splitTimeHisto;
+  private final MetricHistogram flushTimeHisto;
+
   public MetricsRegionServerSourceImpl(MetricsRegionServerWrapper rsWrap) {
     this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT, rsWrap);
   }
@@ -73,6 +76,9 @@ public class MetricsRegionServerSourceImpl
     slowAppend = getMetricsRegistry().newCounter(SLOW_APPEND_KEY, SLOW_APPEND_DESC, 0l);
 
     replayHisto = getMetricsRegistry().newHistogram(REPLAY_KEY);
+
+    splitTimeHisto = getMetricsRegistry().newHistogram(SPLIT_KEY);
+    flushTimeHisto = getMetricsRegistry().newHistogram(FLUSH_KEY);
   }
 
   @Override
@@ -130,6 +136,16 @@ public class MetricsRegionServerSourceImpl
     slowAppend.incr();
   }
 
+  @Override
+  public void updateSplitTime(long t) {
+    splitTimeHisto.add(t);
+  }
+
+  @Override
+  public void updateFlushTime(long t) {
+    flushTimeHisto.add(t);
+  }
+
   /**
    * Yes this is a get function that doesn't return anything.  Thanks Hadoop for breaking all
    * expectations of java programmers.  Instead of returning anything Hadoop metrics expects

http://git-wip-us.apache.org/repos/asf/hbase/blob/25bc762b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitRequest.java
----------------------------------------------------------------------
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 2c0a0a0..b395f08 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
@@ -27,6 +27,7 @@ import org.apache.hadoop.hbase.RemoteExceptionHandler;
 import org.apache.hadoop.hbase.master.TableLockManager.TableLock;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
+import org.apache.hadoop.hbase.util.Strings;
 import org.apache.hadoop.util.StringUtils;
 
 import com.google.common.base.Preconditions;
@@ -136,7 +137,7 @@ class SplitRequest implements Runnable {
             + StringUtils.formatTimeDiff(EnvironmentEdgeManager.currentTimeMillis(), startTime));
       }
       // Always log the split transaction journal
-      LOG.info("Split transaction journal:\n\t" + StringUtils.join("\n\t", st.getJournal()));
+      LOG.info("Split transaction journal:\n\t" + Strings.join("\n\t", st.getJournal()));
     }
   }