Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
HDFS-7122 showed that naive ThreadLocal usage of simple LCG based j.u.Random creates unacceptable distribution of random numbers for block placement. Similarly, ThreadLocalRandom in java 7 (same static thread local with synchronized methods overridden) has the same problem.
"Better" is defined as better quality and faster than j.u.Random (which is already much faster (20x) than SecureRandom).
People (e.g. Numerical Recipes) have shown that by combining LCG and XORShift we can have a better fast RNG. It'd be worthwhile to investigate a thread local version of these "better" RNG.
Attachments
Issue Links
- relates to
-
HDFS-7122 Use of ThreadLocal<Random> results in poor block placement
- Closed