I'm not so interested in regex, and certainly wouldn't prefer that over performance. In my case, I have control over the names of topics, so I'm not going to be matching any complex patterns that would see the need for a regex. If it's easy enough to add, I'm sure there are others that could take advantage of it.<div>
<br><div class="gmail_quote">On Thu, Sep 13, 2012 at 12:05 PM, Laing, Michael P. <span dir="ltr"><<a href="mailto:Michael.Laing@nytimes.com" target="_blank">Michael.Laing@nytimes.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Interesting! It's more of a "nice-to-have" option for me, much less<br>
important than good performance, reliable federation, etc.<br>
<br>
Multiple bindings and sender-selected distribution add richness as well<br>
that mitigate the need.<br>
<br>
And we have a scheme for distilling complex combinations of subscriber<br>
roles and topic interests into multiple pairs of symmetric 128 character<br>
strings which, with separating periods, create 255 char keys that are used<br>
for binding 'sieves' and publishing 'patterns' respectively in topic<br>
exchanges.<br>
<br>
Seems quite fast. Actually my developers are still scratching their heads<br>
and not actually using it yet - but it's good to get out in front of them<br>
sometimes :)<br>
<br>
Plus there's a lot of headroom left in the scheme if we fully exploit the<br>
depth of each character position, so we should be able to stay out front<br>
for awhileŠ<br>
<br>
ml<br>
<div class="HOEnZb"><div class="h5"><br>
On 9/13/12 11:20 AM, "Simon MacMullen" <<a href="mailto:simon@rabbitmq.com">simon@rabbitmq.com</a>> wrote:<br>
<br>
>On 13/09/12 15:53, Laing, Michael P. wrote:<br>
>> We would find a regular expression matching option for topic exchanges<br>
>> most useful.<br>
>><br>
>> My 2 cents:)<br>
><br>
>Well, there's a reason AMQP didn't just specify regexs for topic<br>
>exchanges in the first place - it won't go anything like as fast when<br>
>you have a reasonable number of bindings.<br>
><br>
>Basically, the topic globbing in AMQP is simple enough that we don't<br>
>have to look at every binding for every message (and yes, this really<br>
>does make a huge difference!):<br>
><br>
><a href="http://www.rabbitmq.com/blog/2010/09/14/very-fast-and-scalable-topic-routi" target="_blank">http://www.rabbitmq.com/blog/2010/09/14/very-fast-and-scalable-topic-routi</a><br>
>ng-part-1/<br>
><a href="http://www.rabbitmq.com/blog/2011/03/28/very-fast-and-scalable-topic-routi" target="_blank">http://www.rabbitmq.com/blog/2011/03/28/very-fast-and-scalable-topic-routi</a><br>
>ng-part-2/<br>
><br>
>If we were to have a regex exchange, we'd have to check every binding<br>
>against every published message. There's no clever way to do it.<br>
><br>
>However.<br>
><br>
>You might not actually care, if your RabbitMQ broker is nowhere near CPU<br>
>bound already. And it would be pretty easy to write. So is there general<br>
>interest in a regex exchange? (With the proviso that it would be notably<br>
>slower than the existing topic exchange...)<br>
><br>
>Cheers, Simon<br>
><br>
>--<br>
>Simon MacMullen<br>
>RabbitMQ, VMware<br>
<br>
</div></div></blockquote></div><br></div>