blazingmq
blazingmq copied to clipboard
fix: enable early exit in RelayQE
Consider 10 consumers with 10 as maxUnconfirmed threshold; combined 100.
The delivery to individual consumer starts when number of unconfirmed
messages is less or equal to 8 (80% of 10);
The delivery to Proxy starts when the number is less or equal to 80 (80% of
100).
Consider uneven data consumption by consumers. 8 consumers have 9 pending
messages each, another one has 8 and the last one has 0. The total is 80
and that is enough for the Primary to send 20 messages. Upon receipt, the
first 8 consumers are already full, the other two get 2 and 10 messages
respectively. And Proxy is left with 8 undelivered messages.
Those messages should NOT go into the linear put-aside list.