[rabbitmq-discuss] topix

Martin Sustrik sustrik at 250bpm.com
Mon Feb 22 11:46:33 GMT 2010

Hi David,

 > One thing that would help us to make these decisions as to the best 
approach would
 > be some feedback on how people are using topic exchanges in the real 
world: e.g.
 > if it turns out that basically all bindings are short then the space 
explosion isn't really an issue. If bindings are created rarely, or 
typically in big blocks,
 > then we could optimise for that. There's not going to be a 
universally "best" solution, so while the objective is of course to make 
everything as fast as possible
 > it always helps to know which operations we need to worry about the most.
 > Hope that helps clarify some of our thoughts so far.

Very often the only subsciption type needed is subsciption for a 
specific sub-tree within the topic hierarchy, in other words 
subscription with literal prefix and # at the end, e.g. "x.y.z.#".

If that's the case, all three fundamental operations can be implemented 
in O(1) time where n is number of topics and/or bindings and O(n) time 
where n is length of the longest subscription.

Such an algorithm can be turned on by a specific hint passed to 
Exchange.Create 'arguments' parameter, or, more transparently, it can be 
used as long as subscriptions adhere to "x.y.z.#" pattern and once 
there's a non-compliant subscription, matching algorithm can switch 
dynamically to a more generic one.


More information about the rabbitmq-discuss mailing list