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

On Tue, Feb 12, 2008 at 10:39 PM, Rob Davies <[EMAIL PROTECTED]> wrote:

> Hi David,
>
> I think this is a valid patch. What I'm looking at at the moment is
> only adding messages to a QueueSubscriber's pending list which it can
> dispatch - rather than lots checking to see if they are able to
> dispatch it.
>
> cheers,
>
> Rob
> On Feb 13, 2008, at 6:22 AM, David Sitsky wrote:
>
> > Hi Rob,
> >
> > I changed the condition for when to check the "trash" list to:
> >
> >               if (count > 0 || trash.size() > 1000)
> >
> > this gave much better performance for a range of application data.
> > I've re-attached the patch again to avoid confusion.  As I said
> > before - the broker consumes far less CPU now than before, so I am
> > able to add a lot more consumers now.
> >
> > Any thoughts?  Are there better ways of implementing this?
> >
> > Cheers,
> > David
>

Reply via email to