int opCount = props.getInt(Benchmark.OPS_COUNT);
Class<?> keyTypeClass = getKeyTypeClass(keyType);
int insertStart = props.getInt(Benchmark.START_KEY_INDEX, 0);
IntegerGenerator warmUpKeySequence = new CounterGenerator(insertStart);
this.warmUpKeyProvider = getKeyProvider(keyTypeClass, warmUpKeySequence, 0);
this.transformsChooser = null;
if(hasTransforms) {
this.transformsChooser = new DiscreteGenerator();
List<String> transforms = BenchmarkViews.getTransforms();
for(String transform: transforms) {
this.transformsChooser.addValue(1.0, transform);
}
}
operationChooser = new DiscreteGenerator();
if(readProportion > 0) {
operationChooser.addValue(readProportion, Benchmark.READS);
}
if(mixedProportion > 0) {
operationChooser.addValue(mixedProportion, Benchmark.MIXED);
}
if(writeProportion > 0) {
operationChooser.addValue(writeProportion, Benchmark.WRITES);
}
if(deleteProportion > 0) {
operationChooser.addValue(deleteProportion, Benchmark.DELETES);
}
CounterGenerator insertKeySequence = null;
if(recordCount > 0) {
insertKeySequence = new CounterGenerator(recordCount);
} else {
Random randomizer = new Random();
insertKeySequence = new CounterGenerator(randomizer.nextInt(Integer.MAX_VALUE));
}
IntegerGenerator keyGenerator = null;
if(recordSelection.compareTo(Benchmark.UNIFORM_RECORD_SELECTION) == 0) {
int keySpace = (recordCount > 0) ? recordCount : Integer.MAX_VALUE;
keyGenerator = new UniformIntegerGenerator(0, keySpace - 1);