[
https://issues.apache.org/jira/browse/HADOOP-18533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
xinqiu.hu updated HADOOP-18533:
-------------------------------
Description:
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. And avoid allocating 1024 bytes of ResponseBuffer each time a
request is sent.
was:
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. And avoid allocating 1024
bytes of ResponseBuffer each time a request is sent.
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.
> 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. And avoid allocating 1024 bytes of ResponseBuffer
> each time a request is sent.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]