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 2013/06/25 20:51:51 UTC

svn commit: r1496586 - in /hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc: HBaseRPC.java ProfilingData.java

Author: liyin
Date: Tue Jun 25 18:51:51 2013
New Revision: 1496586

URL: http://svn.apache.org/r1496586
Log:
[0.89-fb] [HBASE-8227] Add the amoutn of time spent in the rpc queue to the profiling data

Author: aaiyer

Summary:
Add the amount of time spent in the RPC queue to the profiling data, so we can
keep track of networking and queueing delays. Will be useful for understanding
the amplification in errors between hbase and appserver.

Test Plan: deploy on shadow

Reviewers: liyintang, rshroff

Reviewed By: rshroff

CC: hbase-eng@

Differential Revision: https://phabricator.fb.com/D861771

Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/ProfilingData.java

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java?rev=1496586&r1=1496585&r2=1496586&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java Tue Jun 25 18:51:51 2013
@@ -567,10 +567,6 @@ public class HBaseRPC {
               "cause is a version mismatch between client and server.");
         }
         Call callInfo = HRegionServer.callContext.get();
-        ProfilingData pData = callInfo == null ? null : callInfo.getProfilingData();
-        if (pData != null) {
-          pData.addString(ProfilingData.RPC_METHOD_NAME, call.getMethodName ());
-        }
         if (verbose) trace("Call: " + call);
         Method method = implementation.getMethod(call.getMethodName(),
                 call.getParameterClasses());
@@ -579,6 +575,11 @@ public class HBaseRPC {
         status.resume("Servicing call");
         startTime = System.currentTimeMillis();
         qTime = (int) (startTime - receivedTime);
+        ProfilingData pData = callInfo == null ? null : callInfo.getProfilingData();
+        if (pData != null) {
+          pData.addString(ProfilingData.RPC_METHOD_NAME, call.getMethodName ());
+          pData.addLong(ProfilingData.QUEUED_TIME_MS, qTime);
+        }
         Object value = method.invoke(instance, call.getParameters());
         int processingTime = (int) (System.currentTimeMillis() - startTime);
         if (LOG.isTraceEnabled()) {

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/ProfilingData.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/ProfilingData.java?rev=1496586&r1=1496585&r2=1496586&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/ProfilingData.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/ipc/ProfilingData.java Tue Jun 25 18:51:51 2013
@@ -26,6 +26,7 @@ public class ProfilingData implements Wr
    *  total amount of time spent server-side by the RPC
    */
   public static final String TOTAL_SERVER_TIME_MS = "total_server_time.ms";
+  public static final String QUEUED_TIME_MS = "queued_time.ms";
   
   /**
    *  client reported network latency