Hi Gordon,
This is slightly concerning. This seems a bit of a catch 22: for optimum performance it seems best to acknowledge fairly infrequently.

Re "A further question is whether you need acknowledgements at all? " surely if I don't acknowledge at all then the messages just remain on the broker and it potentially attempts to resend them. Certainly if I comment out the session.acknowledge(); line in my ItemConsumer the memory usage goes up and eventually I go into swap.

Is there any way to set things up to say that I'm not going to acknowledge receipt? Is your last sentence suggesting that I could configure things in such a way?? (I can tolerate some message loss in the cases where I'm trying to eke maximum throughput)

As an aside I'm still pretty sure that one of my colleagues who's been using qpid::client had similar issues and he sorted it by fiddling with the flow control parameters, but I've not seen his code so he might have fiddled with other things too.



I'd still really *love* to know how RedHat configured the MRG whitepaper tests (preferably in minute detail :-) are you aware of anyone who has *actually* reproduced the figures of 380,000 256 octet messages in and out on an 8 core box. I know my laptop has only two cores but 17,000 is a *long* way off 380,000

I don't think I'm completely stupid, but the examples I attached in the earlier post are the fastest I've got Qpid to go. Am I missing something? Can you see anything obviously wrong with my code (or queue config)

Cheers,
Frase


Gordon Sim wrote:
On 09/25/2011 07:43 PM, Fraser Adams wrote:
This is really freaky why does the consumer performance drop off
dramatically when the ring queue is full. Is it a flow control thing?

No it is not a flow control related issue (that is controlled through the receivers capacity by the way).

When a consumer acknowledges a message on a ring queue, the broker first checks to see whether the messages is still enqueued or whether it has already been displaced by a newer message.

That check is far from optimal, particularly in the case where the messages has been displaced already. I suspect this is what you are seeing.

One suggestion is to acknowledge messages more frequently. The theory here is that this reduces the chance that you acknowledge a message that has already been removed from the queue. Whether in practice this will make a significant difference, I can't say for sure.

A further question is whether you need acknowledgements at all?

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]




---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to