diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/Sequence.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/Sequence.java index 0bd764fa19..dfd68b8035 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/Sequence.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/planning/Sequence.java @@ -60,6 +60,6 @@ public Sequence transform(Function func) { @Override public String toString() { - return Arrays.toString(this.seq); + return "seq len="+seq.length + ", LUT=" + Arrays.toString(this.seq); } } diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityimpl/SimpleActivity.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityimpl/SimpleActivity.java index ce4540b3c2..0100bcd2ff 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityimpl/SimpleActivity.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityimpl/SimpleActivity.java @@ -343,12 +343,15 @@ public synchronized void setDefaultsFromOpSequence(OpSequence seq) { getParams().setSilently("stride", stride); } + // CYCLES Optional cyclesOpt = getParams().getOptionalString("cycles"); if (cyclesOpt.isEmpty()) { String cycles = getParams().getOptionalString("stride").orElseThrow(); logger.info(() -> "defaulting cycles to " + cycles + " (the stride length)"); // getParams().set("cycles", getParams().getOptionalString("stride").orElseThrow()); - getParams().setSilently("cycles", getParams().getOptionalString("stride").orElseThrow()); +// getParams().setSilently("cycles", getParams().getOptionalString("stride").orElseThrow()); + this.getActivityDef().setCycles(getParams().getOptionalString("stride").orElseThrow()); +// getParams().set("cycles", getParams().getOptionalString("stride").orElseThrow()); } else { if (0 == activityDef.getCycleCount()) { throw new RuntimeException( diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityimpl/input/AtomicInput.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityimpl/input/AtomicInput.java index 79436a291b..473eb3b1ec 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityimpl/input/AtomicInput.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityimpl/input/AtomicInput.java @@ -118,11 +118,15 @@ public void onActivityDefUpdate(ActivityDef activityDef) { cycles_max.set(cyclesSpec.last_exclusive()); if (cycles_min.get() != cyclesSpec.first_inclusive()) { - logger.info(() -> "resetting cycle value to new start: cycle[" + cycles_min.get() + "->" + cyclesSpec.first_inclusive() + "] " + + logger.info(() -> "resetting first cycle (inclusive) value to: cycle[" + cycles_min.get() + "->" + cyclesSpec.first_inclusive() + "] " + " start[" + cycle_value.get() + "->" + cycles_min.get() + "]"); cycles_min.set(cyclesSpec.first_inclusive()); cycle_value.set(cycles_min.get()); } + if (cycles_max.get() != cyclesSpec.last_exclusive()) { + logger.info(() -> "resetting last cycle (exclusive) value to: cycle[" + cycles_max.get() + "->" + cyclesSpec.last_exclusive() + "]"); + cycles_max.set(cyclesSpec.last_exclusive()); + } recycles_max.set(recyclesSpec.last_exclusive()); if (recycles_min.get() != recyclesSpec.first_inclusive()) { @@ -131,6 +135,11 @@ public void onActivityDefUpdate(ActivityDef activityDef) { recycles_min.set(recyclesSpec.first_inclusive()); recycle_value.set(recyclesSpec.first_inclusive()); } + if (recycles_max.get() != recyclesSpec.last_exclusive()) { + logger.info(() -> "resetting last recycle (exclusive) value to: recycle[" + recycles_max.get() + "->" + recyclesSpec.last_exclusive() + "]"); + recycles_max.set(recyclesSpec.last_exclusive()); + } + } public long getStartedAtMillis() { diff --git a/engine-api/src/test/java/io/nosqlbench/engine/api/activityimpl/input/AtomicInputTest.java b/engine-api/src/test/java/io/nosqlbench/engine/api/activityimpl/input/AtomicInputTest.java index 8896cf61bc..fe87721bb9 100644 --- a/engine-api/src/test/java/io/nosqlbench/engine/api/activityimpl/input/AtomicInputTest.java +++ b/engine-api/src/test/java/io/nosqlbench/engine/api/activityimpl/input/AtomicInputTest.java @@ -66,6 +66,13 @@ public void testThatRadixStackingIsAccurate() { assertThat(segment).isNull(); } + @Test + public void testThatOneCycleAndOneRecycleYieldsOneTotal() { + AtomicInput input = new AtomicInput(root, ActivityDef.parseActivityDef("alias=foo;cycles=1;recycles=1")); + CycleSegment segment = input.getInputSegment(1); + assertThat(segment).isNotNull(); + assertThat(segment.nextCycle()).isEqualTo(0L); + } @Test public void testThatCycleAndRecycleOffsetsWork() { AtomicInput input = new AtomicInput(root, ActivityDef.parseActivityDef("alias=foo;cycles=310..330;recycles=37..39")); diff --git a/nb-api/src/main/java/io/nosqlbench/api/engine/activityimpl/ParameterMap.java b/nb-api/src/main/java/io/nosqlbench/api/engine/activityimpl/ParameterMap.java index d337be20ae..5753a732c0 100644 --- a/nb-api/src/main/java/io/nosqlbench/api/engine/activityimpl/ParameterMap.java +++ b/nb-api/src/main/java/io/nosqlbench/api/engine/activityimpl/ParameterMap.java @@ -181,6 +181,9 @@ public void setSilently(String paramName, Object newValue) { public void set(String paramName, Object newValue) { + if (paramName.equals("cycles")) { + logger.warn("Setting 'cycles' on the parameter map is likely causing a bug in your activity. Call setCycles on the def instead."); + } super.put(paramName, String.valueOf(newValue)); logger.info(() -> "setting param " + paramName + "=" + newValue); markMutation(); diff --git a/nb-api/src/main/java/io/nosqlbench/api/labels/MapLabels.java b/nb-api/src/main/java/io/nosqlbench/api/labels/MapLabels.java index 715a45d143..3874e6dd56 100644 --- a/nb-api/src/main/java/io/nosqlbench/api/labels/MapLabels.java +++ b/nb-api/src/main/java/io/nosqlbench/api/labels/MapLabels.java @@ -26,7 +26,7 @@ public class MapLabels implements NBLabels { - private final static Logger logger = LogManager.getLogger(MapLabels.class); +// private final static Logger logger = LogManager.getLogger(MapLabels.class); private final Map labels; public MapLabels(final Map labels) { @@ -147,9 +147,9 @@ public static String sanitize(String word) { sanitized = sanitized.replaceAll("-", "_"); sanitized = sanitized.replaceAll("[^a-zA-Z0-9_]+", ""); - if (!word.equals(sanitized)) { - logger.warn("The identifier or value '" + word + "' was sanitized to '" + sanitized + "' to be compatible with monitoring systems. You should probably change this to make diagnostics easier."); - } +// if (!word.equals(sanitized)) { +// logger.warn("The identifier or value '" + word + "' was sanitized to '" + sanitized + "' to be compatible with monitoring systems. You should probably change this to make diagnostics easier."); +// } return sanitized; }