IP Upstream Hash
Igor Sysoev
igor at sysoev.ru
Thu Jul 21 09:43:15 UTC 2011
On Wed, Jul 20, 2011 at 02:18:52PM -0700, Matthieu Tourne wrote:
> Hi all,
>
> I was looking at the code in ngx_http_upstream_ip_hash_module.c
> And I'm not sure where the hashing algorithm for IPs is coming from,
> especially those lines :
>
> iphp->hash = 89;
>
> hash = (hash * 113 + iphp->addr[i]) % 6271;
>
> Just wondering if those constants are arbitrary chosen, or if there is
> something there to guarantee a good distribution ?
>
> If you have some links explaining this algorithm, it would be greatly
> appreciated!
> Also, how would you get a good distribution on IPv6. Maybe it would make
> sense to use murmur ?
This algorithm came from FastMail.fm. Murmur2 may be better, I'm going
to use it in upcoming upstream hash module which allows to hash any
expression.
--
Igor Sysoev
More information about the nginx-devel
mailing list