Hello, On 10/06/08 13:27, Henning Westerholt wrote: > On Tuesday 30 September 2008, Daniel-Constantin Mierla wrote: > >>> [..] >>> Sure, it's great if my registrants always go to the same location >>> server, but if 90% of my users end up going to one location server >>> because of the distribution that the variance of their From URIs >>> provides, what does this really give me except a predictable route? >>> It's not as if I can use the hash to "find" a user's location server >>> -- unless the location server was determined using the same hash also. >>> What's the point? >>> >> The hash function was tested to get pretty fair distribution for AoR, >> most of the hashed values respect this format. If 90% of your users end >> up to same server, then you may need to code a bit :-) and add an >> alternative hash function to the module. For me the existing one seems >> good so far. >> >> I do not need to know where a user call is going. Practically, they >> could share the same db backend for auth, but the location and other >> user profiles details may be in memory for speed purposes. In what I am >> doing, all the servers in a group have same config, if i add a new one, >> I get a new dispersion of the users across servers. >> >> Getting the distribution is quite simple, take the has function and make >> a simple app that takes as parameter a string and outputs the hash >> value. Knowing your subscriber base ids, you can estimate the results of >> dispatching. >> > > Hi Alex, > > don't that much about the dispatcher internals, but i think it also uses the > CRC32 hash. In my tests with the carrierroute module that uses this too, > requests over a random callid/ from user are distributed equally with about > +/- 5% accuracy, which i think is ok. If you need to adjust the target host > distribution, take a look at the hash_id functionality (carrierroute config > file mode), here you can specify the exact destination. We use also the this > approach of pre-calculating the hash value that Daniel described. > > dispatcher is using an internal function, from hash_func.h. God to know you have tested with crc32, I might make it available as alternative hashing function for dispatcher.
Cheers, Daniel -- Daniel-Constantin Mierla http://www.asipto.com _______________________________________________ Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users