[rabbitmq-discuss] Per-Connection Flow Control -- The Case Against

Chip Salzenberg rev.chip at gmail.com
Fri May 25 09:07:17 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.  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.
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.

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.

More information about the rabbitmq-discuss mailing list