[rabbitmq-discuss] Per-Connection Flow Control -- The Case Against (Try #2)

Chip Salzenberg rev.chip at gmail.com
Fri May 25 18:57:41 BST 2012


The fundamental paradox of per-connection flow control is that it holds up 
the stop sign just when progress becomes possible.  It is backwards and 
unhelpful.  Consider:

1. A client is publishing 1.5K/sec to each of four exchanges, each of which 
has a queue.
2. There are no consumers.  Therefore the queue is growing.
3. RMQ does not stop this.  "Flow control" does not trigger.
4. The consumers appear to begin to tear down the backlog.
5. RMQ per-connection flow control suddenly decides that now there are some 
consumers, now it has a reason to throttle the sender.
6. If the consumers had not shown up, the producer would not have been 
blocked.

Therefore, it is only when the backlog can go DOWN that the broker decides 
to throttle the sender.  Not when the backlog was GROWING, but when it 
could be SHRINKING, that's when RMQ decides to stop accepting.

This is not acceptable.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120525/23703a6a/attachment.htm>


More information about the rabbitmq-discuss mailing list