On Feb 14, 2008, at 3:08 AM, David Sitsky wrote:

Rob and I did some performance enhancements with queues so that a Queue.send() call was decoupled from the dispatch processing. In the past, depending on the state of the consumers, a Queue.send() call could take a significant amount of time. We changed it so that a single thread was responsible for dispatching messages, which avoided a lot of lock contention. It also meant a Queue.send() returned as quickly as possible.

I imagine a similar change could be done for Topics, since from what I can tell, a Topic.send() call currently does its dispatch processing in the same call.

Cheers,
David

Jim Gomes wrote:
I am very interested in this set of changes.  I am currently
load/performance testing ActiveMQ, and am very surprised at the results. Anything that can be done to speed this area is a good thing. I have found
a dramatic drop in performance when adding even a single consumer,
especially to a Topic. The producer to the Topic is slowed down quite a
bit, which was a surprise to me.  I expected that the
existence/non-existence or performance of a consumer would have no impact on a producer, but that is not the case. A producer is directly impacted by
any consumers, especially idle consumers.  An idle Topic consumer can
actually cause a producer to block. As far as I have been able to determine
from browsing the documentation, this is by design.
I am looking forward to your efforts in this area.
Best Regards,
Jim

--
Cheers,
David

Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia Ph: +61 2 9280 0699 Web: http://www.nuix.com Fax: +61 2 9212 6902


Yes - Topics next!

cheers,

Rob

Reply via email to