standardActivityType = new ActivityTypeLoader().load(
activityDef, TestComponent.INSTANCE);
@@ -146,7 +147,7 @@ class ActivityExecutorTest {
@Test
synchronized void testNewActivityExecutor() {
- final ActivityDef activityDef = ActivityDef.parseActivityDef(
+ final ActivityConfig activityDef = Activity.configFor(
"driver=diag;alias=test_dynamic_params;cycles=1000;initdelay=5000;");
new ActivityTypeLoader().load(activityDef, TestComponent.INSTANCE);
ActivityWiring wiring = new ActivityWiring(activityDef);
@@ -202,8 +203,9 @@ class ActivityExecutorTest {
private MotorDispenser> getActivityMotorFactory(final SyncAction lc, Input ls) {
return new MotorDispenser<>() {
@Override
- public Motor getMotor(final ActivityDef activityDef, final int slotId) {
- final Activity activity = new Activity(TestComponent.INSTANCE, activityDef);
+ public Motor getMotor(final ActivityConfig activityConfig, final int slotId) {
+ final Activity activity = new Activity(TestComponent.INSTANCE,
+ new ActivityConfig(activityConfig));
final Motor> cm = new CoreMotor<>(activity, slotId, ls, lc, null);
return cm;
}
@@ -229,14 +231,14 @@ class ActivityExecutorTest {
private static class DelayedInitActivity extends Activity {
private static final Logger logger = LogManager.getLogger(DelayedInitActivity.class);
- public DelayedInitActivity(final ActivityDef activityDef) {
+ public DelayedInitActivity(final ActivityConfig activityDef) {
super(TestComponent.INSTANCE, activityDef);
}
@Override
public void initActivity() {
- final Integer initDelay = this.activityDef.getParams().getOptionalInteger(
- "initdelay").orElse(0);
+ final Integer initDelay =
+ this.getConfig().getOptional(Integer.class,"initdelay").orElse(0);
DelayedInitActivity.logger.info(() -> "delaying for " + initDelay);
try {
Thread.sleep(initDelay);
diff --git a/nb-engine/nb-engine-core/src/test/java/io/nosqlbench/engine/core/CoreMotorTest.java b/nb-engine/nb-engine-core/src/test/java/io/nosqlbench/engine/core/CoreMotorTest.java
index 80c5cf3be..ac1719a79 100644
--- a/nb-engine/nb-engine-core/src/test/java/io/nosqlbench/engine/core/CoreMotorTest.java
+++ b/nb-engine/nb-engine-core/src/test/java/io/nosqlbench/engine/core/CoreMotorTest.java
@@ -18,11 +18,11 @@ package io.nosqlbench.engine.core;
import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.config.standard.TestComponent;
-import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityapi.core.Motor;
import io.nosqlbench.engine.api.activityapi.core.SyncAction;
import io.nosqlbench.engine.api.activityimpl.motor.CoreMotor;
import io.nosqlbench.engine.core.fortesting.BlockingSegmentInput;
+import io.nosqlbench.nb.api.engine.activityimpl.ActivityConfig;
import org.junit.jupiter.api.Test;
import java.util.concurrent.atomic.AtomicLong;
@@ -35,9 +35,9 @@ public class CoreMotorTest {
@Test
public void testBasicActivityMotor() {
- ActivityDef activityDef = ActivityDef.parseActivityDef("alias=foo");
+ ActivityConfig config = Activity.configFor("alias=foo");
final Activity activity = new Activity<>(
- new TestComponent("testing", "coremotor"), activityDef);
+ new TestComponent("testing", "coremotor"), config);
final BlockingSegmentInput lockstepper = new BlockingSegmentInput();
final AtomicLong observableAction = new AtomicLong(-3L);
SyncAction action = this.getTestConsumer(observableAction);
@@ -58,7 +58,7 @@ public class CoreMotorTest {
@Test
public void testIteratorStride() {
- ActivityDef activityDef = ActivityDef.parseActivityDef("stride=3");
+ ActivityConfig activityDef = Activity.configFor("stride=3");
Activity activity = new Activity(
TestComponent.INSTANCE, activityDef);
final BlockingSegmentInput lockstepper = new BlockingSegmentInput();
diff --git a/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_activity_error.java b/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_activity_error.java
index 6de247aa6..f52cef3d8 100644
--- a/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_activity_error.java
+++ b/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_activity_error.java
@@ -61,7 +61,8 @@ public class NB_activity_error extends NBBaseCommand {
stdout.write("starting activity activity_error");
controller.start(activitydef1);
controller.waitMillis(500);
- controller.getActivityDef("activity_error").getParams().set("threads","unparsable"); // forced error
+ controller.getActivity("activity_error").getConfig().update("threads","unparsable"); //
+ // forced error
controller.awaitActivity("activity_error", Long.MAX_VALUE);
return null;
}
diff --git a/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_cocycledelay_bursty_backup.java b/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_cocycledelay_bursty_backup.java
index 5a563b157..005e33e22 100644
--- a/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_cocycledelay_bursty_backup.java
+++ b/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_cocycledelay_bursty_backup.java
@@ -16,6 +16,7 @@
package io.nosqlbench.nbr.examples.injava;
+import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricCounter;
@@ -35,71 +36,81 @@ public class NB_cocycledelay_bursty_backup extends NBBaseCommand {
}
/**
- * {@code
- * co_cycle_delay_bursty = {
- * "alias": "co_cycle_delay_bursty",
- * "driver": "diag",
- * "cycles": "0..1000000",
- * "threads": "10",
- * "cyclerate": "1000,1.5",
- * "op" : "diagrate: diagrate=500"
- * };
- *
- * print('starting activity co_cycle_delay_bursty');
- * scenario.start(co_cycle_delay_bursty);
- * for (i = 0; i < 5; i++) {
- * scenario.waitMillis(1000);
- * if (!scenario.isRunningActivity('co_cycle_delay_bursty')) {
- * print("scenario exited prematurely, aborting.");
- * break;
- * }
- * print("backlogging, cycles=" + metrics.co_cycle_delay_bursty.cycles_servicetime.count +
- * " waittime=" + metrics.co_cycle_delay_bursty.cycles_waittime.value +
- * " diagrate=" + activities.co_cycle_delay_bursty.diagrate +
- * " cyclerate=" + activities.co_cycle_delay_bursty.cyclerate
- * );
- * }
- * print('step1 metrics.waittime=' + metrics.co_cycle_delay_bursty.cycles_waittime.value);
- * activities.co_cycle_delay_bursty.diagrate = "10000";
- *
- * for (i = 0; i < 10; i++) {
- * if (!scenario.isRunningActivity('co_cycle_delay_bursty')) {
- * print("scenario exited prematurely, aborting.");
- * break;
- * }
- * print("recovering, cycles=" + metrics.co_cycle_delay_bursty.cycles_servicetime.count +
- * " waittime=" + metrics.co_cycle_delay_bursty.cycles_waittime.value +
- * " diagrate=" + activities.co_cycle_delay_bursty.diagrate +
- * " cyclerate=" + activities.co_cycle_delay_bursty.cyclerate
- * );
- *
- * scenario.waitMillis(1000);
- * if (metrics.co_cycle_delay_bursty.cycles_waittime.value < 50000000) {
- * print("waittime trended back down as expected, exiting on iteration " + i);
- * break;
- * }
- * }
- * //scenario.awaitActivity("co_cycle_delay");
- * print('step2 metrics.waittime=' + metrics.co_cycle_delay_bursty.cycles_waittime.value);
- * scenario.stop(co_cycle_delay_bursty);
- * print("stopped activity co_cycle_delay_bursty");
- * }
+ {@code
+ co_cycle_delay_bursty = {
+ "alias": "co_cycle_delay_bursty",
+ "driver": "diag",
+ "cycles": "0..1000000",
+ "threads": "10",
+ "cyclerate": "1000,1.5",
+ "op" : "diagrate: diagrate=500"
+ };
+
+ print('starting activity co_cycle_delay_bursty');
+ scenario.start(co_cycle_delay_bursty);
+ for (i = 0; i < 5; i++) {
+ scenario.waitMillis(1000);
+ if (!scenario.isRunningActivity('co_cycle_delay_bursty')) {
+ print("scenario exited prematurely, aborting.");
+ break;
+ }
+ print("backlogging, cycles=" + metrics.co_cycle_delay_bursty.cycles_servicetime.count +
+ " waittime=" + metrics.co_cycle_delay_bursty.cycles_waittime.value +
+ " diagrate=" + activities.co_cycle_delay_bursty.diagrate +
+ " cyclerate=" + activities.co_cycle_delay_bursty.cyclerate
+ );
+ }
+ print('step1 metrics.waittime=' + metrics.co_cycle_delay_bursty.cycles_waittime.value);
+ activities.co_cycle_delay_bursty.diagrate = "10000";
+
+ for (i = 0; i < 10; i++) {
+ if (!scenario.isRunningActivity('co_cycle_delay_bursty')) {
+ print("scenario exited prematurely, aborting.");
+ break;
+ }
+ print("recovering, cycles=" + metrics.co_cycle_delay_bursty.cycles_servicetime.count +
+ " waittime=" + metrics.co_cycle_delay_bursty.cycles_waittime.value +
+ " diagrate=" + activities.co_cycle_delay_bursty.diagrate +
+ " cyclerate=" + activities.co_cycle_delay_bursty.cyclerate
+ );
+
+ scenario.waitMillis(1000);
+ if (metrics.co_cycle_delay_bursty.cycles_waittime.value < 50000000) {
+ print("waittime trended back down as expected, exiting on iteration " + i);
+ break;
+ }
+ }
+ //scenario.awaitActivity("co_cycle_delay");
+ print('step2 metrics.waittime=' + metrics.co_cycle_delay_bursty.cycles_waittime.value);
+ scenario.stop(co_cycle_delay_bursty);
+ print("stopped activity co_cycle_delay_bursty");
+ }
*/
@Override
- public Object invoke(NBCommandParams params, PrintWriter stdout, PrintWriter stderr, Reader stdin, ContainerActivitiesController controller) {
+ public Object invoke(
+ NBCommandParams params,
+ PrintWriter stdout,
+ PrintWriter stderr,
+ Reader stdin,
+ ContainerActivitiesController controller
+ )
+ {
Map co_cycle_delay_bursty = Map.of(
"alias", "co_cycle_delay_bursty", "driver", "diag", "cycles", "0..1000000", "threads",
- "1", "cyclerate", "1000,1.5", "op", "diagrate: diagrate=500"
- );
+ "1", "cyclerate", "1000,1.5", "op", "diagrate: diagrate=500");
stdout.println("starting activity co_cycle_delay_bursty");
controller.start(co_cycle_delay_bursty);
- NBMetricCounter service_time_counter = find().counter("activity=co_cycle_delay_bursty,name=cycles_servicetime");
- NBMetricGauge wait_time_gauge = find().gauge("activity=co_cycle_delay_bursty,name=cycles_waittime");
- String diagrate = controller.getActivityDef("co_cycle_delay_bursty").getParams().get("diagrate").toString();
- String cyclerate = controller.getActivityDef("co_cycle_delay_bursty").getParams().get("cyclerate").toString();
+ NBMetricCounter service_time_counter = find().counter(
+ "activity=co_cycle_delay_bursty,name=cycles_servicetime");
+ NBMetricGauge wait_time_gauge = find().gauge(
+ "activity=co_cycle_delay_bursty,name=cycles_waittime");
+ String diagrate = controller.getActivity("co_cycle_delay_bursty").getConfig()
+ .get("diagrate");
+ String cyclerate = controller.getActivity("co_cycle_delay_bursty").getConfig()
+ .get("cyclerate").toString();
for (int i = 0; i < 5; i++) {
controller.waitMillis(1000);
@@ -107,33 +118,41 @@ public class NB_cocycledelay_bursty_backup extends NBBaseCommand {
stdout.println("scenario exited prematurely, aborting.");
break;
}
- diagrate = controller.getActivityDef("co_cycle_delay_bursty").getParams().get("diagrate").toString();
- cyclerate = controller.getActivityDef("co_cycle_delay_bursty").getParams().get("cyclerate").toString();
- stdout.println(
- "backlogging, cycles=" + service_time_counter.getCount() +
- " waittime=" + wait_time_gauge.getValue() +
- " diagrate=" + diagrate +
- " cyclerate=" + cyclerate
- );
+ diagrate = controller.getActivity("co_cycle_delay_bursty").getConfig()
+ .get("diagrate").toString();
+ cyclerate = controller.getActivity("co_cycle_delay_bursty").getConfig()
+ .get("cyclerate").toString();
+ stdout.println("backlogging, cycles=" +
+ service_time_counter.getCount() +
+ " waittime=" +
+ wait_time_gauge.getValue() +
+ " diagrate=" +
+ diagrate +
+ " cyclerate=" +
+ cyclerate);
}
stdout.println("step1 metrics.waittime=" + wait_time_gauge.getValue());
- controller.getActivityDef("co_cycle_delay_bursty").getParams().put("diagrate", "10000");
+ controller.getActivity("co_cycle_delay_bursty").getConfig().update("diagrate", "10000");
for (int i = 0; i < 10; i++) {
if (!controller.isRunningActivity("co_cycle_delay_bursty")) {
stdout.println("scenario exited prematurely, aborting.");
break;
}
- diagrate = controller.getActivityDef("co_cycle_delay_bursty").getParams().get("diagrate").toString();
- cyclerate = controller.getActivityDef("co_cycle_delay_bursty").getParams().get("cyclerate").toString();
+ diagrate = controller.getActivity("co_cycle_delay_bursty").getConfig()
+ .get("diagrate").toString();
+ cyclerate = controller.getActivity("co_cycle_delay_bursty").getConfig()
+ .get("cyclerate").toString();
- stdout.println(
- "recovering, cycles=" + service_time_counter.getCount() +
- " waittime=" + wait_time_gauge.getValue() +
- " diagrate=" + diagrate +
- " cyclerate=" + cyclerate
- );
+ stdout.println("recovering, cycles=" +
+ service_time_counter.getCount() +
+ " waittime=" +
+ wait_time_gauge.getValue() +
+ " diagrate=" +
+ diagrate +
+ " cyclerate=" +
+ cyclerate);
controller.waitMillis(1000);
if (wait_time_gauge.getValue() < 50000000) {
diff --git a/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_threadchange.java b/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_threadchange.java
index 8e180a51a..ab1ce4230 100644
--- a/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_threadchange.java
+++ b/nbr-demos/src/test/java/io/nosqlbench/nbr/examples/injava/NB_threadchange.java
@@ -49,13 +49,13 @@ public class NB_threadchange extends NBBaseCommand {
Activity activity = controller.start(
"driver=diag;alias=threadchange;cycles=0..60000;threads=1;interval=2000;op='noop';rate=1000");
- activity.getActivityDef().setThreads(1);
- stdout.println("threads now " + activity.getActivityDef().getThreads());
+ activity.getConfig().setThreads(1);
+ stdout.println("threads now " + activity.getConfig().getThreads());
stdout.println("waiting 500 ms");
controller.waitMillis(500);
- activity.getActivityDef().setThreads(5);
- stdout.println("threads now " + activity.getActivityDef().getThreads());
+ activity.getConfig().setThreads(5);
+ stdout.println("threads now " + activity.getConfig().getThreads());
controller.stop("threadchange");
return null;
}
diff --git a/nbr/src/main/java/io/nosqlbench/scenarios/simframe/SimFrameUtils.java b/nbr/src/main/java/io/nosqlbench/scenarios/simframe/SimFrameUtils.java
index 83370007a..4796d1902 100644
--- a/nbr/src/main/java/io/nosqlbench/scenarios/simframe/SimFrameUtils.java
+++ b/nbr/src/main/java/io/nosqlbench/scenarios/simframe/SimFrameUtils.java
@@ -45,7 +45,8 @@ public class SimFrameUtils {
}
public static Activity findFlywheelActivity(ContainerActivitiesController controller, String providedActivityName) {
- Optional optionalActivity = Optional.ofNullable(providedActivityName).flatMap(controller::getActivity);
+ Optional optionalActivity =
+ Optional.ofNullable(providedActivityName).flatMap(controller::getOptionalActivity);
if (providedActivityName!=null && optionalActivity.isEmpty()) {
throw new RuntimeException("you specified activity '" + providedActivityName + "' but it was not found.");
}
@@ -54,8 +55,8 @@ public class SimFrameUtils {
// Start the flywheel at an "idle" speed, even if the user hasn't set it
flywheel.onEvent(new ParamChange<>(new CycleRateSpec(100.0d, 1.1d, SimRateSpec.Verb.restart)));
- flywheel.getActivityDef().setEndCycle(Long.MAX_VALUE);
- flywheel.getActivityDef().getParams().set(SIM_CYCLES, Long.MAX_VALUE);
+ flywheel.getConfig().updateLastCycle(Long.MAX_VALUE);
+ flywheel.getConfig().update(SIM_CYCLES, Long.MAX_VALUE);
return flywheel;
}
diff --git a/nbr/src/main/java/io/nosqlbench/scenarios/simframe/optimizers/CMD_reset.java b/nbr/src/main/java/io/nosqlbench/scenarios/simframe/optimizers/CMD_reset.java
index a2985f51a..4e2611821 100644
--- a/nbr/src/main/java/io/nosqlbench/scenarios/simframe/optimizers/CMD_reset.java
+++ b/nbr/src/main/java/io/nosqlbench/scenarios/simframe/optimizers/CMD_reset.java
@@ -61,7 +61,7 @@ public class CMD_reset extends NBBaseCommand {
@Override
public Object invoke(NBCommandParams params, PrintWriter stdout, PrintWriter stderr, Reader stdin, ContainerActivitiesController controller) {
Optional optionalActivity =
- Optional.ofNullable(params.get("activity")).flatMap(controller::getActivity);
+ Optional.ofNullable(params.get("activity")).flatMap(controller::getOptionalActivity);
if (params.get("activity")!=null && optionalActivity.isEmpty()) {
throw new RuntimeException("you specified activity '" + params.get("activity") + "' but it was not found.");
}
@@ -81,21 +81,23 @@ public class CMD_reset extends NBBaseCommand {
default -> {
if (!IGNORABLE.contains(key)) {
logger.debug("Resetting parameter: " + key + " to " + value);
- flywheel.getActivityDef().getParams().put(key, value);
+ flywheel.getConfig().update(key, value);
}
}
}
});
// Get the original cycle count and re-apply it
- long cycles = Long.parseLong((String) flywheel.getActivityDef().getParams().get("cycles"));
- logger.debug("Resetting cycle count to " + cycles + " cycles");
- flywheel.getActivityDef().setEndCycle(cycles);
+ long last_exclusive = flywheel.getConfig().getCyclesSpec().last_exclusive();
+ logger.debug("Resetting last cycle to " + last_exclusive + " cycles");
+ flywheel.getConfig().updateLastCycle(last_exclusive);
//TODO: This needs to be reworked, but simply calling controller.start on the flywheel results in 2
// copies of the activity running simultaneously. This is a temporary workaround.
SimFrameUtils.awaitActivity(flywheel);
-// flywheel.getWiring().getMotorDispenserDelegate().getMotor(flywheel.getActivityDef(), 0).run();
+
+// flywheel.getWiring().getMotorDispenserDelegate().getMotor(flywheel.getConfig(), 0)
+ // .run();
// TODO Implement this correctly around new API
}