[
https://issues.apache.org/jira/browse/KUDU-3758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18070471#comment-18070471
]
ASF subversion and git services commented on KUDU-3758:
-------------------------------------------------------
Commit 80c1b1dcb5d065f739fd74b0177f1f72e09733d9 in kudu's branch
refs/heads/master from Alexey Serbin
[ https://gitbox.apache.org/repos/asf?p=kudu.git;h=80c1b1dcb ]
KUDU-3758 avoid TransferPayload copying for CreateForCall{Request,Response}
Even if copying of Slice objects is shallow (the underlying memory isn't
copied, just the pointer and the size are copied), it makes sense to
avoid heap memory allocation and copying of Slice objects themselves.
The latter happens when there are more than two side-cars in per RPC, so
TransferPayload (boost::container::small_vector<Slice, 4> typedef)
starts allocating its elements on the heap.
Change-Id: Ia26e1a18fbb903a4df2ab7b20549fca3c2b06ad2
Reviewed-on: http://gerrit.cloudera.org:8080/24160
Reviewed-by: Michael Smith <[email protected]>
Reviewed-by: Abhishek Chennaka <[email protected]>
Tested-by: Alexey Serbin <[email protected]>
> QueueOutboundCall and QueueResponseForCall have extra copy
> ----------------------------------------------------------
>
> Key: KUDU-3758
> URL: https://issues.apache.org/jira/browse/KUDU-3758
> Project: Kudu
> Issue Type: Bug
> Components: rpc
> Affects Versions: 1.18.1
> Reporter: Michael Smith
> Assignee: Alexey Serbin
> Priority: Major
>
> In [https://github.com/apache/kudu/blob/1.18.1/src/kudu/rpc/connection.cc],
> QueueOutboundCall and QueueResponseForCall create a copy of tmp_slices when
> passing it to OutboundTransfer::CreateForCallResponse and
> OutboundTransfer::CreateForCallRequest. The number of slices is frequently
> small, so it's usually not a big cost, but we want to avoid any unnecessary
> work on RPC reactor threads.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)