From 83624ee6971e66c21412f016e874cfcbfcc9313c Mon Sep 17 00:00:00 2001 From: zhanghaobo Date: Mon, 9 Dec 2024 15:41:06 +0800 Subject: [PATCH] HADOOP-19361. RPC DeferredMetrics bugfix. --- .../java/org/apache/hadoop/ipc/ProtobufRpcEngine.java | 10 +++++----- .../java/org/apache/hadoop/ipc/ProtobufRpcEngine2.java | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java index df0f734d080166..1e513271a844c2 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java @@ -214,7 +214,7 @@ public Message invoke(Object proxy, final Method method, Object[] args) throws ServiceException { long startTime = 0; if (LOG.isDebugEnabled()) { - startTime = Time.now(); + startTime = Time.monotonicNow(); } if (args.length != 2) { // RpcController + Message @@ -267,7 +267,7 @@ public Message invoke(Object proxy, final Method method, Object[] args) } if (LOG.isDebugEnabled()) { - long callTime = Time.now() - startTime; + long callTime = Time.monotonicNow() - startTime; LOG.debug("Call: " + method.getName() + " took " + callTime + "ms"); } @@ -399,19 +399,19 @@ public ProtobufRpcEngineCallbackImpl() { this.server = CURRENT_CALL_INFO.get().getServer(); this.call = Server.getCurCall().get(); this.methodName = CURRENT_CALL_INFO.get().getMethodName(); - this.setupTime = Time.now(); + this.setupTime = Time.monotonicNow(); } @Override public void setResponse(Message message) { - long processingTime = Time.now() - setupTime; + long processingTime = Time.monotonicNow() - setupTime; call.setDeferredResponse(RpcWritable.wrap(message)); server.updateDeferredMetrics(methodName, processingTime); } @Override public void error(Throwable t) { - long processingTime = Time.now() - setupTime; + long processingTime = Time.monotonicNow() - setupTime; String detailedMetricsName = t.getClass().getSimpleName(); server.updateDeferredMetrics(detailedMetricsName, processingTime); call.setDeferredError(t); diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine2.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine2.java index bedecc8851d6ae..2d0f34c246288f 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine2.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine2.java @@ -222,7 +222,7 @@ public Message invoke(Object proxy, final Method method, Object[] args) throws ServiceException { long startTime = 0; if (LOG.isDebugEnabled()) { - startTime = Time.now(); + startTime = Time.monotonicNow(); } if (args.length != 2) { // RpcController + Message @@ -277,7 +277,7 @@ public Message invoke(Object proxy, final Method method, Object[] args) } if (LOG.isDebugEnabled()) { - long callTime = Time.now() - startTime; + long callTime = Time.monotonicNow() - startTime; LOG.debug("Call: " + method.getName() + " took " + callTime + "ms"); } @@ -431,19 +431,19 @@ static class ProtobufRpcEngineCallbackImpl this.server = CURRENT_CALL_INFO.get().getServer(); this.call = Server.getCurCall().get(); this.methodName = CURRENT_CALL_INFO.get().getMethodName(); - this.setupTime = Time.now(); + this.setupTime = Time.monotonicNow(); } @Override public void setResponse(Message message) { - long processingTime = Time.now() - setupTime; + long processingTime = Time.monotonicNow() - setupTime; call.setDeferredResponse(RpcWritable.wrap(message)); server.updateDeferredMetrics(methodName, processingTime); } @Override public void error(Throwable t) { - long processingTime = Time.now() - setupTime; + long processingTime = Time.monotonicNow() - setupTime; String detailedMetricsName = t.getClass().getSimpleName(); server.updateDeferredMetrics(detailedMetricsName, processingTime); call.setDeferredError(t);