[SR-Users] Dispatcher alg:7 not working accordingly

Daniel-Constantin Mierla miconda at gmail.com
Thu Jun 7 13:20:55 CEST 2012


Hello,

that hash function is intended for hashing alpha-numeric usernames and 
has a fair distribution for such cases.

I don't think is good for hashing numbers, at the end of a day, a number 
is already like a hash code. You can use in the config file modulo 
operation to select a particular destination based on a number.

Maybe if you explain what is your target to implement, we can provide 
the right hints to do it.

Cheers,
Daniel

On 6/6/12 6:09 PM, SamyGo wrote:
> Sorry for late reply: this wasn't very helpful. I think Hashing algo 
> code needs to get bit smarter. If there is any possibility can you 
> please let me know. !
>
>
> On Mon, Jun 4, 2012 at 3:33 PM, Daniel-Constantin Mierla 
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     To make the life easier to spot the hash code in such case, I just
>     committed a small patch to print it for alg 7:
>
>     http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=83a558fbad700198a8667ef01f756269d7e2c310
>
>     Should be easy to backport if other version is used.
>
>     Cheers,
>     Daniel
>
>
>     On 6/4/12 12:23 PM, Carsten Bock wrote:
>
>         It's hard to say, most likely not. You find the used
>         hash-function here:
>
>          841 unsigned int ds_get_hash(str *x, str *y)
>         http://git.sip-router.org/cgi-bin/gitweb.cgi?p=sip-router;a=blob;f=modules_k/dispatcher/dispatch.c;h=ae0c51b122d34e29b3474957a64b24ff492cfcd5;hb=HEAD
>
>         It was originally implemented to distribute usernames to servers,
>         which worked fine.
>
>         Carsten
>
>         2012/6/4 SamyGo <govoiper at gmail.com <mailto:govoiper at gmail.com>>:
>
>             Thanks Sir,
>
>             Thats what I expected. Do you think this will change if I
>             use only two
>             values with huge difference in each other, lets say
>             {26000,29000} ?
>
>             Regards,
>             Sammy
>
>             On Mon, Jun 4, 2012 at 3:05 PM, Carsten Bock
>             <carsten at ng-voice.com <mailto:carsten at ng-voice.com>> wrote:
>
>                 Hi,
>
>                 this functionality uses a generic "hash" function to
>                 generate an
>                 Integer-Value of the PVAR and then reduces this to the
>                 number hosts in
>                 your destination set.
>                 If you have only using two different values of the
>                 PVAR and only two
>                 hosts in the dispatcher list, it can likely happen,
>                 that the same host
>                 is choosen. You should try a wider range of values for
>                 your PVAR...
>                 (e.g. try 1000 different values), then you should see
>                 a distribution.
>
>                 Carsten
>
>                 2012/6/4 SamyGo <govoiper at gmail.com
>                 <mailto:govoiper at gmail.com>>:
>
>                     Hi,
>
>                     No, nothing at all. I haven't went too deep into
>                     debug logs but no
>                     internal
>                     error was appearing. Everything was as calm as
>                     ever and I only get one
>                     destination uri.
>
>                     So maybe what I'm getting from your email is that
>                     , for this to work the
>                     way
>                     I expect is to have more unique and random values
>                     in my hash_pvar to get
>                     the
>                     required functionality.
>
>                     Thanks once again,
>                     BR
>                     SG
>
>                     On Mon, Jun 4, 2012 at 11:52 AM, Daniel-Constantin
>                     Mierla
>                     <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>                         Hello,
>
>                         do you get any errors in the log?
>
>                         Be aware that hash functions may return same
>                         code for different input
>                         values. A hash function is guaranteed to
>                         return same code for same
>                         input
>                         value, but there can be collisions of codes
>                         for different values.
>
>                         Cheers,
>                         Daniel
>
>
>                         On 6/3/12 3:41 PM, SamyGo wrote:
>
>                         Hello,
>
>                         I'm having trouble using algorithm 7 in
>                         dispatcher module. Here is my
>                         kamailio version. The problem is that despite
>                         multiple dispatcher
>                         entries
>                         corresponding to one set all calls go only to
>                         only one destination.
>
>
>                         [root at control1 ~]# kamailio -V
>                         version: kamailio 3.2.3 (x86_64/linux) 59f87e
>                         flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS,
>                         TLS_HOOKS,
>                         USE_RAW_SOCKS,
>                         DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK,
>                         SHM_MEM, SHM_MMAP, PKG_MALLOC,
>                         DBG_QM_MALLOC, USE_FUTEX,
>                         FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE,
>                         USE_DNS_FAILOVER, USE_NAPTR,
>                         USE_DST_BLACKLIST, HAVE_RESOLV_RES
>                         ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE
>                         262144, MAX_LISTEN 16,
>                         MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT
>                         PKG_SIZE 4MB
>                         poll method support: poll, epoll_lt, epoll_et,
>                         sigio_rt, select.
>                         id: 59f87e
>                         compiled on 18:04:08 Apr 19 2012 with gcc 4.1.2
>                         [root at control1 ~]#
>
>                         Here is the dipacther module params.
>
>
>
>                         # ------- Load-balancer params ------
>                         modparam("dispatcher", "db_url", DBURL)
>                         modparam("dispatcher", "table_name", "dispatcher")
>                         modparam("dispatcher", "setid_col", "setid")
>                         modparam("dispatcher", "destination_col",
>                         "destination")
>                         modparam("dispatcher", "force_dst", 1)
>                         modparam("dispatcher", "flags", 3)
>                         modparam("dispatcher", "dst_avp", "$avp(i:271)")
>                         modparam("dispatcher", "cnt_avp", "$avp(i:273)")
>                         modparam("dispatcher", "ds_ping_from",
>                         "sip:proxy at 109.XXX.2XX.XX")
>                         modparam("dispatcher", "ds_ping_interval",15)
>                         modparam("dispatcher", "ds_probing_mode", 1)
>                         modparam("dispatcher", "ds_ping_reply_codes",
>                         "class=2;code=403;code=404;code=484;class=3")
>                         modparam("dispatcher", "hash_pvar", "$avp(i:274)")
>                         modparam("dispatcher", "ds_hash_size", 9)
>                         modparam("dispatcher", "ds_hash_initexpire", 60)
>
>
>
>                         Below is the function call based on avp(i:274)
>
>
>
>                         avp_db_query("select uid from uid_did_map
>                         where accountcode =
>                         '$fU'","$avp(i:274)");
>                         xlog("L_INFO","$rm from $fu (IP:$si:$sp) ---------
>                         UID:'$avp(i:274)-----------'\n");
>                                 ds_load_update();
>                                 if(!ds_select_dst("1","7")) {
>                                                 sl_send_reply("500",
>                         "No destination
>                         available");
>                                                 xlog("route[MAIN] :
>                         $rm : No destinations
>                         available for $rd");
>                                                 exit;
>                                 }
>
>
>                         I'm getting two different values for
>                         avp(i:274) {26,29} but the
>                         destination are not hashed on its base.
>
>                         Please help.
>
>                         Regards,
>                         Sammy G.
>
>
>
>                         _______________________________________________
>                         SIP Express Router (SER) and Kamailio
>                         (OpenSER) - sr-users mailing list
>                         sr-users at lists.sip-router.org
>                         <mailto:sr-users at lists.sip-router.org>
>                         http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
>                         --
>                         Daniel-Constantin Mierla - http://www.asipto.com
>                         http://twitter.com/#!/miconda
>                         <http://twitter.com/#%21/miconda> -
>                         http://www.linkedin.com/in/miconda
>                         Kamailio Advanced Training, Seattle, USA, Sep
>                         23-26, 2012 -
>                         http://asipto.com/u/katu
>                         Kamailio Practical Workshop, Netherlands, Sep
>                         10-12, 2012 -
>                         http://asipto.com/u/kpw
>
>
>
>
>                     _______________________________________________
>                     SIP Express Router (SER) and Kamailio (OpenSER) -
>                     sr-users mailing list
>                     sr-users at lists.sip-router.org
>                     <mailto:sr-users at lists.sip-router.org>
>                     http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
>                 --
>                 Carsten Bock
>                 CEO (Geschäftsführer)
>
>                 ng-voice GmbH
>                 Schomburgstr. 80
>                 D-22767 Hamburg / Germany
>
>                 http://www.ng-voice.com
>                 mailto:carsten at ng-voice.com <mailto:carsten at ng-voice.com>
>
>                 Mobile +49 179 2021244 <tel:%2B49%20179%202021244>
>                 Office +49 40 34927219 <tel:%2B49%2040%2034927219>
>                 Fax +49 40 34927220 <tel:%2B49%2040%2034927220>
>
>                 Sitz der Gesellschaft: Hamburg
>                 Registergericht: Amtsgericht Hamburg, HRB 120189
>                 Geschäftsführer: Carsten Bock
>                 Ust-ID: DE279344284
>
>                 Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
>                 http://www.ng-voice.com/imprint/
>
>                 _______________________________________________
>                 SIP Express Router (SER) and Kamailio (OpenSER) -
>                 sr-users mailing list
>                 sr-users at lists.sip-router.org
>                 <mailto:sr-users at lists.sip-router.org>
>                 http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
>             _______________________________________________
>             SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
>             mailing list
>             sr-users at lists.sip-router.org
>             <mailto:sr-users at lists.sip-router.org>
>             http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
>
>     -- 
>     Daniel-Constantin Mierla - http://www.asipto.com
>     http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> -
>     http://www.linkedin.com/in/miconda
>     Kamailio Advanced Training, Seattle, USA, Sep 23-26, 2012 -
>     http://asipto.com/u/katu
>     Kamailio Practical Workshop, Netherlands, Sep 10-12, 2012 -
>     http://asipto.com/u/kpw
>
>
>
>
>     _______________________________________________
>     SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
>     list
>     sr-users at lists.sip-router.org <mailto:sr-users at lists.sip-router.org>
>     http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Seattle, USA, Sep 23-26, 2012 - http://asipto.com/u/katu
Kamailio Practical Workshop, Netherlands, Sep 10-12, 2012 - http://asipto.com/u/kpw



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20120607/cc175b11/attachment-0001.htm>


More information about the sr-users mailing list