hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hadoop QA (Jira)" <j...@apache.org>
Subject [jira] [Commented] (HDDS-2169) Avoid buffer copies while submitting client requests in Ratis
Date Fri, 27 Sep 2019 05:31:00 GMT

    [ https://issues.apache.org/jira/browse/HDDS-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16939138#comment-16939138
] 

Hadoop QA commented on HDDS-2169:
---------------------------------

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m  0s{color} | {color:blue}
Docker mode activated. {color} |
| {color:red}-1{color} | {color:red} patch {color} | {color:red}  0m 11s{color} | {color:red}
https://github.com/apache/hadoop/pull/1517 does not apply to trunk. Rebase required? Wrong
Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} |
\\
\\
|| Subsystem || Report/Notes ||
| GITHUB PR | https://github.com/apache/hadoop/pull/1517 |
| JIRA Issue | HDDS-2169 |
| Console output | https://builds.apache.org/job/hadoop-multibranch/job/PR-1517/2/console
|
| versions | git=2.17.1 |
| Powered by | Apache Yetus 0.10.0 http://yetus.apache.org |


This message was automatically generated.



> Avoid buffer copies while submitting client requests in Ratis
> -------------------------------------------------------------
>
>                 Key: HDDS-2169
>                 URL: https://issues.apache.org/jira/browse/HDDS-2169
>             Project: Hadoop Distributed Data Store
>          Issue Type: Improvement
>            Reporter: Shashikant Banerjee
>            Assignee: Tsz-wo Sze
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: o2169_20190923.patch
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, while sending write requests to Ratis from ozone, a protobuf object containing
data encoded  and then resultant protobuf is again converted to a byteString which internally
does a copy of the buffer embedded inside the protobuf again so that it can be submitted over
to Ratis client. Again, while sending the appendRequest as well while building up the appendRequestProto,
it might be again copying the data. The idea here is to provide client so pass the raw data(stateMachine
data) separately to ratis client without copying overhead. 
>  
> {code:java}
> private CompletableFuture<RaftClientReply> sendRequestAsync(
>     ContainerCommandRequestProto request) {
>   try (Scope scope = GlobalTracer.get()
>       .buildSpan("XceiverClientRatis." + request.getCmdType().name())
>       .startActive(true)) {
>     ContainerCommandRequestProto finalPayload =
>         ContainerCommandRequestProto.newBuilder(request)
>             .setTraceID(TracingUtil.exportCurrentSpan())
>             .build();
>     boolean isReadOnlyRequest = HddsUtils.isReadOnly(finalPayload);
> //  finalPayload already has the byteString data embedded. 
>     ByteString byteString = finalPayload.toByteString(); -----> It involves a copy
again.
>     if (LOG.isDebugEnabled()) {
>       LOG.debug("sendCommandAsync {} {}", isReadOnlyRequest,
>           sanitizeForDebug(finalPayload));
>     }
>     return isReadOnlyRequest ?
>         getClient().sendReadOnlyAsync(() -> byteString) :
>         getClient().sendAsync(() -> byteString);
>   }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org


Mime
View raw message