[rabbitmq-discuss] 2 nodes, 4k queues

Alexis Richardson alexis.richardson at gmail.com
Fri Nov 20 22:24:19 GMT 2009


On Fri, Nov 20, 2009 at 10:05 PM, JD Conley <jdc at hive7.com> wrote:
>> Yeah, our topic matching is inefficient - it's O(n) where n is the
>> number of bindings. We do have a bug open to improve this. You didn't
>> mention the number of bindings that you have, but if you're up to 20k
>> bindings or so then I wouldn't be surprised if this is the performance
>> you're getting. In general, until we fix this bug (it should become
>> O(log₂(n)) because really it should just be walking a tree), we'd
>> probably recommend to use a direct or fanout exchange and then drop
>> inappropriate messages in the consumer. I know this isn't ideal, but it
>> might solve the problems you're seeing.
>
> Is it O(n) relative to the number of bindings per exchange, or per server node, or per cluster? I'm researching the overhead of a lot of bindings as well... Does the lookup overhead increase in a cluster, or is the 'route table' replicated to all nodes so it's always an in-memory lookup?

An exchange routing table is shared across nodes in a cluster.  This
is achieved by replication across all nodes in the cluster.  Lookup is
therefore in-memory and takes O(n) where n the number of bindings in
that exchange.

alexis





> -JD
>
>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>




More information about the rabbitmq-discuss mailing list