<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Likewise, I appreciate the feedback.<br>
<br>
Can someone elaborate on the expected bottlenecks when using
transactions? From what I've mocked up so far, it looks like the
majority of the overhead is associated with tx.commit (no surprise
there) and that I can get much better performance by batching messages
within a single transaction. I also looked at running multiple
tx.commit operations concurrently in different channels in different
threads, but there doesn't actually appear to be any performance
benefit to doing so. Am I right to conclude that only a single
transaction is allowed at a time per connection?<br>
<br>
If so, this suggests queuing up messages client side and having a
single worker thread submit messages in batches. Does this sound
reasonable?<br>
<br>
Thanks,<br>
<br>
Jesse<br>
<br>
On 6/1/10 4:35 AM, Sylvain Hellegouarch wrote:
<blockquote
cite="mid:AANLkTinJ-qg3BDFHdLFEbaI1Qafb66x1Jkm4ONF6K0Qz@mail.gmail.com"
type="cite"><br>
<br>
<div class="gmail_quote">On Mon, May 31, 2010 at 10:30 PM, David
Wragg <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:david@rabbitmq.com">david@rabbitmq.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi
Sylvain,<br>
<div class="im"><br>
Sylvain Hellegouarch <<a moz-do-not-send="true"
href="mailto:sh@defuze.org">sh@defuze.org</a>> writes:<br>
> I'm curious, in the general case, what's the cost of using a
transaction?<br>
> Does it consume more resources? Roughly, what takes place within<br>
> RabbitMQ?<br>
<br>
</div>
There is indeed a cost associated with a transaction. One source of<br>
overhead is the fact that the AMQP tx.commit method is synchronous, and<br>
so involves a round-trip over the network to the server. Another is the<br>
fact that when the server commits a transaction, it must make sure that<br>
the relevant effects of a transaction have reached stable storage<br>
(e.g. that a persistent message that reaches a queue has been stored on<br>
disk). My colleagues might be able to list other costs.<br>
<br>
It's difficult to quantify these costs in general, but I think its fair<br>
to say that they have a significant impact compared with<br>
non-transactional uses of AMQP. The MulticastMain tool included with<br>
our Java client library has command line options that allow the impact<br>
to be measured in various scenarios.<br>
<div>
<div class="h5"><br>
David<br>
</div>
</div>
</blockquote>
<div><br>
Cheers for that feedback. Much appreciated. I will try to perform some
measurements and see both the server and client behave.<br>
<br>
<br>
</div>
</div>
-- <br>
- Sylvain<br>
<a moz-do-not-send="true" href="http://www.defuze.org">http://www.defuze.org</a><br>
<a moz-do-not-send="true" href="http://twitter.com/lawouach">http://twitter.com/lawouach</a><br>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
rabbitmq-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a>
<a class="moz-txt-link-freetext" href="http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss">http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a>
</pre>
</blockquote>
</body>
</html>