[rabbitmq-discuss] Stop producer and queue continue growing...

Matthew Sackman matthew at lshift.net
Fri Mar 12 12:30:18 GMT 2010


On Fri, Mar 12, 2010 at 09:17:22AM -0300, Gustavo Aquino wrote:
> If I have one persistent queue binding this Exchange where messages was
> posted and all of this messages are in buffer going to queue and server
> crash so I will lose all this buffered messages right ?

Correct. Transactions exist for a reason. Publishing is an async
activity and you as the producer have (almost) no idea whether it's even
hit a queue, let alone whether it's gone to disk. Furthermore, even if
it's gone to disk, you have no idea if it's been flushed from the disk
caches and so can really survive a powerfailure to the server.

If you use transactions, however, then by the time you get back the
commit_ok messages, you are *guaranteed* that the persistent messages
have been written to disk and flushed. Correspondingly, performance is
crippled, though the transaction handling in the new persister branch
(bug21673) is much better (anywhere up to 2 orders of magnitude,
depending on disks and filesystem tuning) than in the released versions
of Rabbit.

Matthew




More information about the rabbitmq-discuss mailing list