Re: Horribly slow hash join - Mailing list pgsql-performance

From Tom Lane
Subject Re: Horribly slow hash join
Date
Msg-id 16041.1082354970@sss.pgh.pa.us
Whole thread Raw
In response to Re: Horribly slow hash join  (Greg Stark <gsstark@mit.edu>)
Responses Re: Horribly slow hash join  (Dave Cramer <pg@fastcrypt.com>)
Re: Horribly slow hash join  (Greg Stark <gsstark@mit.edu>)
Re: Horribly slow hash join  (Greg Stark <gsstark@mit.edu>)
List pgsql-performance
Greg Stark <gsstark@mit.edu> writes:
> If the hash tables were made a power of two then it would be possible to mix
> the bits of the 32 bit value and just mask off the unneeded bits. I've found
> one page via google that mentions mixing bits in a hash function, but I would
> look for a more serious treatment somewhere.
>  http://burtleburtle.net/bob/hash/doobs.html
> Incidentally, this text claims mod is extremely slow compared to bit
> manipulations.

Modding by a *non* power of 2 (esp. a prime) mixes the bits quite well,
and is likely faster than any multiple-instruction way to do the same.

The quoted article seems to be by someone who has spent a lot of time
counting assembly cycles and none at all reading the last thirty years
worth of CS literature.  Knuth's treatment of hashing has some actual
math to it...

            regards, tom lane

pgsql-performance by date:

Previous
From: Greg Stark
Date:
Subject: Re: Horribly slow hash join
Next
From: Dirk Lutzebäck
Date:
Subject: Re: RESOLVED: Re: Wierd context-switching issue on Xeon