[rabbitmq-discuss] detecting publish failure across restart

David Wragg david at rabbitmq.com
Mon May 31 21:30:42 BST 2010


Hi Sylvain,

Sylvain Hellegouarch <sh at defuze.org> writes:
> I'm curious, in the general case, what's the cost of using a transaction?
> Does it consume more resources? Roughly, what takes place within
> RabbitMQ?

There is indeed a cost associated with a transaction.  One source of
overhead is the fact that the AMQP tx.commit method is synchronous, and
so involves a round-trip over the network to the server.  Another is the
fact that when the server commits a transaction, it must make sure that
the relevant effects of a transaction have reached stable storage
(e.g. that a persistent message that reaches a queue has been stored on
disk).  My colleagues might be able to list other costs.

It's difficult to quantify these costs in general, but I think its fair
to say that they have a significant impact compared with
non-transactional uses of AMQP.  The MulticastMain tool included with
our Java client library has command line options that allow the impact
to be measured in various scenarios.

David

-- 
David Wragg
Staff Engineer, RabbitMQ
SpringSource, a division of VMware



More information about the rabbitmq-discuss mailing list