You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2014/05/13 05:05:45 UTC
svn commit: r1594117 - in /hbase/trunk:
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/
hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/
hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/
Author: liangxie
Date: Tue May 13 03:05:45 2014
New Revision: 1594117
URL: http://svn.apache.org/r1594117
Log:
HBASE-10561 Forward port: HBASE-10212 New rpc metric: number of active handler
Modified:
hbase/trunk/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java
Modified: hbase/trunk/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java?rev=1594117&r1=1594116&r2=1594117&view=diff
==============================================================================
--- hbase/trunk/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java (original)
+++ hbase/trunk/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java Tue May 13 03:05:45 2014
@@ -25,4 +25,5 @@ public interface MetricsHBaseServerWrapp
int getReplicationQueueLength();
int getPriorityQueueLength();
int getNumOpenConnections();
+ int getActiveRpcHandlerCount();
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java?rev=1594117&r1=1594116&r2=1594117&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java Tue May 13 03:05:45 2014
@@ -89,4 +89,9 @@ public class FifoRpcScheduler implements
public int getReplicationQueueLength() {
return 0;
}
+
+ @Override
+ public int getActiveRpcHandlerCount() {
+ return executor.getActiveCount();
+ }
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java?rev=1594117&r1=1594116&r2=1594117&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java Tue May 13 03:05:45 2014
@@ -37,8 +37,7 @@ public class MetricsHBaseServerWrapperIm
@Override
public int getGeneralQueueLength() {
- if (this.server == null
- || this.server.getScheduler() == null) {
+ if (this.server == null || this.server.getScheduler() == null) {
return 0;
}
return server.getScheduler().getGeneralQueueLength();
@@ -46,8 +45,7 @@ public class MetricsHBaseServerWrapperIm
@Override
public int getReplicationQueueLength() {
- if (this.server == null
- || this.server.getScheduler() == null) {
+ if (this.server == null || this.server.getScheduler() == null) {
return 0;
}
return server.getScheduler().getReplicationQueueLength();
@@ -55,8 +53,7 @@ public class MetricsHBaseServerWrapperIm
@Override
public int getPriorityQueueLength() {
- if (this.server == null
- || this.server.getScheduler() == null) {
+ if (this.server == null || this.server.getScheduler() == null) {
return 0;
}
return server.getScheduler().getPriorityQueueLength();
@@ -69,4 +66,12 @@ public class MetricsHBaseServerWrapperIm
}
return server.connectionList.size();
}
+
+ @Override
+ public int getActiveRpcHandlerCount() {
+ if (this.server == null || this.server.getScheduler() == null) {
+ return 0;
+ }
+ return server.getScheduler().getActiveRpcHandlerCount();
+ }
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java?rev=1594117&r1=1594116&r2=1594117&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcScheduler.java Tue May 13 03:05:45 2014
@@ -67,4 +67,7 @@ public interface RpcScheduler {
/** Retrieves length of the replication queue for metrics. */
int getReplicationQueueLength();
+
+ /** Retrieves the number of active handler. */
+ int getActiveRpcHandlerCount();
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java?rev=1594117&r1=1594116&r2=1594117&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.java Tue May 13 03:05:45 2014
@@ -21,6 +21,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -90,7 +91,7 @@ public class SimpleRpcScheduler implemen
final BlockingQueue<CallRunner> replicationQueue;
private volatile boolean running = false;
private final List<Thread> handlers = Lists.newArrayList();
-
+ private AtomicInteger activeHandlerCount = new AtomicInteger(0);
/** What level a high priority call is at. */
private final int highPriorityLevel;
@@ -204,13 +205,23 @@ public class SimpleRpcScheduler implemen
return replicationQueue == null ? 0 : replicationQueue.size();
}
+ @Override
+ public int getActiveRpcHandlerCount() {
+ return 0;
+ }
+
private void consumerLoop(BlockingQueue<CallRunner> myQueue) {
boolean interrupted = false;
try {
while (running) {
try {
CallRunner task = myQueue.take();
- task.run();
+ try {
+ activeHandlerCount.incrementAndGet();
+ task.run();
+ } finally {
+ activeHandlerCount.decrementAndGet();
+ }
} catch (InterruptedException e) {
interrupted = true;
}
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java?rev=1594117&r1=1594116&r2=1594117&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.java Tue May 13 03:05:45 2014
@@ -43,4 +43,9 @@ public class MetricsHBaseServerWrapperSt
public int getNumOpenConnections() {
return 105;
}
+
+ @Override
+ public int getActiveRpcHandlerCount() {
+ return 100;
+ }
}