[issue14621] Hash function is not randomized properly

Marc-Andre Lemburg report at bugs.python.org
Wed Nov 7 12:19:16 CET 2012


Marc-Andre Lemburg added the comment:

On 07.11.2012 12:06, Armin Rigo wrote:
> 
> Armin Rigo added the comment:
> 
> Marc-André: estimating the risks of giving up on a valid query for a truly random hash, at an overestimated one billion queries per second, in a 2/3 full dictionary:
> 
> * for 1000: 4E159 years between mistakes
> 
> * for 100: 12.9 years between mistakes
> 
> * for 150: 8E9 years between mistakes
> 
> * for 200: 5E18 years between mistakes
> 
> So while it seems that 100 might be a bit too small, using 150 to 200 is perfectly safe (and that's "perfect" in the sense that a computer will encounter random hardware errors at a higher rate than that).

I used the 1000 limit only as example. In tests Victor and I ran (see the
original ticket from a few months ago), 200 turned out to be a reasonable
number for the default maximum hash collision value.

I'm not sure about the slot collision limit. We'd have to run more tests
on those.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14621>
_______________________________________


More information about the Python-bugs-list mailing list