[
https://issues.apache.org/jira/browse/HADOOP-18533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17636158#comment-17636158
]
ASF GitHub Bot commented on HADOOP-18533:
-----------------------------------------
huxinqiu commented on code in PR #5151:
URL: https://github.com/apache/hadoop/pull/5151#discussion_r1027073201
##########
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Client.java:
##########
@@ -392,7 +394,7 @@ private class Connection extends Thread {
private IOException closeException; // close reason
private final Thread rpcRequestThread;
- private final SynchronousQueue<Pair<Call, ResponseBuffer>> rpcRequestQueue
=
+ private final SynchronousQueue<Pair<Call, Object>> rpcRequestQueue =
Review Comment:
Because for WritableRpcEngine, there is no easy way to calculate the size of
request parameters. ResponseBuffer is a better choice, so Object represents
ResponseBuffer or RpcProtobufRequestWithHeader.
> RPC Client performance improvement
> ----------------------------------
>
> Key: HADOOP-18533
> URL: https://issues.apache.org/jira/browse/HADOOP-18533
> Project: Hadoop Common
> Issue Type: Improvement
> Components: rpc-server
> Reporter: xinqiu.hu
> Priority: Minor
> Labels: pull-request-available
>
> The current implementation copies the rpcRequest and header to a
> ByteArrayOutputStream in order to calculate the total length of the sent
> request, and then writes it to the socket buffer.
> But if the rpc engine is ProtobufRpcEngine2, we can pre-calculate the
> request size, and then send the request directly to the socket buffer,
> reducing a memory copy.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]