On Thu, Nov 16, 2017 at 6:10 AM, Martyn Taylor <mtay...@redhat.com> wrote:
> Clebert,
>
> We need to distinguish between streamed messages and large messages.  For
> the basic large message case, i.e. a single large message sent to the
> broker.  I agree with what you have here.
>
> Streamed large messages (i.e. messages that are received in chunks) allows
> us to store the message without having to keep the whole thing in broker
> memory.  This get's complicated with cross protocol as:
>
> 1. Not all protocols support streamed messages.
Exactly.. right now in Stomp.. we read the whole body in memory before
sending. Just like what is in master now for AMQP.

> 2. Cross protocol may require message conversions
Just like in Stomp... we read the whole message in memory

>
> Both 1. and 2. would likely mean that we'd likely need to read the whole
> message into memory and I'm not sure we really want to do this?  It defeats
> one of the main purposes of streamed messages.  (The others being saving
> client memory and reducing the amount of data to resend on connection drop.)

Most times the user will have no control over this. Say you sent a
100K + 1 byte over the configured limit, String messages in Core.  the
client will stream it as it being large.


>
> For 1. I wonder whether or not we want to support this at all, or if we do,
> make it configurable.
> For 2. Is it possible to transform the message via a stream?  If not then
> perhaps we treat this as a raw bytes message?

It is possible as I said.. I think it's a separate task. I may try to
do it within this scope.

Reply via email to