Tim Fox wrote:


Gordon Sim wrote:
Gordon Sim wrote:
Tim Fox wrote:
Perhaps the protocol needs to be extended?

It does seem that it could be useful to be able to move the prefetch window without having to acknowledge the message.

A further thought here: it would be possible to resize the prefetch winddow instead of moving it. i.e. if the prefetch is 100 and the application is in control of when acknowledgements will be sent, then after passing say the 80th message to the application, we could resize the window to 180. When the acknowledgement is sent, we can resize it back to 100.



I'm not sure how this would prevent the consumer from being overwhelmed.

If the prefetch window is resized to larger values as long as messages aren't acknowledged, then, assuming messages can be sent to the consumer faster then they can be processed by the consumer, they could catastrophically build up on the client.

You would only increase the size to compensate for messages processed by the application, but not yet acknowledged. So if the logical prefetch is x (i.e. the maximum unprocessed messages allowed), and the application has processed y messages but not acknowledged them then the actual prefetch as far as the broker is concerned would be x + y, though the number of unprocessed messages would still never go above x.

Reply via email to