On Thu, Jan 5, 2012 at 4:04 PM, Laruence <larue...@php.net> wrote: > On Thu, Jan 5, 2012 at 3:57 PM, Rasmus Lerdorf <ras...@lerdorf.com> wrote: >> On 01/04/2012 11:49 PM, Laruence wrote: >>> Hi: >>> there is one way maybe is a good try. >>> >>> when resize hashtable, we don't just dobule the size, instead, we >>> increase the hashtable size with a random delta >>> >>> what do you think? >> >> Sorry, you lost me. How does that help? The problem is when we collide >> on a single hash key the resulting linked list traversion gets longer >> and longer as more colliding keys are added to that hashtable. Whether >> you double the size or grow it by some other factor doesn't change this. > No, No, > > if we increase the table size with a random delta(the nTableMask will > also be random), then the collision will not be predictable.
I have made a patch, plz try this mechanism, https://bugs.php.net/patch-display.php?bug_id=60655&patch=rand_hash_resize.patch&revision=latest I have tested , that works. and the patch is still a rough draft, so maybe some compile warnings.. thanks > > thanks > >> >> -Rasmus >> > > > > -- > Laruence Xinchen Hui > http://www.laruence.com/ -- Laruence Xinchen Hui http://www.laruence.com/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php