Hi Matt,

If you want good distribution, why don't you use instead the round-robin or the random dispatcher algorithms?

[1] http://www.opensips.org/html/docs/modules/devel/dispatcher.html#id293072

Regards,

--
Vlad Paiu
OpenSIPS Developer
http://opensips-solutions.org/


Pe 2/3/2012 2:59 AM, Matt Hamilton a scris:
Hi Ra(zvan,

I don't assign any weights, and I use the dispatcher.list file:
1 sip:x.x.x.11:5060
1 sip:x.x.x.12:5060
1 sip:x.x.x.13:5060


When there are only 2 servers in that file, I always get:
DBG:dispatcher:ds_select_dst: alg hash [1], id [1] and dispatcher selects the 
2nd entry.

When there are 3 servers - when the dispatcher distributes to all 3 servers, I get


DBG:dispatcher:ds_select_dst: alg hash [0], id [0] before it dispatches to server1 (x.x.x.11)
DBG:dispatcher:ds_select_dst: alg hash [1], id [1] for x.x.x.12
DBG:dispatcher:ds_select_dst: alg hash [2], id [2] for x.x.x.13



Anyway I did some more tests, and it turns out that the hash algorithm is very sensitive to the PV.

1. when the input hash_pvar is from this set (my original set that gave me problems): "061002" "061003" "061005" "061006" "61007" "061008"
Dispatcher splits them:
Server1: 0
server2: 6

2. if I add a 1 in front of my hash PV - so that the new values are 1"061002", etc. (indentation mark is part of the string)
Server1: 2
Server2: 4

3. If I add another character, so that PVs look like x1"061002"
Server1: 3
Server2: 3

3-3 or 2-4 split is OK of course, but the 0-6 split threw me off. Is there a "safe" PV (integers, certain combinations, etc.) that I can use that will give me the best distribution? I can use a lookup table (like dialplan) to get those.

Thanks,
Matt








------------------------------------------------------------------------
Date: Fri, 3 Feb 2012 00:36:37 +0200
From: razvancrai...@opensips.org
To: users@lists.opensips.org
Subject: Re: [OpenSIPS-Users] dispatcher problem

Hi, Matt!

So for different hashed strings like:
DBG:dispatcher:ds_hash_pvar: Hashing "061002"!
you always get the same output:
DBG:dispatcher:ds_select_dst: alg hash [1], id [1]

Also, are you assigning different weights for any of the Asterisk?

Regards,
--
Ra(zvan Crainea
OpenSIPS Developer
http://opensips-solutions.org/


On 02/03/2012 12:16 AM, Matt Hamilton wrote:

    Hi Ra(zvan,

    Yes, I'm using the same hashing values - the values I assign to the PV are 
also
    passed to the ds_select_dst correctly as far as I can see. Here is a typical
    debug output:

    DBG:dispatcher:ds_hash_pvar: Hashing "061002"!
    DBG:dispatcher:ds_select_dst: alg hash [1], id [1]
    DBG:dispatcher:ds_select_dst: selected [7-1/1]<sip:x.x.x.13:5060>
    DBG:dispatcher:ds_select_dst: using entry [1/0]


    I ran some test with 3 Asterisk servers with interesting results:

    With 3 Asterisk servers specified in dispatcher.list, here is the 
distribution:

    Server1: 061003
    Server2: 061002, 061007, 061008
    Server3: 061005, 061006

    With only Server1 and Server2 specified in dispatcher.list:

    Server1:
    Server2: 061002, 061003, 061005, 061006, 61007, 061008


    Likewise, with Server1 and Server3, Server3 gets everything.
               with Server2 and Server3, Server3 gets everything.

    Is there anything I can do to fix this (somehow trick the function assuming 
the way I do is the correct way)?

    Thanks,
    Matt








    ------------------------------------------------------------------------
    Date: Thu, 2 Feb 2012 22:51:46 +0200
    From: razvancrai...@opensips.org <mailto:razvancrai...@opensips.org>
    To: users@lists.opensips.org <mailto:users@lists.opensips.org>
    Subject: Re: [OpenSIPS-Users] dispatcher problem

    Hi, Matt!

    Are you sure you are not using the same hashing value all the time?
    If yes, can you increase your debugging level to 6 and provide
    more information? I would be looking in the opensips log for lines
    that contain the following strings: "ds_hash_pvar: Hashing " and
    "ds_select_dst: alg hash ".

    Regards,

-- Ra(zvan Crainea
    OpenSIPS Developer
    http://opensips-solutions.org/



    On 02/02/2012 10:15 PM, Matt Hamilton wrote:

        Hi,

        I'm using Opensips to dispatch to 2 servers - serverA,
        serverB. When one of the servers is down, Opensips is
        dispatching to the active one correctly. However, when both of
        them are Active, it's picking only one of them and ignoring
        the other; e.g.,

        when serverB is down, dispatches to serverA
        when serverA is down, dispatches to serverB
        when both up, dispatches to serverB
        while dispatching to serverA when serverB is down, if I
        activate serverB, all requests dispatched to serverB


        Here is my code:

        modparam("dispatcher", "hash_pvar", "$avp(75)")


        in the script, I'm setting $avp(75) to one of the following
        "061002", "061003", "061004", "061005", "061006" just before
        calling ds_select_dst.

        $avp(75)=..
        ds_select_dst("1", "7");

        Any ideas why this is happening?

        Regards,
        Matt


        _______________________________________________
        Users mailing list
        Users@lists.opensips.org  <mailto:Users@lists.opensips.org>
        http://lists.opensips.org/cgi-bin/mailman/listinfo/users


    _______________________________________________ Users mailing list
    Users@lists.opensips.org <mailto:Users@lists.opensips.org>
    http://lists.opensips.org/cgi-bin/mailman/listinfo/users


    _______________________________________________
    Users mailing list
    Users@lists.opensips.org  <mailto:Users@lists.opensips.org>
    http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to