[rabbitmq-discuss] Queue Bindings

Simon MacMullen simon at rabbitmq.com
Tue Apr 12 15:01:10 BST 2011

On 11/04/11 17:15, sunghyun lee wrote:
> We are currently in the process of creating an application which may
> result in thousands of bindings to a queue.  After some testing it was
> discovered that the amount of time to remove the bindings (roughly 6000)
> was pretty long compared to creating them.  They must be removed as we
> need to queue to be set to auto delete for the implementation to be viable.

Yes, deleting queues with many bindings is currently slow, since the 
queue and the bindings are deleted in a single Mnesia transaction, and 
Mnesia does not seem to like transactions to get too big.

> What problems will this cause? When we were investigating we found the
> broker would wait to return binding information if there was a queue in
> the process of being removed.

That's odd - I just tested this with rabbitmqctl list_bindings and I 
don't see it block while that's happening. And it shouldn't.

> Will this process block anything other
> processes?  Are they any other issues we should be aware of when dealing
> with this many bindings?

Apart from this slow deleting thing, no. You can sort of work round it 
by deleting bindings first, that's much faster. But not if it's an 
autodelete queue :(

Cheers, Simon
Simon MacMullen
Staff Engineer, RabbitMQ
SpringSource, a division of VMware

More information about the rabbitmq-discuss mailing list