hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From apurt...@apache.org
Subject [1/3] hbase git commit: HBASE-12496 A blockedRequestsCount metric (Yi Deng)
Date Tue, 18 Nov 2014 22:35:58 GMT
Repository: hbase
Updated Branches:
  refs/heads/0.98 d019e37fb -> ae0ecedab
  refs/heads/branch-1 d3c9425c9 -> eb34c956a
  refs/heads/master 69f685e7c -> 22f29ca8e


HBASE-12496 A blockedRequestsCount metric (Yi Deng)


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

Branch: refs/heads/master
Commit: 22f29ca8efe910540f2912ec35fe307daf5eed0a
Parents: 69f685e
Author: Andrew Purtell <apurtell@apache.org>
Authored: Tue Nov 18 14:14:31 2014 -0800
Committer: Andrew Purtell <apurtell@apache.org>
Committed: Tue Nov 18 14:14:31 2014 -0800

----------------------------------------------------------------------
 .../hbase/regionserver/MetricsRegionServerSource.java  |  4 ++++
 .../hbase/regionserver/MetricsRegionServerWrapper.java |  5 +++++
 .../regionserver/MetricsRegionServerSourceImpl.java    |  3 +++
 .../org/apache/hadoop/hbase/regionserver/HRegion.java  | 13 ++++++++++++-
 .../regionserver/MetricsRegionServerWrapperImpl.java   |  9 +++++++++
 .../regionserver/MetricsRegionServerWrapperStub.java   |  5 +++++
 6 files changed, 38 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/22f29ca8/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
index 7ac2501..b27696c 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
@@ -252,6 +252,10 @@ public interface MetricsRegionServerSource extends BaseSource {
   String HEDGED_READ_WINS_DESC =
       "The number of times we started a hedged read and a hedged read won";
 
+  String BLOCKED_REQUESTS_COUNT = "blockedRequestCount";
+  String BLOCKED_REQUESTS_COUNT_DESC = "The number of blocked requests because of memstore
size is "
+      + "larger than blockingMemStoreSize";
+
   String SPLIT_KEY = "splitTime";
   String FLUSH_KEY = "flushTime";
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/22f29ca8/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
index e0b5e1b..0f62dc6 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
@@ -256,4 +256,9 @@ public interface MetricsRegionServerWrapper {
    * @return Count of times a hedged read beat out the primary read.
    */
   public long getHedgedReadWins();
+
+  /**
+   * @return Count of requests blocked because the memstore size is larger than blockingMemStoreSize
+   */
+  public long getBlockedRequestsCount();
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/22f29ca8/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
index d3414e2..4cd83382 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
@@ -237,6 +237,9 @@ public class MetricsRegionServerSourceImpl
           .addCounter(Interns.info(HEDGED_READ_WINS, HEDGED_READ_WINS_DESC),
               rsWrap.getHedgedReadWins())
 
+          .addCounter(Interns.info(BLOCKED_REQUESTS_COUNT, BLOCKED_REQUESTS_COUNT_DESC),
+            rsWrap.getBlockedRequestsCount())
+
           .tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),
               rsWrap.getZookeeperQuorum())
           .tag(Interns.info(SERVER_NAME_NAME, SERVER_NAME_DESC), rsWrap.getServerName())

http://git-wip-us.apache.org/repos/asf/hbase/blob/22f29ca8/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
----------------------------------------------------------------------
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 d6a0731..1615a25 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
@@ -287,6 +287,16 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver
{ //
   final Counter readRequestsCount = new Counter();
   final Counter writeRequestsCount = new Counter();
 
+  // Number of requests blocked by memstore size.
+  private final Counter blockedRequestsCount = new Counter();
+
+  /**
+   * @return the number of blocked requests count.
+   */
+  public long getBlockedRequestsCount() {
+    return this.blockedRequestsCount.get();
+  }
+
   // Compaction counters
   final AtomicLong compactionsFinished = new AtomicLong(0L);
   final AtomicLong compactionNumFilesCompacted = new AtomicLong(0L);
@@ -3121,6 +3131,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver
{ //
     if (this.getRegionInfo().isMetaRegion()) return;
 
     if (this.memstoreSize.get() > this.blockingMemStoreSize) {
+      blockedRequestsCount.increment();
       requestFlush();
       throw new RegionTooBusyException("Above memstore limit, " +
           "regionName=" + (this.getRegionInfo() == null ? "unknown" :
@@ -5769,7 +5780,7 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver
{ //
   public static final long FIXED_OVERHEAD = ClassSize.align(
       ClassSize.OBJECT +
       ClassSize.ARRAY +
-      41 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +
+      42 * ClassSize.REFERENCE + 2 * Bytes.SIZEOF_INT +
       (12 * Bytes.SIZEOF_LONG) +
       4 * Bytes.SIZEOF_BOOLEAN);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/22f29ca8/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
index 52eafb9..d8ad6fe 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
@@ -76,6 +76,7 @@ class MetricsRegionServerWrapperImpl
   private volatile long flushedCellsSize = 0;
   private volatile long compactedCellsSize = 0;
   private volatile long majorCompactedCellsSize = 0;
+  private volatile long blockedRequestsCount = 0L;
 
   private CacheStats cacheStats;
   private ScheduledExecutorService executor;
@@ -441,6 +442,7 @@ class MetricsRegionServerWrapperImpl
       long tempFlushedCellsSize = 0;
       long tempCompactedCellsSize = 0;
       long tempMajorCompactedCellsSize = 0;
+      long tempBlockedRequestsCount = 0L;
 
       for (HRegion r : regionServer.getOnlineRegionsLocalContext()) {
         tempNumMutationsWithoutWAL += r.numMutationsWithoutWAL.get();
@@ -449,6 +451,7 @@ class MetricsRegionServerWrapperImpl
         tempWriteRequestsCount += r.writeRequestsCount.get();
         tempCheckAndMutateChecksFailed += r.checkAndMutateChecksFailed.get();
         tempCheckAndMutateChecksPassed += r.checkAndMutateChecksPassed.get();
+        tempBlockedRequestsCount += r.getBlockedRequestsCount();
         tempNumStores += r.stores.size();
         for (Store store : r.stores.values()) {
           tempNumStoreFiles += store.getStorefilesCount();
@@ -515,6 +518,7 @@ class MetricsRegionServerWrapperImpl
       flushedCellsSize = tempFlushedCellsSize;
       compactedCellsSize = tempCompactedCellsSize;
       majorCompactedCellsSize = tempMajorCompactedCellsSize;
+      blockedRequestsCount = tempBlockedRequestsCount;
     }
   }
 
@@ -527,4 +531,9 @@ class MetricsRegionServerWrapperImpl
   public long getHedgedReadWins() {
     return this.dfsHedgedReadMetrics == null? 0: this.dfsHedgedReadMetrics.getHedgedReadWins();
   }
+
+  @Override
+  public long getBlockedRequestsCount() {
+    return blockedRequestsCount;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/22f29ca8/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
index 58c61c6..e936789 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperStub.java
@@ -250,4 +250,9 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
   public long getHedgedReadWins() {
     return 10;
   }
+
+  @Override
+  public long getBlockedRequestsCount() {
+    return 0;
+  }
 }


Mime
View raw message