[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