

Hash functions: An empirical comparison (2008) - luu
http://www.strchr.com/hash_functions

======
SEJeff
Also relevant: [http://highscalability.com/blog/2014/8/4/tumblr-hashing-
your...](http://highscalability.com/blog/2014/8/4/tumblr-hashing-your-way-to-
handling-23000-blog-requests-per.html)

Note the bits on the sdbm hashing algorithm and how they found it to have less
collisions than others, then went on so far as to add a patch for it to
haproxy.

------
gulpahum
Here's another hash function comparison with nice pictures:
[http://programmers.stackexchange.com/a/145633](http://programmers.stackexchange.com/a/145633)

------
Andys
Worth noting that this was before Intel's hardware CRC32 acceleration became
readily available in x86 processors, which makes iSCSI CRC faster than all the
others (maybe not for short key lengths)

~~~
przemoc
Nitpick: You're talking about CRC32c (C of Castagnoli) - 0x1EDC6F41. By CRC32
without any additional context people usually mean CRC using polynomial
0x04C11DB7, which is much more common than CRC32c. CRC32 has also a nice
feature:

"CRC-32 polynom 0x04C11DB7 can correct 1 byte error in ~1mbit[,] not that
correcting single byte errors in such huge blocks is good for anything but ive
found a much better one specifically 0x0D438219 which can correct one byte
error in 9747877 bits" [1]

[1] [http://guru.multimedia.cx/category/error-correcting-
codes/](http://guru.multimedia.cx/category/error-correcting-codes/)

