lhotari commented on PR #24610:
URL: https://github.com/apache/pulsar/pull/24610#issuecomment-3160750677

   > In my understanding, the fundamental design principle of 
`ZeroQueueConsumer` (receiverQueueSize=0) is to be a **strictly non-buffering 
consumer** that:
   > 
   > * Operates in pure request-response mode:
   >   
   >   * Each receive() call should trigger exactly one network request to the 
broker
   >   * No messages should be retained client-side between receive() calls
   
   I don't think that this is a correct assumption. In Pulsar, the receive 
method returns individual messages in a batch.
   When the broker sends a batch message to the client, it should be buffered 
on the client side, also with ZeroQueueConsumer. 
   
   It's very much possible that you have faced bugs in the 
ZeroQueueConsumerImpl implementation. When checking at the implementation, it 
doesn't seem to make a distinction between batch messages. In Pulsar code, it's 
bit of a mess that in some cases the permits are about batch messages and some 
times there are about individual messages. I have created an issue about that 
in https://github.com/apache/pulsar/issues/23263 . It's possible that the 
information in the issue isn't accurate.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to