summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2012-10-31 12:39:54 +0000
committerMatthias Radestock <matthias@rabbitmq.com>2012-10-31 12:39:54 +0000
commit684c55e36acc489030c1cb06489c69237f4363c4 (patch)
tree8f38b2b9b358808937193c221b084331898041c5
parentd8394776219dde818155f7359297ff3896d27b92 (diff)
downloadrabbitmq-server-684c55e36acc489030c1cb06489c69237f4363c4.tar.gz
HA optimisation: don't broadcast 'drop' when nothing has been dropped
-rw-r--r--src/rabbit_mirror_queue_master.erl5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl
index 6a7a28f2..df733546 100644
--- a/src/rabbit_mirror_queue_master.erl
+++ b/src/rabbit_mirror_queue_master.erl
@@ -229,7 +229,10 @@ dropwhile(Pred, AckRequired,
{Next, Msgs, BQS1} = BQ:dropwhile(Pred, AckRequired, BQS),
Len1 = BQ:len(BQS1),
Dropped = Len - Len1,
- ok = gm:broadcast(GM, {drop, Len1, Dropped, AckRequired}),
+ case Dropped of
+ 0 -> ok;
+ _ -> ok = gm:broadcast(GM, {drop, Len1, Dropped, AckRequired})
+ end,
SetDelivered1 = lists:max([0, SetDelivered - Dropped]),
{Next, Msgs, State #state { backing_queue_state = BQS1,
set_delivered = SetDelivered1 } }.