Messages in this thread | | | Date | Thu, 12 Apr 2007 01:33:26 +0200 | From | Jörn Engel <> | Subject | Re: If not readdir() then what? |
| |
On Wed, 11 April 2007 16:23:21 -0700, H. Peter Anvin wrote: > David Lang wrote: > >On Thu, 12 Apr 2007, Neil Brown wrote: > > > >>For the second. > >> You say that you " would need at least 96 bits in order to make that > >> guarantee; 64 bits of hash, plus a 32-bit count value in the hash > >> collision chain". I think 96 is a bit greedy. Surely 48 bits of > >> hash and 16 bits of collision-chain-position would plenty. You would > >> need 65537 entries before a collision was even possible, and > >> billions before it was at all likely. (How big does a set of 48bit > >> numbers have to get before the probability that "No subset of 65536 > >> numbers are all the same" drops below 0.95?) > > > > you can get a hash collision with two entries. > > Yes, but the probability is 2^-n for an n-bit hash, assuming it's > uniformly distributed. > > The probability approaches 1/2 as the number of entries hashes > approaches 2^(n/2) (birthday number.)
I believe you are both barking up the wrong tree. Neil proposed a 16bit collision chain. With that, it takes 65537 entries before a collision chain overflow is possible.
Calling a collision chain overflow "collision" is inviting confusion, of course. :)
Jörn
-- The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague. -- Edsger W. Dijkstra - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |