Skip to content

Commit 207bf9e

Browse files
mbutrovichapavlo
andauthored
Enable rate to be < 1. (#310)
Co-authored-by: Andy Pavlo <[email protected]>
1 parent 3e2aab2 commit 207bf9e

File tree

4 files changed

+12
-12
lines changed

4 files changed

+12
-12
lines changed

src/main/java/com/oltpbenchmark/DBWorkload.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ public static void main(String[] args) throws Exception {
277277
weight_strings = Arrays.asList(work.getString("weights[not(@bench)]").split("\\s*,\\s*"));
278278
}
279279

280-
int rate = 1;
280+
double rate = 1;
281281
boolean rateLimited = true;
282282
boolean disabled = false;
283283
boolean timed;
@@ -295,9 +295,9 @@ public static void main(String[] args) throws Exception {
295295
System.exit(-1);
296296
} else {
297297
try {
298-
rate = Integer.parseInt(rate_string);
299-
if (rate < 1) {
300-
LOG.error("Rate limit must be at least 1. Use unlimited or disabled values instead.");
298+
rate = Double.parseDouble(rate_string);
299+
if (rate <= 0) {
300+
LOG.error("Rate limit must be at least 0. Use unlimited or disabled values instead.");
301301
System.exit(-1);
302302
}
303303
} catch (NumberFormatException e) {

src/main/java/com/oltpbenchmark/Phase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public enum Arrival {
3333
private final int id;
3434
private final int time;
3535
private final int warmupTime;
36-
private final int rate;
36+
private final double rate;
3737
private final Arrival arrival;
3838

3939

@@ -47,7 +47,7 @@ public enum Arrival {
4747
private int nextSerial;
4848

4949

50-
Phase(String benchmarkName, int id, int t, int wt, int r, List<Double> weights, boolean rateLimited, boolean disabled, boolean serial, boolean timed, int activeTerminals, Arrival a) {
50+
Phase(String benchmarkName, int id, int t, int wt, double r, List<Double> weights, boolean rateLimited, boolean disabled, boolean serial, boolean timed, int activeTerminals, Arrival a) {
5151
this.benchmarkName = benchmarkName;
5252
this.id = id;
5353
this.time = t;
@@ -114,7 +114,7 @@ public int getWarmupTime() {
114114
return warmupTime;
115115
}
116116

117-
public int getRate() {
117+
public double getRate() {
118118
return rate;
119119
}
120120

src/main/java/com/oltpbenchmark/ThreadBench.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ private Results runRateLimitedMultiPhase() {
118118
long warmup = warmupStart;
119119
long measureEnd = -1;
120120
// used to determine the longest sleep interval
121-
int lowestRate = Integer.MAX_VALUE;
121+
double lowestRate = Double.MAX_VALUE;
122122

123123
Phase phase = null;
124124

@@ -166,7 +166,7 @@ private Results runRateLimitedMultiPhase() {
166166

167167
for (WorkloadState workState : workStates) {
168168
if (workState.getCurrentPhase() != null) {
169-
rateFactor = workState.getCurrentPhase().getRate() / lowestRate;
169+
rateFactor = (int) (workState.getCurrentPhase().getRate() / lowestRate);
170170
} else {
171171
rateFactor = 1;
172172
}
@@ -345,12 +345,12 @@ private Results runRateLimitedMultiPhase() {
345345
}
346346
}
347347

348-
private long getInterval(int lowestRate, Phase.Arrival arrival) {
348+
private long getInterval(double lowestRate, Phase.Arrival arrival) {
349349
// TODO Auto-generated method stub
350350
if (arrival == Phase.Arrival.POISSON) {
351351
return (long) ((-Math.log(1 - Math.random()) / lowestRate) * 1000000000.);
352352
} else {
353-
return (long) (1000000000. / (double) lowestRate + 0.5);
353+
return (long) (1000000000. / lowestRate + 0.5);
354354
}
355355
}
356356

src/main/java/com/oltpbenchmark/WorkloadConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public void initializeState(BenchmarkState benchmarkState) {
148148
this.workloadState = new WorkloadState(benchmarkState, phases, terminals);
149149
}
150150

151-
public void addPhase(int id, int time, int warmup, int rate, List<Double> weights, boolean rateLimited, boolean disabled, boolean serial, boolean timed, int active_terminals, Phase.Arrival arrival) {
151+
public void addPhase(int id, int time, int warmup, double rate, List<Double> weights, boolean rateLimited, boolean disabled, boolean serial, boolean timed, int active_terminals, Phase.Arrival arrival) {
152152
phases.add(new Phase(benchmarkName, id, time, warmup, rate, weights, rateLimited, disabled, serial, timed, active_terminals, arrival));
153153
}
154154

0 commit comments

Comments
 (0)