[rabbitmq-discuss] Question on Rabbit's Message Copying

Tony Garnock-Jones tonygarnockjones+rabbitmq at gmail.com
Tue Dec 4 14:50:50 GMT 2012

Hi Ashwin,

Messages are not explicitly copied - Erlang's message-passing is used to
distribute "copies" of each AMQP message to the queue processes it is
destined for. Since Erlang terms are immutable, the underlying
memory-management system is free to use whichever strategy works best.
Sometimes that will be many pointers to a shared value; other times it will
be separate copies. I don't know which strategy Erlang chooses at present:
you will have to ask the Erlang mailing list or do some experiments of your
own. Hope this helps!


On 4 December 2012 01:40, Ashwin Raghav <ashwinraghav at gmail.com> wrote:

> Hi tony,
> I had a questions about how(whether) rabbit internally copies a message
> from an exchange to a queue.
> I have read the documentation that says "Exchanges copy messages to queues
> using rules called bindings".
> I was wondering whether this is a logical copy or an actual full-on copy.
> I ask because I was posed with a question recently on a project that I work
> on. Why are you physically copying the same message to so many queues?
> Would something like a reference count implementation with just a single
> copy of the message not suffice?
> Kindly clarify.
> --
> Regards,
> Ashwin Raghav Mohan Ganesh
> --
> Tony Garnock-Jones
> tonygarnockjones at gmail.com
> http://homepages.kcbbs.gen.nz/tonyg/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20121204/7ded03e0/attachment.htm>

More information about the rabbitmq-discuss mailing list