fist of all, 89, 113 and 6271  are all primes.<div>prime has a very import feature when we use to judge whether the bucket is right place for the data to store.It simple made a hash more efficient and less conflict.</div><div>
<br></div><div>the princple of "why prime" can be dicussed more detial in the URL below</div><div><br></div><div><a href="http://computinglife.wordpress.com/2008/11/20/why-do-hash-functions-use-prime-numbers/">http://computinglife.wordpress.com/2008/11/20/why-do-hash-functions-use-prime-numbers/</a> </div>
<div><br></div><div><br></div><div><br><div class="gmail_quote">On Thu, Jul 21, 2011 at 5:18 AM, Matthieu Tourne <span dir="ltr"><<a href="mailto:matthieu.tourne@gmail.com">matthieu.tourne@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi all,<div><br></div><div>I was looking at the code in ngx_http_upstream_ip_hash_module.c</div><div>And I'm not sure where the hashing algorithm for IPs is coming from, especially those lines :</div>
<div><br></div><div>

            iphp->hash = 89;</div><div><br></div><div><div>            hash = (hash * 113 + iphp->addr[i]) % 6271;</div></div><div><br></div><div>Just wondering if those constants are arbitrary chosen, or if there is something there to guarantee a good distribution ?</div>


<div><br></div><div>If you have some links explaining this algorithm, it would be greatly appreciated!</div><div>Also, how would you get a good distribution on IPv6. Maybe it would make sense to use murmur ?</div><div><br>


</div><div>Thank you,</div><div><br></div><font color="#888888"><div>Matthieu.</div>
</font><br>_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br>
<br></blockquote></div><br></div>