tag:blogger.com,1999:blog-8082954141980125536.post2288629476712959755..comments2008-03-22T04:01:03.516-04:00Comments on research!rsc: Rotating Hashesrschttp://www.blogger.com/profile/06357099531993534337noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-8082954141980125536.post-53388799643404006952008-03-22T04:01:00.000-04:002008-03-22T04:01:00.000-04:002008-03-22T04:01:00.000-04:00Err, I meant Russ. How embarrassing, sorry! :)Err, I meant Russ. How embarrassing, sorry! :)Michaelhttp://www.blogger.com/profile/01123264110675539010noreply@blogger.comtag:blogger.com,1999:blog-8082954141980125536.post-1340138279077519522008-03-22T03:54:00.000-04:002008-03-22T03:54:00.000-04:002008-03-22T03:54:00.000-04:00Hi Ross,Generating and trying multiple hash values...Hi Ross,<BR/><BR/>Generating and trying multiple hash values has found a more recent application in Cuckoo hashing, which offers worst-case O(1) lookup. And it works very well -- I've used an implementation in production that keeps over 2 million elements with a 0.99 load factor. See http://www.it-c.dk/people/pagh/papers/cuckoo-undergrad.pdf, but to achieve these high load factors, you have to generalize the number of hash functions partitions to 5 or so.Michaelhttp://www.blogger.com/profile/01123264110675539010noreply@blogger.comtag:blogger.com,1999:blog-8082954141980125536.post-61344468437255281882008-03-12T15:21:00.000-04:002008-03-12T15:21:00.000-04:002008-03-12T15:21:00.000-04:00@rsc: I think your point about computing several h...@rsc: I think your point about computing several hashes applies to non-linear scanning, not to linear scanning, which is what the random scanning is being compared to in the article. -- Btw, it occurs to me that an advantage that random does have over linear is that each collision group's scan sequence is unique. With linear scanning, when a clump starts to form, it affects the performance of all nearby collision groups. This may explain the performance improvement gained with random scan.nasorengahttp://www.blogger.com/profile/05686871315696257402noreply@blogger.comtag:blogger.com,1999:blog-8082954141980125536.post-60724116932319475312008-03-12T15:08:00.000-04:002008-03-12T15:08:00.000-04:002008-03-12T15:08:00.000-04:00@nasorenga: It performs better because you compute...@nasorenga: It performs better because you compute more bits than you need for a single hash, but not necessarily as many as you need for n different hashes. You might compute a 36-bit hash and then use different 16-bit windows as the scanning sequence.rschttp://www.blogger.com/profile/09576271159839887762noreply@blogger.comtag:blogger.com,1999:blog-8082954141980125536.post-91091061272265888332008-03-12T14:25:00.000-04:002008-03-12T14:25:00.000-04:002008-03-12T14:25:00.000-04:00Seems to me that with the simple bit-rotation meth...Seems to me that with the simple bit-rotation method, all members of a collision group will have the same sequence of addresses, making it equivalent to linear scanning. So why does it perform better?nasorengahttp://www.blogger.com/profile/05686871315696257402noreply@blogger.com