
org.vanilladb.bench.benchmarks.ycsb.rte.YcsbParamGen Maven / Gradle / Ivy
package org.vanilladb.bench.benchmarks.ycsb.rte;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicInteger;
import org.vanilladb.bench.benchmarks.ycsb.YcsbConstants;
import org.vanilladb.bench.benchmarks.ycsb.YcsbTransactionType;
import org.vanilladb.bench.rte.TxParamGenerator;
import org.vanilladb.bench.util.BenchProperties;
import org.vanilladb.bench.util.RandomValueGenerator;
public class YcsbParamGen implements TxParamGenerator {
private static final double RW_TX_RATE;
private static final double SKEW_PARAMETER;
private static final AtomicInteger GLOBAL_COUNTERS = new AtomicInteger(0);
static {
RW_TX_RATE = BenchProperties.getLoader()
.getPropertyAsDouble(YcsbParamGen.class.getName() + ".RW_TX_RATE", 0.15);
SKEW_PARAMETER = BenchProperties.getLoader()
.getPropertyAsDouble(YcsbParamGen.class.getName() + ".SKEW_PARAMETER", 0.99);
}
private static int getNextInsertId() {
int id = GLOBAL_COUNTERS.getAndIncrement();
return id + YcsbConstants.NUM_RECORDS;
}
private YcsbLatestGenerator latestRandom;
private RandomValueGenerator rvg = new RandomValueGenerator();
public YcsbParamGen() {
latestRandom = new YcsbLatestGenerator(YcsbConstants.NUM_RECORDS, SKEW_PARAMETER);
}
// a main application for debugging
public static void main(String[] args) {
YcsbParamGen executor = new YcsbParamGen();
System.out.println("Parameters:");
System.out.println("Read Write Tx Rate: " + RW_TX_RATE);
System.out.println("Skew Parameter: " + SKEW_PARAMETER);
System.out.println();
for (int i = 0; i < 1000; i++) {
Object[] params = executor.generateParameter();
System.out.println(Arrays.toString(params));
}
}
@Override
public YcsbTransactionType getTxnType() {
return YcsbTransactionType.YCSB;
}
@Override
public Object[] generateParameter() {
ArrayList
© 2015 - 2025 Weber Informatics LLC | Privacy Policy