HI Daniel On Fri, Feb 17, 2012 at 1:44 PM, Daniel-Constantin Mierla <mico...@gmail.com > wrote:
> Hello, > > > On 2/17/12 1:04 PM, Javier Gallart wrote: > > Hi Daniel, > > no, in order to find the best match we do a manual trick using > the s.prefixes transformation (I think you suggested that). > > > could be, at least is the way I do prefix matching with mysql. Postgres, > on the other hand, afaik, has an index plugin to match the longest prefix, > might not be in default distro, but can be found on the net for sure. > > > We start with the full $rU and stop when we find a non-null value. This > kamailio is serving many thousands of calls per hour, and the response time > is pretty much the same as when we used the mtree module. For us , using > redis has the advantage of being able to load the tree data faster than > when we used postgres without the need to perform a mtree reload. > > > Loading huge amount of records from mysql takes time indeed. > > Maybe prefix matching will be added in redis in the future, or scripted > server side in lua, as I understood it has such feature. Another option > would be to add a custom command in kamailio like redis_cmd_pmatch() to do > internally these prefix-based commands until a match, could simplify the > config if it becomes something very popular. > Yes, redis suppors LUA scripting through the EVAL command. Another possible approach would be to use pipelining. Instead of executing a query per prefix, redis offers has the feature of queing multiple commands and send them only once to the server. For example: redis 127.0.0.1:6379> multi OK redis 127.0.0.1:6379> "HGET" "tree:1000:routes" "3466157" QUEUED redis 127.0.0.1:6379> "HGET" "tree:1000:routes" "346615" QUEUED redis 127.0.0.1:6379> "HGET" "tree:1000:routes" "34661" QUEUED redis 127.0.0.1:6379> exec 1) (nil) 2) (nil) 3) "c=2000;q=100" That way the iteration could take place in the result having issued a single command. For that, the redis module should support both multivalue responses. > > Also, I forgot about the other solution in kamailio - pdb module written > by 1&1 for number portability: > * http://kamailio.org/docs/modules/stable/modules/pdb.html > I hadn't thought of using it, thanks for the tip. I will take a look. Regards Javi > > > Just mentioning it here for let it be known, if redis is working fine for > you, makes no sense to look for other solutions. > > Cheers, > Daniel > > > > Regards > > Javi > > > On Fri, Feb 17, 2012 at 10:25 AM, Daniel-Constantin Mierla < > mico...@gmail.com> wrote: > >> Hello Javier, >> >> one question about redis, can it do longest prefix matching or all >> prefixes match? >> >> Cheers, >> Daniel >> >> >> On 2/16/12 2:51 PM, Javier Gallart wrote: >> >> Hello Uri >> >> I had similar needs and I found the ndb_redis module more suited for >> that type of task. Instead of a tree you have a hash like this: tname >> tprefix tvalue. If you do a hget nts $avp(DID) and you get a not null >> value you have found your exact match. It works very well for me and the >> time it takes for that "query" is barely noticeable. Of course redis does >> not address items like persistence, etc the same way a rdbms does. >> Hope it helps. >> >> Regards >> >> Javi >> >> On Thu, Feb 16, 2012 at 12:00 PM, >> <sr-users-requ...@lists.sip-router.org>wrote: >> >>> Send sr-users mailing list submissions to >>> sr-users@lists.sip-router.org >>> >>> To subscribe or unsubscribe via the World Wide Web, visit >>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>> or, via email, send a message with subject or body 'help' to >>> sr-users-requ...@lists.sip-router.org >>> >>> You can reach the person managing the list at >>> sr-users-ow...@lists.sip-router.org >>> >>> When replying, please edit your Subject line so it is more specific >>> than "Re: Contents of sr-users digest..." >>> >>> >>> Today's Topics: >>> >>> 1. how to match exact string value in mtree (Uri Shacked) >>> >>> >>> ---------------------------------------------------------------------- >>> >>> Message: 1 >>> Date: Thu, 16 Feb 2012 12:54:50 +0200 >>> From: Uri Shacked <ushac...@gmail.com> >>> Subject: [SR-Users] how to match exact string value in mtree >>> To: "SIP Router - Kamailio (OpenSER) and SIP Express Router (SER) - >>> Users Mailing List" <sr-users@lists.sip-router.org> >>> Message-ID: >>> <CAMMbDhTFNXAE-K88= >>> aemjo7ana_qjv3ajj3ah-axemxn3ze...@mail.gmail.com> >>> Content-Type: text/plain; charset="iso-8859-1" >>> >>> Hi, >>> >>> I am using Mtree to match prefix numbers, some of them starts with 0 or >>> characters like D for example. >>> so, the mtree param is like this: >>> >>> modparam("mtree", "db_url", CFGDB) >>> modparam("mtree", "mtree", >>> "name=nts;dbtable=service_numbers_view;type=0;") >>> modpmodparam("mtree", "char_list", "0123456789*+#YMDabcdefgh") >>> modparam("mtree", "pv_value", "$avp(mtval)") >>> modparam("mtree", "pv_values", "$avp(mtvals)") >>> >>> The thing is, that i tried all: >>> >>> if(!mt_match("nts", "$avp(DID)","1")) >>> if(!mt_match("nts", "$avp(DID)","2")) >>> if(!mt_match("nts", "$avp(DID)","0")) >>> >>> and lets say i have the both prefix in the nts mtree: >>> 09555 >>> 09555333 >>> >>> And the prefix i search for is $avp(DID)=09555444 >>> >>> I allwasy get the 09555 because it is the longest match. >>> I need exact match..... >>> >>> how do i do that? >>> -------------- next part -------------- >>> An HTML attachment was scrubbed... >>> URL: < >>> http://lists.sip-router.org/pipermail/sr-users/attachments/20120216/9d2eb778/attachment.html >>> > >>> >>> ------------------------------ >>> >>> _______________________________________________ >>> sr-users mailing list >>> sr-users@lists.sip-router.org >>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>> >>> >>> End of sr-users Digest, Vol 81, Issue 40 >>> **************************************** >>> >> >> >> >> _______________________________________________ >> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >> listsr-us...@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >> >> >> -- >> Daniel-Constantin Mierla -- >> http://www.asipto.comhttp://linkedin.com/in/miconda -- >> http://twitter.com/miconda >> >> > > -- > Daniel-Constantin Mierla -- > http://www.asipto.comhttp://linkedin.com/in/miconda -- > http://twitter.com/miconda > >
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users