[ https://issues.apache.org/jira/browse/HBASE-2269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stack resolved HBASE-2269. -------------------------- Resolution: Fixed Fix Version/s: 0.21.0 0.20.4 Hadoop Flags: [Reviewed] I committed your latter suggestion Tatsuya: {code} Index: src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java =================================================================== --- src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java (revision 921459) +++ src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java (working copy) @@ -666,7 +666,15 @@ * Subclass to particularize what happens per row. */ static abstract class Test { - protected final Random rand = new Random(System.currentTimeMillis()); + // Below is make it so when Tests are all running in the one + // jvm, that they each have a differently seeded Random. + private static final Random randomSeed = + new Random(System.currentTimeMillis()); + private static long nextRandomSeed() { + return randomSeed.nextLong(); + } + protected final Random rand = new Random(nextRandomSeed()); + protected final int startRow; protected final int perClientRunRows; protected final int totalRows; {code} Thanks for the fix. > PerformanceEvaluation "--nomapred" may assign duplicate random seed over > multiple testing threads > ------------------------------------------------------------------------------------------------- > > Key: HBASE-2269 > URL: https://issues.apache.org/jira/browse/HBASE-2269 > Project: Hadoop HBase > Issue Type: Bug > Components: test > Affects Versions: 0.20.3 > Environment: Any operating system > Reporter: Tatsuya Kawano > Priority: Minor > Fix For: 0.20.4, 0.21.0 > > > When you use PerformanceEvaluation with "--nomapred" option, you will end up > having the same random seeds assigned over multiple testing threads. So > you'll get inaccurate results from "random~~" tests. > {code:title=PerformanceEvaluation.java} > 542: abstract class Test { > 543: protected final Random rand = new Random(System.currentTimeMillis()); > {code} > Milliseconds won't be sufficient; today's JVM is much faster to create > multiple Test objects in one millisecond. You might want to use something > like "{{super.hashCode()}}" instead. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.