From 25b392f90c3436d8db44111194070d6e3eeea5cc Mon Sep 17 00:00:00 2001 From: antirez Date: Tue, 19 Feb 2019 17:27:42 +0100 Subject: [PATCH] Set dictGetFairRandomKey() samples to 20 for final version. Distribution improves dramatically: tests show it clearly. Better to have a slower implementation than a wrong one, because random member extraction should be correct or tends to be useless for a number of tasks. --- src/dict.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dict.c b/src/dict.c index ce48eb41..106467ef 100644 --- a/src/dict.c +++ b/src/dict.c @@ -750,7 +750,7 @@ unsigned int dictGetSomeKeys(dict *d, dictEntry **des, unsigned int count) { * that may be constituted of N buckets with chains of different lengths * appearing one after the other. Then we report a random element in the range. * In this way we smooth away the problem of different chain lenghts. */ -#define GETFAIR_NUM_ENTRIES 10 +#define GETFAIR_NUM_ENTRIES 15 dictEntry *dictGetFairRandomKey(dict *d) { dictEntry *entries[GETFAIR_NUM_ENTRIES]; unsigned int count = dictGetSomeKeys(d,entries,GETFAIR_NUM_ENTRIES);