diff options
author | Matthew Sackman <matthew@lshift.net> | 2009-06-11 11:52:38 +0100 |
---|---|---|
committer | Matthew Sackman <matthew@lshift.net> | 2009-06-11 11:52:38 +0100 |
commit | 7ff061f10ee33832fba9864313a0191b20bea7b0 (patch) | |
tree | 2c7c36fc36c8c218a9c3297a459e9bd1e812271c /src/rabbit_amqqueue_process.erl | |
parent | 9083b091bb69e9b8d1d7c523c235e5793acfd572 (diff) | |
download | rabbitmq-server-7ff061f10ee33832fba9864313a0191b20bea7b0.tar.gz |
And suddenly it works. Testing showed that removing the crude limit UNSENT_MESSAGE_LIMIT made performance better. This then made me wonder if the unblock and notify_sent messages weren't getting through fast enough, and sure enough, using pcast is much better there. Also, turning on dbg:tpl showed that the common path in mixed_queue was to call publish_delivered (i.e. the message has been delivered to a consumer, we just need to record this fact). Making sure everything in there for the non-persistent, non-durable but disk-only mode is asynchronous also helped performance massively.
Diffstat (limited to 'src/rabbit_amqqueue_process.erl')
-rw-r--r-- | src/rabbit_amqqueue_process.erl | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index 6ad4e4e6..d325346c 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -208,7 +208,7 @@ deliver_queue(Fun, FunAcc0, true -> deliver_queue(Fun, FunAcc1, State3) end end; - %% if IsMsgReady then (AckRequired and we've hit the limiter) + %% if IsMsgReady then we've hit the limiter false when IsMsgReady -> store_ch_record(C#cr{is_limit_active = true}), NewConsumers = block_consumers(ChPid, RoundRobinTail), @@ -245,8 +245,8 @@ attempt_immediate_delivery(none, _ChPid, Msg, State) -> (AckRequired, false, State2) -> {AckTag, State3} = if AckRequired -> - {ok, AckTag2, MS} = rabbit_mixed_queue:publish_delivered(Msg, - State2 #q.mixed_state), + {ok, AckTag2, MS} = rabbit_mixed_queue:publish_delivered( + Msg, State2 #q.mixed_state), {AckTag2, State2 #q { mixed_state = MS }}; true -> {noack, State2} |