From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Greg Stark <gsstark(at)mit(dot)edu> |
Cc: | Dennis Bjorklund <db(at)zigo(dot)dhs(dot)org>, Bruno Wolff III <bruno(at)wolff(dot)to>, "Jim C(dot) Nasby" <jim(at)nasby(dot)net>, pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Horribly slow hash join |
Date: | 2004-04-19 06:09:30 |
Message-ID: | 16041.1082354970@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Greg Stark <gsstark(at)mit(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Dirk Lutzebäck | 2004-04-19 07:27:57 | Re: RESOLVED: Re: Wierd context-switching issue on Xeon |
Previous Message | Greg Stark | 2004-04-19 05:29:19 | Re: Horribly slow hash join |