[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 Wragg
Staff Engineer, RabbitMQ
SpringSource, a division of VMware

More information about the rabbitmq-discuss mailing list