Pavel Moravec created QPID-5895:
-----------------------------------

             Summary: [C++ client] Allow consumer flow control based on #bytes
                 Key: QPID-5895
                 URL: https://issues.apache.org/jira/browse/QPID-5895
             Project: Qpid
          Issue Type: Improvement
          Components: C++ Client
    Affects Versions: 0.29
            Reporter: Pavel Moravec
            Assignee: Pavel Moravec
            Priority: Minor


Broker consumers should be able to control message flow based on message sizes, 
not only message count.

In scenarios, where the size of messages is variable - from several kB to tens 
of MB - the flow control based on message numbers is not sufficient. Using a 
small limit in messages has a big performance impact on throughtput when 
receiving small messages. On the other hand, when using a big limit, the 
throughput with small messages improves, but when the client receives suddenly 
many big messages, the big limit can cause the client memory issues. Therefore 
it is important to have a possibility to define the limit not only in messages 
but also in bytes, so that the application can handle both situations.

To fulfull the requirement both for AMQP 0-10 and AMQP 1.0, a new connection 
option "max-prefetch-bytes" should be used. With AMQP 0.10, this limit will be 
applied individually to every receiver, via the byte credit for subscriptions. 
With AMQP 1.0 it will be applied on the connection level, via max frame size 
and incoming session window AMQP parameters. The existing message based 
prefetch can remain unchanged at the receiver level and should work 
individually.





--
This message was sent by Atlassian JIRA
(v6.2#6252)

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

Reply via email to