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

ASF subversion and git services commented on PROTON-1672:
---------------------------------------------------------

Commit ec5547152fed5a74afbe11bbb33541a2cb149fa4 in qpid-proton-j's branch 
refs/heads/master from [~tabish121]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton-j.git;h=ec55471 ]

PROTON-1672 Handle multi-frame transfer payloads more efficiently

Replace reallocation and consolidation of transfer payloads when
multiple framed transfers are inbound.  Creates a
CompositeReadableBuffer that can be used to house the assembled payload
for use in the decoder. The decoder implementation refactored to handle
ReadableBuffer as the source of bytes as well as ByteBuffer.  Adds
no-copy method variants to the Sender and Receiver API such that clients
or servers can process inbound and outbound deliveries without copying
the payloads when it is known to be safe not to copy.

Adds tests and jacoco reports to validate test coverage.

> Large deliveries comprising many transfers are handled inefficiently
> --------------------------------------------------------------------
>
>                 Key: PROTON-1672
>                 URL: https://issues.apache.org/jira/browse/PROTON-1672
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-j
>    Affects Versions: proton-j-0.23.0
>            Reporter: Keith Wall
>            Assignee: Timothy Bish
>            Priority: Major
>         Attachments: JProfiler_PROTON-1672.tiff
>
>
> Running performance tests using Qpid Broker J and Qpid JMS Client (0.26.0) 
> shows that receipt of large messages is very slow in comparison with the send 
> of the same message.   For instance, sending 300MiB bytes message takes 5 
> seconds on my laptop.  The receipt takes 97 seconds.
> Instrumenting the client stack shows an obvious hot-spot in Proton-J.  
> {{org.apache.qpid.proton.engine.impl.TransportSession#handleTransfer}} 
> re-allocates/array copies the entire delivery buffer for ever transfer that 
> comprises it.  This leads to a non-linear loss of performance.   The stack 
> include Proton-J 0.23.0, but is looks like this code is unchanged.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to