this commit renames StandardActivity to Activity, as the one and only

This commit is contained in:
Jonathan Shook 2024-12-19 14:36:53 -06:00
parent ced01b132b
commit 6b43b10509
48 changed files with 188 additions and 167 deletions

View File

@ -1,5 +1,23 @@
package io.nosqlbench.adapters.api.activityimpl.uniform; package io.nosqlbench.adapters.api.activityimpl.uniform;
/*
* Copyright (c) nosqlbench
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import java.util.Map; import java.util.Map;
import io.nosqlbench.adapters.api.activityimpl.OpDispenser; import io.nosqlbench.adapters.api.activityimpl.OpDispenser;
import io.nosqlbench.nb.api.components.core.NBNamedElement; import io.nosqlbench.nb.api.components.core.NBNamedElement;

View File

@ -16,7 +16,7 @@
package io.nosqlbench.engine.api.activityapi.core; package io.nosqlbench.engine.api.activityapi.core;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import java.util.Map; import java.util.Map;
@ -25,5 +25,5 @@ import java.util.Map;
* activities that are present in a configuration. Those dispensers will have th * activities that are present in a configuration. Those dispensers will have th
*/ */
public interface ActivitiesAware { public interface ActivitiesAware {
void setActivitiesMap(Map<String, StandardActivity> activities); void setActivitiesMap(Map<String, Activity> activities);
} }

View File

@ -17,7 +17,7 @@
package io.nosqlbench.engine.api.activityapi.core; package io.nosqlbench.engine.api.activityapi.core;
import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.TrackedOp; import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.TrackedOp;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap; import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -28,7 +28,7 @@ import org.apache.logging.log4j.LogManager;
* @param <D> An type of state holder for an operation, holding everything unique to that cycle and operation * @param <D> An type of state holder for an operation, holding everything unique to that cycle and operation
* @param <A> An type of of an Activity, a state holder for a runtime instance of an StandardActivity * @param <A> An type of of an Activity, a state holder for a runtime instance of an StandardActivity
*/ */
public abstract class BaseAsyncAction<D, A extends StandardActivity> implements AsyncAction<D>, public abstract class BaseAsyncAction<D, A extends Activity> implements AsyncAction<D>,
Stoppable, ActivityDefObserver { Stoppable, ActivityDefObserver {
private final static Logger logger = LogManager.getLogger("BaseAsyncAction"); private final static Logger logger = LogManager.getLogger("BaseAsyncAction");

View File

@ -17,24 +17,19 @@
package io.nosqlbench.engine.api.activityapi.core; package io.nosqlbench.engine.api.activityapi.core;
import com.codahale.metrics.Counter; import com.codahale.metrics.Counter;
import com.codahale.metrics.Histogram;
import com.codahale.metrics.Timer; import com.codahale.metrics.Timer;
import io.nosqlbench.adapters.api.activityimpl.OpDispenser; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap; import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap;
import io.nosqlbench.nb.api.engine.metrics.instruments.*; import io.nosqlbench.nb.api.engine.metrics.instruments.*;
import java.util.concurrent.Future;
public class ComponentActivityInstrumentation { public class ComponentActivityInstrumentation {
private static final String WAIT_TIME = "_waittime"; private static final String WAIT_TIME = "_waittime";
private static final String SERVICE_TIME = "_servicetime"; private static final String SERVICE_TIME = "_servicetime";
private static final String RESPONSE_TIME = "_responsetime"; private static final String RESPONSE_TIME = "_responsetime";
private final StandardActivity activity; private final Activity activity;
private final ActivityDef def; private final ActivityDef def;
private final ParameterMap params; private final ParameterMap params;
private final int hdrdigits; private final int hdrdigits;
@ -56,7 +51,7 @@ public class ComponentActivityInstrumentation {
private NBMetricGauge errorRateTotal; private NBMetricGauge errorRateTotal;
private NBMetricGauge errorsTotal; private NBMetricGauge errorsTotal;
public ComponentActivityInstrumentation(final StandardActivity activity) { public ComponentActivityInstrumentation(final Activity activity) {
this.activity = activity; this.activity = activity;
def = activity.getActivityDef(); def = activity.getActivityDef();
params = this.def.getParams(); params = this.def.getParams();

View File

@ -19,22 +19,18 @@ package io.nosqlbench.engine.api.activityapi.core;
import io.nosqlbench.engine.api.activityapi.core.progress.ProgressCapable; import io.nosqlbench.engine.api.activityapi.core.progress.ProgressCapable;
import io.nosqlbench.engine.api.activityapi.core.progress.StateCapable; import io.nosqlbench.engine.api.activityapi.core.progress.StateCapable;
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.IntPredicateDispenser; import io.nosqlbench.engine.api.activityapi.cyclelog.filters.IntPredicateDispenser;
import io.nosqlbench.engine.api.activityapi.errorhandling.ErrorMetrics;
import io.nosqlbench.engine.api.activityapi.input.InputDispenser; import io.nosqlbench.engine.api.activityapi.input.InputDispenser;
import io.nosqlbench.engine.api.activityapi.output.OutputDispenser; import io.nosqlbench.engine.api.activityapi.output.OutputDispenser;
import io.nosqlbench.engine.api.activityapi.simrate.RateLimiter; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.activityimpl.motor.RunStateTally;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity;
import io.nosqlbench.nb.api.components.core.NBComponent; import io.nosqlbench.nb.api.components.core.NBComponent;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap;
import java.io.InputStream; import java.io.InputStream;
import java.io.PrintWriter; import java.io.PrintWriter;
/** /**
* Provides the components needed to build and run an activity a runtime. * Provides the components needed to build and run an activity a runtime.
* The easiest way to build a useful StandardActivity is to extend {@link StandardActivity}. * The easiest way to build a useful StandardActivity is to extend {@link Activity}.
*/ */
public interface IActivityWiring extends Comparable<IActivityWiring>, ActivityDefObserver, ProgressCapable, StateCapable, NBComponent { public interface IActivityWiring extends Comparable<IActivityWiring>, ActivityDefObserver, ProgressCapable, StateCapable, NBComponent {

View File

@ -18,7 +18,7 @@ package io.nosqlbench.engine.api.activityapi.core.ops.fluent;
import com.codahale.metrics.Counter; import com.codahale.metrics.Counter;
import com.codahale.metrics.Timer; import com.codahale.metrics.Timer;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver; import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver;
import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.*; import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.*;
@ -43,7 +43,7 @@ public class OpTrackerImpl<D> implements OpTracker<D>, ActivityDefObserver {
private LongFunction<D> cycleOpFunction; private LongFunction<D> cycleOpFunction;
public OpTrackerImpl(StandardActivity activity, long slot) { public OpTrackerImpl(Activity activity, long slot) {
this.slot = slot; this.slot = slot;
this.label = "tracker-" + slot + "_" + activity.getAlias(); this.label = "tracker-" + slot + "_" + activity.getAlias();

View File

@ -16,7 +16,7 @@
package io.nosqlbench.engine.api.activityapi.core.progress; package io.nosqlbench.engine.api.activityapi.core.progress;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricTimer; import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricTimer;
import io.nosqlbench.nb.api.engine.util.Unit; import io.nosqlbench.nb.api.engine.util.Unit;
@ -24,12 +24,12 @@ import java.time.Instant;
public class ActivityMetricProgressMeter implements ProgressMeterDisplay, CompletedMeter, RemainingMeter, ActiveMeter { public class ActivityMetricProgressMeter implements ProgressMeterDisplay, CompletedMeter, RemainingMeter, ActiveMeter {
private final StandardActivity activity; private final Activity activity;
private final Instant startInstant; private final Instant startInstant;
private final NBMetricTimer bindTimer; private final NBMetricTimer bindTimer;
private final NBMetricTimer cyclesTimer; private final NBMetricTimer cyclesTimer;
public ActivityMetricProgressMeter(StandardActivity activity) { public ActivityMetricProgressMeter(Activity activity) {
this.activity = activity; this.activity = activity;
this.startInstant = Instant.ofEpochMilli(activity.getStartedAtMillis()); this.startInstant = Instant.ofEpochMilli(activity.getStartedAtMillis());
this.bindTimer = activity.bindTimer; this.bindTimer = activity.bindTimer;

View File

@ -16,7 +16,7 @@
package io.nosqlbench.engine.api.activityapi.cyclelog.filters; package io.nosqlbench.engine.api.activityapi.cyclelog.filters;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.util.SimpleConfig; import io.nosqlbench.engine.api.util.SimpleConfig;
import io.nosqlbench.nb.annotations.Maturity; import io.nosqlbench.nb.annotations.Maturity;
import io.nosqlbench.nb.api.spi.SimpleServiceLoader; import io.nosqlbench.nb.api.spi.SimpleServiceLoader;
@ -28,7 +28,7 @@ public interface ExperimentalResultFilterType {
SimpleServiceLoader<ExperimentalResultFilterType> FINDER = SimpleServiceLoader<ExperimentalResultFilterType> FINDER =
new SimpleServiceLoader<>(ExperimentalResultFilterType.class, Maturity.Any); new SimpleServiceLoader<>(ExperimentalResultFilterType.class, Maturity.Any);
default IntPredicateDispenser getFilterDispenser(StandardActivity activity) { default IntPredicateDispenser getFilterDispenser(Activity activity) {
SimpleConfig conf = new SimpleConfig(activity.getWiring(), "resultfilter"); SimpleConfig conf = new SimpleConfig(activity.getWiring(), "resultfilter");
return getFilterDispenser(conf); return getFilterDispenser(conf);
} }

View File

@ -16,7 +16,7 @@
package io.nosqlbench.engine.api.activityapi.cyclelog.inputs.cyclelog; package io.nosqlbench.engine.api.activityapi.cyclelog.inputs.cyclelog;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.components.core.NBBaseComponent; import io.nosqlbench.nb.api.components.core.NBBaseComponent;
import io.nosqlbench.nb.api.components.core.NBComponent; import io.nosqlbench.nb.api.components.core.NBComponent;
import io.nosqlbench.nb.api.labels.NBLabeledElement; import io.nosqlbench.nb.api.labels.NBLabeledElement;
@ -50,7 +50,7 @@ public class CycleLogInput extends NBBaseComponent implements Input, AutoCloseab
private Iterator<CycleResult> segmentIter; private Iterator<CycleResult> segmentIter;
private Predicate<ResultReadable> filter; private Predicate<ResultReadable> filter;
public CycleLogInput(StandardActivity activity) { public CycleLogInput(Activity activity) {
super(activity, NBLabels.forKV("input","cyclelog")); super(activity, NBLabels.forKV("input","cyclelog"));
SimpleConfig conf = new SimpleConfig(activity.getActivityDef(), "input"); SimpleConfig conf = new SimpleConfig(activity.getActivityDef(), "input");
mbb = mbb =

View File

@ -19,23 +19,23 @@ package io.nosqlbench.engine.api.activityapi.cyclelog.inputs.cyclelog;
import io.nosqlbench.engine.api.activityapi.input.Input; import io.nosqlbench.engine.api.activityapi.input.Input;
import io.nosqlbench.engine.api.activityapi.input.InputDispenser; import io.nosqlbench.engine.api.activityapi.input.InputDispenser;
import io.nosqlbench.engine.api.activityapi.input.InputType; import io.nosqlbench.engine.api.activityapi.input.InputType;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.annotations.Service; import io.nosqlbench.nb.annotations.Service;
@Service(value = InputType.class, selector = "cyclelog") @Service(value = InputType.class, selector = "cyclelog")
public class CycleLogInputType implements InputType { public class CycleLogInputType implements InputType {
@Override @Override
public InputDispenser getInputDispenser(StandardActivity activity) { public InputDispenser getInputDispenser(Activity activity) {
return new CycleLogInputDispenser(activity); return new CycleLogInputDispenser(activity);
} }
public static class CycleLogInputDispenser implements InputDispenser { public static class CycleLogInputDispenser implements InputDispenser {
private final StandardActivity activity; private final Activity activity;
private final Input input; private final Input input;
public CycleLogInputDispenser(StandardActivity activity) { public CycleLogInputDispenser(Activity activity) {
this.activity = activity; this.activity = activity;
this.input = new CycleLogInput(activity); this.input = new CycleLogInput(activity);
} }

View File

@ -18,7 +18,7 @@ package io.nosqlbench.engine.api.activityapi.cyclelog.outputs.logger;
import io.nosqlbench.engine.api.activityapi.output.Output; import io.nosqlbench.engine.api.activityapi.output.Output;
import io.nosqlbench.engine.api.activityapi.output.OutputDispenser; import io.nosqlbench.engine.api.activityapi.output.OutputDispenser;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.annotations.Service; import io.nosqlbench.nb.annotations.Service;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -27,9 +27,9 @@ import org.apache.logging.log4j.Logger;
public class LoggingMarkerDispenser implements OutputDispenser { public class LoggingMarkerDispenser implements OutputDispenser {
private final static Logger logger = LogManager.getLogger(LoggingMarkerDispenser.class); private final static Logger logger = LogManager.getLogger(LoggingMarkerDispenser.class);
private final StandardActivity activity; private final Activity activity;
public LoggingMarkerDispenser(StandardActivity activity) { public LoggingMarkerDispenser(Activity activity) {
this.activity = activity; this.activity = activity;
} }

View File

@ -16,7 +16,7 @@
package io.nosqlbench.engine.api.activityapi.input; package io.nosqlbench.engine.api.activityapi.input;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.annotations.Maturity; import io.nosqlbench.nb.annotations.Maturity;
import io.nosqlbench.nb.api.spi.SimpleServiceLoader; import io.nosqlbench.nb.api.spi.SimpleServiceLoader;
@ -25,5 +25,5 @@ public interface InputType {
SimpleServiceLoader<InputType> FINDER = SimpleServiceLoader<InputType> FINDER =
new SimpleServiceLoader<>(InputType.class, Maturity.Any); new SimpleServiceLoader<>(InputType.class, Maturity.Any);
InputDispenser getInputDispenser(StandardActivity parent); InputDispenser getInputDispenser(Activity parent);
} }

View File

@ -16,9 +16,9 @@
package io.nosqlbench.engine.api.activityimpl; package io.nosqlbench.engine.api.activityimpl;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
public interface ActivityDispenser { public interface ActivityDispenser {
StandardActivity getActivity(ActivityDef activityDef); Activity getActivity(ActivityDef activityDef);
} }

View File

@ -17,8 +17,8 @@
package io.nosqlbench.engine.api.activityimpl; package io.nosqlbench.engine.api.activityimpl;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.ResultReadable; import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.ResultReadable;
import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring; import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity;
import io.nosqlbench.engine.api.util.SimpleConfig; import io.nosqlbench.engine.api.util.SimpleConfig;
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.ResultFilterDispenser; import io.nosqlbench.engine.api.activityapi.cyclelog.filters.ResultFilterDispenser;
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.ResultValueFilterType; import io.nosqlbench.engine.api.activityapi.cyclelog.filters.ResultValueFilterType;
@ -33,7 +33,7 @@ import java.util.function.Predicate;
public class CoreServices { public class CoreServices {
private static StandardActivity parent; private static Activity parent;
public static <A> Optional<OutputDispenser> getOutputDispenser( public static <A> Optional<OutputDispenser> getOutputDispenser(
NBComponent parent, ActivityWiring activity) { NBComponent parent, ActivityWiring activity) {
@ -69,7 +69,7 @@ public class CoreServices {
// return intPredicateDispenser; // return intPredicateDispenser;
// } // }
// //
public static <A> InputDispenser getInputDispenser(StandardActivity activity) { public static <A> InputDispenser getInputDispenser(Activity activity) {
String inputTypeName = new SimpleConfig(activity, "input").getString("type").orElse("atomicseq"); String inputTypeName = new SimpleConfig(activity, "input").getString("type").orElse("atomicseq");
InputType inputType = InputType.FINDER.getOrThrow(inputTypeName); InputType inputType = InputType.FINDER.getOrThrow(inputTypeName);
InputDispenser dispenser = inputType.getInputDispenser(activity); InputDispenser dispenser = inputType.getInputDispenser(activity);
@ -80,7 +80,7 @@ public class CoreServices {
return dispenser; return dispenser;
} }
public static <A> Optional<Predicate<ResultReadable>> getInputFilter(StandardActivity activity) { public static <A> Optional<Predicate<ResultReadable>> getInputFilter(Activity activity) {
String paramdata= activity.getParams().getOptionalString("if") String paramdata= activity.getParams().getOptionalString("if")
.orElse(activity.getParams().getOptionalString("inputfilter").orElse(null)); .orElse(activity.getParams().getOptionalString("inputfilter").orElse(null));
if (paramdata==null) { if (paramdata==null) {

View File

@ -16,7 +16,7 @@
package io.nosqlbench.engine.api.activityimpl.input; package io.nosqlbench.engine.api.activityimpl.input;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.util.SimpleConfig; import io.nosqlbench.engine.api.util.SimpleConfig;
import io.nosqlbench.engine.api.activityapi.core.ActivitiesAware; import io.nosqlbench.engine.api.activityapi.core.ActivitiesAware;
import io.nosqlbench.engine.api.activityapi.input.Input; import io.nosqlbench.engine.api.activityapi.input.Input;
@ -27,11 +27,11 @@ import java.util.Map;
public class CoreInputDispenser implements InputDispenser, ActivitiesAware { public class CoreInputDispenser implements InputDispenser, ActivitiesAware {
private final StandardActivity activity; private final Activity activity;
private Map<String, StandardActivity> activities; private Map<String, Activity> activities;
private Input input; private Input input;
public CoreInputDispenser(StandardActivity activity) { public CoreInputDispenser(Activity activity) {
this.activity = activity; this.activity = activity;
} }
@ -56,7 +56,7 @@ public class CoreInputDispenser implements InputDispenser, ActivitiesAware {
} }
@Override @Override
public void setActivitiesMap(Map<String, StandardActivity> activities) { public void setActivitiesMap(Map<String, Activity> activities) {
this.activities = activities; this.activities = activities;
} }

View File

@ -19,23 +19,23 @@ package io.nosqlbench.engine.api.activityimpl.input;
import io.nosqlbench.engine.api.activityapi.input.Input; import io.nosqlbench.engine.api.activityapi.input.Input;
import io.nosqlbench.engine.api.activityapi.input.InputDispenser; import io.nosqlbench.engine.api.activityapi.input.InputDispenser;
import io.nosqlbench.engine.api.activityapi.input.InputType; import io.nosqlbench.engine.api.activityapi.input.InputType;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.annotations.Service; import io.nosqlbench.nb.annotations.Service;
@Service(value= InputType.class, selector="atomicseq") @Service(value= InputType.class, selector="atomicseq")
public class TargetRateInputType implements InputType { public class TargetRateInputType implements InputType {
@Override @Override
public InputDispenser getInputDispenser(StandardActivity activity) { public InputDispenser getInputDispenser(Activity activity) {
return new Dispenser(activity); return new Dispenser(activity);
} }
public static class Dispenser implements InputDispenser { public static class Dispenser implements InputDispenser {
private final StandardActivity activity; private final Activity activity;
private final AtomicInput input; private final AtomicInput input;
public Dispenser(StandardActivity activity) { public Dispenser(Activity activity) {
this.activity = activity; this.activity = activity;
this.input = new AtomicInput(activity, activity.getActivityDef()); this.input = new AtomicInput(activity, activity.getActivityDef());
} }

View File

@ -20,7 +20,7 @@ import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResult
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResult; import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResult;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResultsIntervalSegment; import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResultsIntervalSegment;
import io.nosqlbench.engine.api.activityapi.output.Output; import io.nosqlbench.engine.api.activityapi.output.Output;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
@ -71,7 +71,7 @@ public class ContiguousOutputChunker implements Output {
initExtents(); initExtents();
} }
public ContiguousOutputChunker(StandardActivity activity) { public ContiguousOutputChunker(Activity activity) {
if (!(activity.getWiring().getInputDispenserDelegate().getInput(0).isContiguous())) { if (!(activity.getWiring().getInputDispenserDelegate().getInput(0).isContiguous())) {
throw new RuntimeException("This type of output may not be used with non-contiguous inputs yet."); throw new RuntimeException("This type of output may not be used with non-contiguous inputs yet.");

View File

@ -25,12 +25,9 @@ import io.nosqlbench.engine.api.activityapi.core.ops.fluent.OpTracker;
import io.nosqlbench.engine.api.activityapi.input.Input; import io.nosqlbench.engine.api.activityapi.input.Input;
import io.nosqlbench.engine.api.activityapi.output.Output; import io.nosqlbench.engine.api.activityapi.output.Output;
import io.nosqlbench.engine.api.activityapi.simrate.RateLimiter; import io.nosqlbench.engine.api.activityapi.simrate.RateLimiter;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.components.core.NBBaseComponent; import io.nosqlbench.nb.api.components.core.NBBaseComponent;
import io.nosqlbench.nb.api.components.core.NBComponent;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.engine.metrics.instruments.MetricCategory;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricTimer;
import io.nosqlbench.nb.api.labels.NBLabels; import io.nosqlbench.nb.api.labels.NBLabels;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
@ -55,7 +52,7 @@ public class CoreMotor<D> extends NBBaseComponent implements ActivityDefObserver
private static final Logger logger = LogManager.getLogger(CoreMotor.class); private static final Logger logger = LogManager.getLogger(CoreMotor.class);
private final long slotId; private final long slotId;
private final StandardActivity activity; private final Activity activity;
private Timer inputTimer; private Timer inputTimer;
@ -89,8 +86,9 @@ public class CoreMotor<D> extends NBBaseComponent implements ActivityDefObserver
@param input @param input
A LongSupplier which provides the cycle number inputs. A LongSupplier which provides the cycle number inputs.
*/ */
public CoreMotor(StandardActivity activity, long slotId, Input input, SyncAction action, public CoreMotor(
Output output) { Activity activity, long slotId, Input input, SyncAction action,
Output output) {
super(activity, NBLabels.forKV("motor", "coremotor")); super(activity, NBLabels.forKV("motor", "coremotor"));
this.activity = activity; this.activity = activity;
this.slotId = slotId; this.slotId = slotId;

View File

@ -15,8 +15,7 @@
*/ */
package io.nosqlbench.engine.api.activityimpl.motor; package io.nosqlbench.engine.api.activityimpl.motor;
import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityapi.core.*; import io.nosqlbench.engine.api.activityapi.core.*;
import io.nosqlbench.engine.api.activityapi.input.Input; import io.nosqlbench.engine.api.activityapi.input.Input;
@ -32,15 +31,16 @@ import java.util.function.IntPredicate;
*/ */
public class CoreMotorDispenser<D> implements MotorDispenser<D> { public class CoreMotorDispenser<D> implements MotorDispenser<D> {
private final StandardActivity activity; private final Activity activity;
private final InputDispenser inputDispenser; private final InputDispenser inputDispenser;
private final ActionDispenser actionDispenser; private final ActionDispenser actionDispenser;
private final OutputDispenser outputDispenser; private final OutputDispenser outputDispenser;
public CoreMotorDispenser(StandardActivity activity, public CoreMotorDispenser(
InputDispenser inputDispenser, Activity activity,
ActionDispenser actionDispenser, InputDispenser inputDispenser,
OutputDispenser outputDispenser ActionDispenser actionDispenser,
OutputDispenser outputDispenser
) { ) {
this.activity = activity; this.activity = activity;
this.inputDispenser = inputDispenser; this.inputDispenser = inputDispenser;

View File

@ -86,9 +86,9 @@ import java.util.function.LongFunction;
@param <S> @param <S>
The context type for the activity, AKA the 'space' for a named driver instance and its The context type for the activity, AKA the 'space' for a named driver instance and its
associated object graph */ associated object graph */
public class StandardActivity<R extends java.util.function.LongFunction, S> public class Activity<R extends java.util.function.LongFunction, S>
extends NBStatusComponent implements InvokableResult, SyntheticOpTemplateProvider, ActivityDefObserver, StateCapable, extends NBStatusComponent implements InvokableResult, SyntheticOpTemplateProvider, ActivityDefObserver, StateCapable,
ProgressCapable, Comparable<StandardActivity> { ProgressCapable, Comparable<Activity> {
private static final Logger logger = LogManager.getLogger("ACTIVITY"); private static final Logger logger = LogManager.getLogger("ACTIVITY");
private final OpSequence<OpDispenser<? extends CycleOp<?>>> sequence; private final OpSequence<OpDispenser<? extends CycleOp<?>>> sequence;
private final ConcurrentHashMap<String, DriverAdapter<CycleOp<?>, Space>> adapters = new ConcurrentHashMap<>(); private final ConcurrentHashMap<String, DriverAdapter<CycleOp<?>, Space>> adapters = new ConcurrentHashMap<>();
@ -124,7 +124,7 @@ public class StandardActivity<R extends java.util.function.LongFunction, S>
private static final String RESPONSE_TIME = "_responsetime"; private static final String RESPONSE_TIME = "_responsetime";
private static final String SERVICE_TIME = "_servicetime"; private static final String SERVICE_TIME = "_servicetime";
public StandardActivity(NBComponent parent, ActivityDef activityDef, ActivityWiring wiring) { public Activity(NBComponent parent, ActivityDef activityDef, ActivityWiring wiring) {
super(parent, NBLabels.forKV("activity", activityDef.getAlias()).and(activityDef.auxLabels())); super(parent, NBLabels.forKV("activity", activityDef.getAlias()).and(activityDef.auxLabels()));
this.activityDef = activityDef; this.activityDef = activityDef;
@ -265,7 +265,7 @@ public class StandardActivity<R extends java.util.function.LongFunction, S>
workload = OpsLoader.loadPath(yaml_loc.get(), disposable, "activities"); workload = OpsLoader.loadPath(yaml_loc.get(), disposable, "activities");
yamlmodel = workload.getConfigModel(); yamlmodel = workload.getConfigModel();
} else { } else {
yamlmodel = ConfigModel.of(StandardActivity.class).asReadOnly(); yamlmodel = ConfigModel.of(Activity.class).asReadOnly();
} }
Optional<String> defaultDriverName = activityDef.getParams().getOptionalString("driver"); Optional<String> defaultDriverName = activityDef.getParams().getOptionalString("driver");
@ -283,7 +283,7 @@ public class StandardActivity<R extends java.util.function.LongFunction, S>
// HERE, op templates are loaded before drivers are loaded // HERE, op templates are loaded before drivers are loaded
// List<OpTemplate> opTemplates = loadOpTemplates(defaultAdapter.orElse(null), false); // List<OpTemplate> opTemplates = loadOpTemplates(defaultAdapter.orElse(null), false);
List<DriverAdapter<CycleOp<?>, Space>> adapterlist = new ArrayList<>(); List<DriverAdapter<CycleOp<?>, Space>> adapterlist = new ArrayList<>();
NBConfigModel supersetConfig = ConfigModel.of(StandardActivity.class).add(yamlmodel); NBConfigModel supersetConfig = ConfigModel.of(Activity.class).add(yamlmodel);
Optional<String> defaultDriverOption = defaultDriverName; Optional<String> defaultDriverOption = defaultDriverName;
ConcurrentHashMap<String, OpMapper<? extends CycleOp<?>, ? extends Space>> mappers = new ConcurrentHashMap<>(); ConcurrentHashMap<String, OpMapper<? extends CycleOp<?>, ? extends Space>> mappers = new ConcurrentHashMap<>();
@ -947,7 +947,7 @@ public class StandardActivity<R extends java.util.function.LongFunction, S>
} }
@Override @Override
public int compareTo(StandardActivity o) { public int compareTo(Activity o) {
return this.getActivityDef().getAlias().compareTo(o.getActivityDef().getAlias()); return this.getActivityDef().getAlias().compareTo(o.getActivityDef().getAlias());
} }

View File

@ -1,5 +1,23 @@
package io.nosqlbench.engine.api.activityimpl.uniform; package io.nosqlbench.engine.api.activityimpl.uniform;
/*
* Copyright (c) nosqlbench
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser; import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.MotorDispenser; import io.nosqlbench.engine.api.activityapi.core.MotorDispenser;
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.IntPredicateDispenser; import io.nosqlbench.engine.api.activityapi.cyclelog.filters.IntPredicateDispenser;

View File

@ -20,9 +20,9 @@ import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityimpl.uniform.actions.StandardAction; import io.nosqlbench.engine.api.activityimpl.uniform.actions.StandardAction;
public class StandardActionDispenser implements ActionDispenser { public class StandardActionDispenser implements ActionDispenser {
private final StandardActivity activity; private final Activity activity;
public <A> StandardActionDispenser(StandardActivity activity) { public <A> StandardActionDispenser(Activity activity) {
this.activity = activity; this.activity = activity;
} }

View File

@ -35,7 +35,7 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
public class StandardActivityType<A extends StandardActivity<?,?>> { public class StandardActivityType<A extends Activity<?,?>> {
private static final Logger logger = LogManager.getLogger("ACTIVITY"); private static final Logger logger = LogManager.getLogger("ACTIVITY");
private final Map<String, DriverAdapter> adapters = new HashMap<>(); private final Map<String, DriverAdapter> adapters = new HashMap<>();
@ -75,14 +75,14 @@ public class StandardActivityType<A extends StandardActivity<?,?>> {
if (activityDef.getParams().getOptionalString("async").isPresent()) if (activityDef.getParams().getOptionalString("async").isPresent())
throw new RuntimeException("This driver does not support async mode yet."); throw new RuntimeException("This driver does not support async mode yet.");
return (A) new StandardActivity(parent, activityDef, wiring); return (A) new Activity(parent, activityDef, wiring);
} }
/** /**
* This method will be called <em>once</em> per action instance. * This method will be called <em>once</em> per action instance.
* @return an instance of ActionDispenser * @return an instance of ActionDispenser
*/ */
public ActionDispenser getActionDispenser(final StandardActivity activity) { public ActionDispenser getActionDispenser(final Activity activity) {
return new StandardActionDispenser(activity); return new StandardActionDispenser(activity);
} }
@ -94,13 +94,13 @@ public class StandardActivityType<A extends StandardActivity<?,?>> {
* @param activities a map of existing activities * @param activities a map of existing activities
* @return a distinct activity instance for each call * @return a distinct activity instance for each call
*/ */
public StandardActivity getAssembledActivity( public Activity getAssembledActivity(
final NBComponent parent, final ActivityDef activityDef, final NBComponent parent, final ActivityDef activityDef,
final Map<String, StandardActivity> activities final Map<String, Activity> activities
) { ) {
// final A activity = this.getActivity(activityDef, parent); // final A activity = this.getActivity(activityDef, parent);
ActivityWiring wiring = new ActivityWiring(activityDef); ActivityWiring wiring = new ActivityWiring(activityDef);
StandardActivity activity = new StandardActivity(parent, activityDef, wiring); Activity activity = new Activity(parent, activityDef, wiring);
final InputDispenser inputDispenser = this.getInputDispenser(activity); final InputDispenser inputDispenser = this.getInputDispenser(activity);
if (inputDispenser instanceof ActivitiesAware) ((ActivitiesAware) inputDispenser).setActivitiesMap(activities); if (inputDispenser instanceof ActivitiesAware) ((ActivitiesAware) inputDispenser).setActivitiesMap(activities);
@ -142,12 +142,12 @@ public class StandardActivityType<A extends StandardActivity<?,?>> {
* @param activity the StandardActivity instance which will parameterize this InputDispenser * @param activity the StandardActivity instance which will parameterize this InputDispenser
* @return the InputDispenser for the associated activity * @return the InputDispenser for the associated activity
*/ */
public InputDispenser getInputDispenser(final StandardActivity activity) { public InputDispenser getInputDispenser(final Activity activity) {
return CoreServices.getInputDispenser(activity); return CoreServices.getInputDispenser(activity);
} }
public <T> MotorDispenser<T> getMotorDispenser( public <T> MotorDispenser<T> getMotorDispenser(
final StandardActivity activity, final Activity activity,
final InputDispenser inputDispenser, final InputDispenser inputDispenser,
final ActionDispenser actionDispenser, final ActionDispenser actionDispenser,
final OutputDispenser outputDispenser) { final OutputDispenser outputDispenser) {

View File

@ -16,14 +16,12 @@
package io.nosqlbench.engine.api.activityimpl.uniform.actions; package io.nosqlbench.engine.api.activityimpl.uniform.actions;
import com.codahale.metrics.Histogram;
import com.codahale.metrics.Timer; import com.codahale.metrics.Timer;
import io.nosqlbench.adapters.api.activityimpl.OpDispenser; import io.nosqlbench.adapters.api.activityimpl.OpDispenser;
import io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes.*; import io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes.*;
import io.nosqlbench.adapters.api.evalctx.CycleFunction; import io.nosqlbench.adapters.api.evalctx.CycleFunction;
import io.nosqlbench.engine.api.metrics.ExceptionHistoMetrics; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.components.core.NBBaseComponent; import io.nosqlbench.nb.api.components.core.NBBaseComponent;
import io.nosqlbench.nb.api.components.core.NBComponent;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.engine.metrics.instruments.MetricCategory; import io.nosqlbench.nb.api.engine.metrics.instruments.MetricCategory;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricHistogram; import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricHistogram;
@ -33,12 +31,10 @@ import io.nosqlbench.engine.api.activityapi.core.SyncAction;
import io.nosqlbench.engine.api.activityapi.errorhandling.modular.ErrorDetail; import io.nosqlbench.engine.api.activityapi.errorhandling.modular.ErrorDetail;
import io.nosqlbench.engine.api.activityapi.errorhandling.modular.NBErrorHandler; import io.nosqlbench.engine.api.activityapi.errorhandling.modular.NBErrorHandler;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence; import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity;
import io.nosqlbench.nb.api.labels.NBLabels; import io.nosqlbench.nb.api.labels.NBLabels;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
@ -51,7 +47,7 @@ import java.util.concurrent.TimeUnit;
The type of activity The type of activity
@param <R> @param <R>
The type of operation */ The type of operation */
public class StandardAction<A extends StandardActivity<R, ?>, R extends java.util.function.LongFunction> extends NBBaseComponent implements SyncAction, ActivityDefObserver { public class StandardAction<A extends Activity<R, ?>, R extends java.util.function.LongFunction> extends NBBaseComponent implements SyncAction, ActivityDefObserver {
private final static Logger logger = LogManager.getLogger("ACTION"); private final static Logger logger = LogManager.getLogger("ACTION");
private final NBErrorHandler errorHandler; private final NBErrorHandler errorHandler;
private final OpSequence<OpDispenser<? extends CycleOp<?>>> opsequence; private final OpSequence<OpDispenser<? extends CycleOp<?>>> opsequence;

View File

@ -17,7 +17,7 @@
package io.nosqlbench.engine.api.util; package io.nosqlbench.engine.api.util;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -34,7 +34,7 @@ public class ConfigTuples implements Iterable<ConfigTuples.Section> {
this.sections = sections; this.sections = sections;
} }
public ConfigTuples(StandardActivity activity, String param) { public ConfigTuples(Activity activity, String param) {
this(activity.getParams().getOptionalString(param).orElse("")); this(activity.getParams().getOptionalString(param).orElse(""));
} }

View File

@ -17,7 +17,7 @@
package io.nosqlbench.engine.api.util; package io.nosqlbench.engine.api.util;
import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring; import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap; import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap;
@ -35,7 +35,7 @@ public class SimpleConfig {
this.params = parseParams(configdata); this.params = parseParams(configdata);
} }
public SimpleConfig(StandardActivity activity, String params) { public SimpleConfig(Activity activity, String params) {
this(activity.getActivityDef(),params); this(activity.getActivityDef(),params);
} }
public SimpleConfig(ActivityWiring wiring, String param) { public SimpleConfig(ActivityWiring wiring, String param) {

View File

@ -16,8 +16,7 @@
package io.nosqlbench.engine.core.lifecycle.activity; package io.nosqlbench.engine.core.lifecycle.activity;
import com.codahale.metrics.Gauge; import com.codahale.metrics.Gauge;
import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity;
import io.nosqlbench.engine.core.lifecycle.IndexedThreadFactory; import io.nosqlbench.engine.core.lifecycle.IndexedThreadFactory;
import io.nosqlbench.nb.api.engine.metrics.instruments.MetricCategory; import io.nosqlbench.nb.api.engine.metrics.instruments.MetricCategory;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricGauge; import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricGauge;
@ -69,7 +68,7 @@ public class ActivityExecutor implements NBLabeledElement, ParameterMap.Listener
private static final Logger activitylogger = LogManager.getLogger("ACTIVITY"); private static final Logger activitylogger = LogManager.getLogger("ACTIVITY");
private final LinkedList<Motor<?>> motors = new LinkedList<>(); private final LinkedList<Motor<?>> motors = new LinkedList<>();
private final StandardActivity activity; private final Activity activity;
private final ActivityDef activityDef; private final ActivityDef activityDef;
private final RunStateTally tally; private final RunStateTally tally;
private final MotorDispenser motorSource; private final MotorDispenser motorSource;
@ -82,7 +81,7 @@ public class ActivityExecutor implements NBLabeledElement, ParameterMap.Listener
private ActivityExecutorShutdownHook shutdownHook = null; private ActivityExecutorShutdownHook shutdownHook = null;
private NBMetricGauge threadsGauge; private NBMetricGauge threadsGauge;
public ActivityExecutor(StandardActivity activity) { public ActivityExecutor(Activity activity) {
this.activity = activity; this.activity = activity;
this.activityDef = activity.getActivityDef(); this.activityDef = activity.getActivityDef();
this.motorSource = activity.getWiring().getMotorDispenserDelegate(); this.motorSource = activity.getWiring().getMotorDispenserDelegate();
@ -380,7 +379,7 @@ public class ActivityExecutor implements NBLabeledElement, ParameterMap.Listener
return motors.stream().anyMatch(m -> m.getState().get() == RunState.Running); return motors.stream().anyMatch(m -> m.getState().get() == RunState.Running);
} }
public StandardActivity getActivity() { public Activity getActivity() {
return activity; return activity;
} }

View File

@ -16,7 +16,7 @@
package io.nosqlbench.engine.core.lifecycle.activity; package io.nosqlbench.engine.core.lifecycle.activity;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.components.core.NBComponent; import io.nosqlbench.nb.api.components.core.NBComponent;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivityType; import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivityType;
@ -33,14 +33,14 @@ import java.util.concurrent.ConcurrentHashMap;
*/ */
public class ActivityLoader { public class ActivityLoader {
private static final Logger logger = LogManager.getLogger("ACTIVITIES"); private static final Logger logger = LogManager.getLogger("ACTIVITIES");
private final Map<String, StandardActivity> activityMap = new ConcurrentHashMap<>(); private final Map<String, Activity> activityMap = new ConcurrentHashMap<>();
public ActivityLoader() { public ActivityLoader() {
} }
public synchronized StandardActivity loadActivity(ActivityDef activityDef, final NBComponent parent) { public synchronized Activity loadActivity(ActivityDef activityDef, final NBComponent parent) {
activityDef= activityDef.deprecate("yaml","workload").deprecate("type","driver"); activityDef= activityDef.deprecate("yaml","workload").deprecate("type","driver");
final StandardActivity activity = final Activity activity =
new StandardActivityType<>(activityDef, parent).getAssembledActivity(parent, activityDef, this.activityMap);this.activityMap.put(activity.getAlias(),activity); new StandardActivityType<>(activityDef, parent).getAssembledActivity(parent, activityDef, this.activityMap);this.activityMap.put(activity.getAlias(),activity);
ActivityLoader.logger.debug("Resolved activity for alias '{}'", activityDef.getAlias()); ActivityLoader.logger.debug("Resolved activity for alias '{}'", activityDef.getAlias());
return activity; return activity;

View File

@ -19,7 +19,7 @@ package io.nosqlbench.engine.core.lifecycle.activity;
import io.nosqlbench.engine.api.activityapi.core.RunState; import io.nosqlbench.engine.api.activityapi.core.RunState;
import io.nosqlbench.engine.api.activityapi.core.progress.ProgressCapable; import io.nosqlbench.engine.api.activityapi.core.progress.ProgressCapable;
import io.nosqlbench.engine.api.activityapi.core.progress.ProgressMeterDisplay; import io.nosqlbench.engine.api.activityapi.core.progress.ProgressMeterDisplay;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.ExecutionResult; import io.nosqlbench.engine.core.lifecycle.ExecutionResult;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -32,12 +32,13 @@ import java.util.concurrent.TimeoutException;
public class ActivityRuntimeInfo implements ProgressCapable { public class ActivityRuntimeInfo implements ProgressCapable {
private final static Logger logger = LogManager.getLogger(ActivityRuntimeInfo.class); private final static Logger logger = LogManager.getLogger(ActivityRuntimeInfo.class);
private final StandardActivity activity; private final Activity activity;
private final Future<ExecutionResult> future; private final Future<ExecutionResult> future;
private final ActivityExecutor executor; private final ActivityExecutor executor;
public ActivityRuntimeInfo(StandardActivity activity, Future<ExecutionResult> result, public ActivityRuntimeInfo(
ActivityExecutor executor) { Activity activity, Future<ExecutionResult> result,
ActivityExecutor executor) {
this.activity = activity; this.activity = activity;
this.future = result; this.future = result;
@ -73,7 +74,7 @@ public class ActivityRuntimeInfo implements ProgressCapable {
return result; return result;
} }
public StandardActivity getActivity() { public Activity getActivity() {
return this.activity; return this.activity;
} }

View File

@ -16,7 +16,7 @@
package io.nosqlbench.engine.core.lifecycle.commands; package io.nosqlbench.engine.core.lifecycle.commands;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams;
@ -44,7 +44,7 @@ public class CMD_stop extends NBBaseCommand {
= params.maybeGet("activity").orElseThrow( = params.maybeGet("activity").orElseThrow(
() -> new RuntimeException("The stop command requires an 'activity' parameter") () -> new RuntimeException("The stop command requires an 'activity' parameter")
); );
Optional<StandardActivity> activity = controller.getActivity(activityName); Optional<Activity> activity = controller.getActivity(activityName);
if (activity.isEmpty()) { if (activity.isEmpty()) {
BasicError error = new BasicError("Activity '" + activityName + "' was not found for stop command."); BasicError error = new BasicError("Activity '" + activityName + "' was not found for stop command.");
logger.warn(error); logger.warn(error);

View File

@ -15,7 +15,7 @@
*/ */
package io.nosqlbench.engine.core.lifecycle.scenario.container; package io.nosqlbench.engine.core.lifecycle.scenario.container;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap; import io.nosqlbench.nb.api.engine.activityimpl.ParameterMap;
import io.nosqlbench.nb.api.components.core.NBComponent; import io.nosqlbench.nb.api.components.core.NBComponent;
@ -65,7 +65,7 @@ public class ContainerActivitiesController extends NBBaseComponent {
* *
* @param activityDef string in alias=value1;driver=value2;... format * @param activityDef string in alias=value1;driver=value2;... format
*/ */
public StandardActivity start(ActivityDef activityDef) { public Activity start(ActivityDef activityDef) {
ActivityRuntimeInfo ari = doStartActivity(activityDef); ActivityRuntimeInfo ari = doStartActivity(activityDef);
return ari.getActivity(); return ari.getActivity();
} }
@ -73,7 +73,7 @@ public class ContainerActivitiesController extends NBBaseComponent {
private ActivityRuntimeInfo doStartActivity(ActivityDef activityDef) { private ActivityRuntimeInfo doStartActivity(ActivityDef activityDef) {
if (!this.activityInfoMap.containsKey(activityDef.getAlias())) { if (!this.activityInfoMap.containsKey(activityDef.getAlias())) {
StandardActivity activity = this.activityLoader.loadActivity(activityDef, this); Activity activity = this.activityLoader.loadActivity(activityDef, this);
activity.initActivity(); activity.initActivity();
ActivityExecutor executor = new ActivityExecutor(activity); ActivityExecutor executor = new ActivityExecutor(activity);
Future<ExecutionResult> startedActivity = executorService.submit(executor); Future<ExecutionResult> startedActivity = executorService.submit(executor);
@ -91,9 +91,9 @@ public class ContainerActivitiesController extends NBBaseComponent {
* *
* @param activityDefMap A map containing the activity definition * @param activityDefMap A map containing the activity definition
*/ */
public StandardActivity start(Map<String, String> activityDefMap) { public Activity start(Map<String, String> activityDefMap) {
ActivityDef ad = new ActivityDef(new ParameterMap(activityDefMap)); ActivityDef ad = new ActivityDef(new ParameterMap(activityDefMap));
StandardActivity started = start(ad); Activity started = start(ad);
awaitAllThreadsOnline(started,30000L); awaitAllThreadsOnline(started,30000L);
return started; return started;
} }
@ -104,7 +104,7 @@ public class ContainerActivitiesController extends NBBaseComponent {
* *
* @param alias the alias of an activity that is already known to the scenario * @param alias the alias of an activity that is already known to the scenario
*/ */
public StandardActivity start(String alias) { public Activity start(String alias) {
return start(ActivityDef.parseActivityDef(alias)); return start(ActivityDef.parseActivityDef(alias));
} }
@ -186,12 +186,12 @@ public class ContainerActivitiesController extends NBBaseComponent {
return runtimeInfo.awaitAllThreadsOnline(timeoutMs); return runtimeInfo.awaitAllThreadsOnline(timeoutMs);
} }
public synchronized void stop(StandardActivity activity) { public synchronized void stop(Activity activity) {
stop(activity.getActivityDef()); stop(activity.getActivityDef());
} }
public boolean awaitAllThreadsOnline(StandardActivity activity, long timeoutMs) { public boolean awaitAllThreadsOnline(Activity activity, long timeoutMs) {
return awaitAllThreadsOnline(activity.getActivityDef(), timeoutMs); return awaitAllThreadsOnline(activity.getActivityDef(), timeoutMs);
} }
@ -442,13 +442,13 @@ public class ContainerActivitiesController extends NBBaseComponent {
// ActivityMetrics.reportTo(System.out); // ActivityMetrics.reportTo(System.out);
} }
public Optional<StandardActivity> getSoloActivity() { public Optional<Activity> getSoloActivity() {
if (this.getActivityExecutorMap().size()==1) { if (this.getActivityExecutorMap().size()==1) {
return Optional.of(activityInfoMap.values().iterator().next().getActivity()); return Optional.of(activityInfoMap.values().iterator().next().getActivity());
} }
return Optional.empty(); return Optional.empty();
} }
public Optional<StandardActivity> getActivity(String activityName) { public Optional<Activity> getActivity(String activityName) {
return Optional.ofNullable(this.activityInfoMap.get(activityName)).map(ActivityRuntimeInfo::getActivity); return Optional.ofNullable(this.activityInfoMap.get(activityName)).map(ActivityRuntimeInfo::getActivity);
} }

View File

@ -16,8 +16,8 @@
package io.nosqlbench.engine.core; package io.nosqlbench.engine.core;
import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring; import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivityType; import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivityType;
import io.nosqlbench.nb.api.config.standard.TestComponent; import io.nosqlbench.nb.api.config.standard.TestComponent;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
@ -92,7 +92,7 @@ class ActivityExecutorTest {
ActivityDef activityDef = ActivityDef.parseActivityDef( ActivityDef activityDef = ActivityDef.parseActivityDef(
"driver=diag;alias=test-delayed-start;cycles=1000;initdelay=2000;"); "driver=diag;alias=test-delayed-start;cycles=1000;initdelay=2000;");
new ActivityTypeLoader().load(activityDef, TestComponent.INSTANCE); new ActivityTypeLoader().load(activityDef, TestComponent.INSTANCE);
StandardActivity activity = new DelayedInitActivity(activityDef); Activity activity = new DelayedInitActivity(activityDef);
fail("Expected an Advisor exception"); fail("Expected an Advisor exception");
} catch (NBAdvisorException e) { } catch (NBAdvisorException e) {
assertThat(e.toString().contains("error")); assertThat(e.toString().contains("error"));
@ -110,7 +110,7 @@ class ActivityExecutorTest {
// StandardActivity activity = new DelayedInitActivity(activityDef); // StandardActivity activity = new DelayedInitActivity(activityDef);
ActivityWiring wiring = new ActivityWiring(activityDef); ActivityWiring wiring = new ActivityWiring(activityDef);
StandardActivity activity = standardActivityType.get().getActivity( Activity activity = standardActivityType.get().getActivity(
activityDef, TestComponent.INSTANCE, wiring); activityDef, TestComponent.INSTANCE, wiring);
final InputDispenser inputDispenser = new CoreInputDispenser(activity); final InputDispenser inputDispenser = new CoreInputDispenser(activity);
final ActionDispenser actionDispenser = new CoreActionDispenser(wiring); final ActionDispenser actionDispenser = new CoreActionDispenser(wiring);
@ -151,7 +151,7 @@ class ActivityExecutorTest {
new ActivityTypeLoader().load(activityDef, TestComponent.INSTANCE); new ActivityTypeLoader().load(activityDef, TestComponent.INSTANCE);
ActivityWiring wiring = new ActivityWiring(activityDef); ActivityWiring wiring = new ActivityWiring(activityDef);
StandardActivity activity = new StandardActivity( Activity activity = new Activity(
TestComponent.INSTANCE, activityDef, wiring); TestComponent.INSTANCE, activityDef, wiring);
final InputDispenser inputDispenser = new CoreInputDispenser(activity); final InputDispenser inputDispenser = new CoreInputDispenser(activity);
@ -166,7 +166,7 @@ class ActivityExecutorTest {
wiring.setInputDispenserDelegate(inputDispenser); wiring.setInputDispenserDelegate(inputDispenser);
wiring.setMotorDispenserDelegate(motorDispenser); wiring.setMotorDispenserDelegate(motorDispenser);
StandardActivity simpleActivity = new StandardActivity<>( Activity simpleActivity = new Activity<>(
TestComponent.INSTANCE, TestComponent.INSTANCE,
activityDef, wiring activityDef, wiring
); );
@ -207,7 +207,7 @@ class ActivityExecutorTest {
return new MotorDispenser<>() { return new MotorDispenser<>() {
@Override @Override
public Motor getMotor(final ActivityDef activityDef, final int slotId) { public Motor getMotor(final ActivityDef activityDef, final int slotId) {
final StandardActivity activity = new StandardActivity( final Activity activity = new Activity(
TestComponent.INSTANCE, activityDef, ActivityWiring.of(activityDef)); TestComponent.INSTANCE, activityDef, ActivityWiring.of(activityDef));
final Motor<?> cm = new CoreMotor<>(activity, slotId, ls, lc, null); final Motor<?> cm = new CoreMotor<>(activity, slotId, ls, lc, null);
return cm; return cm;
@ -231,7 +231,7 @@ class ActivityExecutorTest {
} }
private static class DelayedInitActivity extends StandardActivity { private static class DelayedInitActivity extends Activity {
private static final Logger logger = LogManager.getLogger(DelayedInitActivity.class); private static final Logger logger = LogManager.getLogger(DelayedInitActivity.class);
public DelayedInitActivity(final ActivityDef activityDef) { public DelayedInitActivity(final ActivityDef activityDef) {

View File

@ -16,8 +16,8 @@
package io.nosqlbench.engine.core; package io.nosqlbench.engine.core;
import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring; import io.nosqlbench.engine.api.activityimpl.uniform.ActivityWiring;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity;
import io.nosqlbench.nb.api.config.standard.TestComponent; import io.nosqlbench.nb.api.config.standard.TestComponent;
import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef; import io.nosqlbench.nb.api.engine.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityapi.core.Motor; import io.nosqlbench.engine.api.activityapi.core.Motor;
@ -37,7 +37,7 @@ public class CoreMotorTest {
@Test @Test
public void testBasicActivityMotor() { public void testBasicActivityMotor() {
ActivityDef activityDef = ActivityDef.parseActivityDef("alias=foo"); ActivityDef activityDef = ActivityDef.parseActivityDef("alias=foo");
final StandardActivity activity = new StandardActivity<>( final Activity activity = new Activity<>(
new TestComponent("testing", "coremotor"), activityDef, ActivityWiring.of(activityDef)); new TestComponent("testing", "coremotor"), activityDef, ActivityWiring.of(activityDef));
final BlockingSegmentInput lockstepper = new BlockingSegmentInput(); final BlockingSegmentInput lockstepper = new BlockingSegmentInput();
final AtomicLong observableAction = new AtomicLong(-3L); final AtomicLong observableAction = new AtomicLong(-3L);
@ -60,7 +60,7 @@ public class CoreMotorTest {
@Test @Test
public void testIteratorStride() { public void testIteratorStride() {
ActivityDef activityDef = ActivityDef.parseActivityDef("stride=3"); ActivityDef activityDef = ActivityDef.parseActivityDef("stride=3");
StandardActivity activity = new StandardActivity( Activity activity = new Activity(
TestComponent.INSTANCE, activityDef, ActivityWiring.of(activityDef)); TestComponent.INSTANCE, activityDef, ActivityWiring.of(activityDef));
final BlockingSegmentInput lockstepper = new BlockingSegmentInput(); final BlockingSegmentInput lockstepper = new BlockingSegmentInput();
final AtomicLongArray ary = new AtomicLongArray(10); final AtomicLongArray ary = new AtomicLongArray(10);

View File

@ -16,7 +16,7 @@
package io.nosqlbench.nbr.examples.injava; package io.nosqlbench.nbr.examples.injava;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand; import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand;
@ -107,7 +107,7 @@ public class NB_cocycledelay_bursty extends NBBaseCommand {
controller.waitMillis(500); controller.waitMillis(500);
stdout.println("starting activity co_cycle_delay_bursty"); stdout.println("starting activity co_cycle_delay_bursty");
StandardActivity activity = controller.start(co_cycle_delay_bursty); Activity activity = controller.start(co_cycle_delay_bursty);
controller.waitMillis(1000); controller.waitMillis(1000);
NBMetricTimer service_time_counter = container.find().topMetric("activity=co_cycle_delay_bursty,name=cycles_servicetime", NBMetricTimer.class); NBMetricTimer service_time_counter = container.find().topMetric("activity=co_cycle_delay_bursty,name=cycles_servicetime", NBMetricTimer.class);

View File

@ -16,7 +16,7 @@
package io.nosqlbench.nbr.examples.injava; package io.nosqlbench.nbr.examples.injava;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams;
@ -57,7 +57,7 @@ public class NB_readmetrics extends NBBaseCommand {
*/ */
@Override @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) {
StandardActivity activity = controller.start(Map.of( Activity activity = controller.start(Map.of(
"alias", "testactivity", "alias", "testactivity",
"driver", "diag", "driver", "diag",
"cycles", "0..1000000000", "cycles", "0..1000000000",

View File

@ -16,7 +16,7 @@
package io.nosqlbench.nbr.examples.injava; package io.nosqlbench.nbr.examples.injava;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand; import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
@ -47,7 +47,7 @@ public class NB_threadchange extends NBBaseCommand {
@Override @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) {
StandardActivity activity = controller.start( Activity activity = controller.start(
"driver=diag;alias=threadchange;cycles=0..60000;threads=1;interval=2000;op='noop';rate=1000"); "driver=diag;alias=threadchange;cycles=0..60000;threads=1;interval=2000;op='noop';rate=1000");
activity.getActivityDef().setThreads(1); activity.getActivityDef().setThreads(1);
stdout.println("threads now " + activity.getActivityDef().getThreads()); stdout.println("threads now " + activity.getActivityDef().getThreads());

View File

@ -18,7 +18,7 @@ package io.nosqlbench.scenarios.simframe;
import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec;
import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.nb.api.components.events.ParamChange; import io.nosqlbench.nb.api.components.events.ParamChange;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricTimer; import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricTimer;
@ -29,7 +29,7 @@ import java.util.concurrent.locks.LockSupport;
public class SimFrameUtils { public class SimFrameUtils {
public static final String SIM_CYCLES = "sim_cycles"; public static final String SIM_CYCLES = "sim_cycles";
public static void awaitActivity(StandardActivity flywheel) { public static void awaitActivity(Activity flywheel) {
// await flywheel actually spinning, or timeout with error // await flywheel actually spinning, or timeout with error
NBMetricTimer result_success_timer = flywheel.find().timer("name:result_success"); NBMetricTimer result_success_timer = flywheel.find().timer("name:result_success");
for (int i = 0; i < 1000; i++) { for (int i = 0; i < 1000; i++) {
@ -44,12 +44,12 @@ public class SimFrameUtils {
} }
} }
public static StandardActivity findFlywheelActivity(ContainerActivitiesController controller, String providedActivityName) { public static Activity findFlywheelActivity(ContainerActivitiesController controller, String providedActivityName) {
Optional<StandardActivity> optionalActivity = Optional.ofNullable(providedActivityName).flatMap(controller::getActivity); Optional<Activity> optionalActivity = Optional.ofNullable(providedActivityName).flatMap(controller::getActivity);
if (providedActivityName!=null && optionalActivity.isEmpty()) { if (providedActivityName!=null && optionalActivity.isEmpty()) {
throw new RuntimeException("you specified activity '" + providedActivityName + "' but it was not found."); throw new RuntimeException("you specified activity '" + providedActivityName + "' but it was not found.");
} }
StandardActivity flywheel = optionalActivity.or(controller::getSoloActivity) Activity flywheel = optionalActivity.or(controller::getSoloActivity)
.orElseThrow(() -> new RuntimeException("You didn't provide the name of an activity to attach to, nor was there a solo activity available in this context")); .orElseThrow(() -> new RuntimeException("You didn't provide the name of an activity to attach to, nor was there a solo activity available in this context"));
// Start the flywheel at an "idle" speed, even if the user hasn't set it // Start the flywheel at an "idle" speed, even if the user hasn't set it

View File

@ -16,13 +16,13 @@
package io.nosqlbench.scenarios.simframe.capture; package io.nosqlbench.scenarios.simframe.capture;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricGauge; import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricGauge;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricHistogram; import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricHistogram;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricTimer; import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricTimer;
public class SimFrameValueData extends SimFrameCapture { public class SimFrameValueData extends SimFrameCapture {
public SimFrameValueData(StandardActivity activity) { public SimFrameValueData(Activity activity) {
NBMetricTimer result_timer = activity.find().timer("name:result"); NBMetricTimer result_timer = activity.find().timer("name:result");
NBMetricTimer result_success_timer = activity.find().timer("name:result_success"); NBMetricTimer result_success_timer = activity.find().timer("name:result_success");
NBMetricGauge cyclerate_gauge = activity.find().gauge("name=config_cyclerate"); NBMetricGauge cyclerate_gauge = activity.find().gauge("name=config_cyclerate");

View File

@ -16,7 +16,7 @@
package io.nosqlbench.scenarios.simframe.optimizers; package io.nosqlbench.scenarios.simframe.optimizers;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand; import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
@ -63,7 +63,7 @@ public class CMD_optimize extends NBBaseCommand {
@Override @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) {
StandardActivity flywheel = SimFrameUtils.findFlywheelActivity(controller, params.get("activity")); Activity flywheel = SimFrameUtils.findFlywheelActivity(controller, params.get("activity"));
stdout.println("starting analysis on activity '" + flywheel.getAlias() + "'"); stdout.println("starting analysis on activity '" + flywheel.getAlias() + "'");
SimFrameUtils.awaitActivity(flywheel); SimFrameUtils.awaitActivity(flywheel);
SimFrameCapture capture = new SimFrameValueData(flywheel); SimFrameCapture capture = new SimFrameValueData(flywheel);

View File

@ -19,7 +19,7 @@ package io.nosqlbench.scenarios.simframe.optimizers;
import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec;
import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams;
@ -60,12 +60,12 @@ public class CMD_reset extends NBBaseCommand {
*/ */
@Override @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) {
Optional<StandardActivity> optionalActivity = Optional<Activity> optionalActivity =
Optional.ofNullable(params.get("activity")).flatMap(controller::getActivity); Optional.ofNullable(params.get("activity")).flatMap(controller::getActivity);
if (params.get("activity")!=null && optionalActivity.isEmpty()) { if (params.get("activity")!=null && optionalActivity.isEmpty()) {
throw new RuntimeException("you specified activity '" + params.get("activity") + "' but it was not found."); throw new RuntimeException("you specified activity '" + params.get("activity") + "' but it was not found.");
} }
try (StandardActivity flywheel = optionalActivity.or(controller::getSoloActivity) try (Activity flywheel = optionalActivity.or(controller::getSoloActivity)
.orElseThrow(() -> new RuntimeException("You didn't provide the name of an activity to attach to, nor was there a solo activity available in this context"))) { .orElseThrow(() -> new RuntimeException("You didn't provide the name of an activity to attach to, nor was there a solo activity available in this context"))) {
params.forEach((key, value) -> { params.forEach((key, value) -> {

View File

@ -18,7 +18,7 @@ package io.nosqlbench.scenarios.simframe.optimizers.findmax;
import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec;
import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.engine.core.lifecycle.scenario.container.InvokableResult; import io.nosqlbench.engine.core.lifecycle.scenario.container.InvokableResult;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
@ -48,7 +48,7 @@ public class CMD_findmax extends NBBaseCommand {
@Override @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) {
StandardActivity flywheel = SimFrameUtils.findFlywheelActivity(controller, params.get("activity")); Activity flywheel = SimFrameUtils.findFlywheelActivity(controller, params.get("activity"));
stdout.println("starting analysis on activity '" + flywheel.getAlias() + "'"); stdout.println("starting analysis on activity '" + flywheel.getAlias() + "'");
SimFrameUtils.awaitActivity(flywheel); SimFrameUtils.awaitActivity(flywheel);

View File

@ -17,7 +17,7 @@
package io.nosqlbench.scenarios.simframe.optimizers.findmax; package io.nosqlbench.scenarios.simframe.optimizers.findmax;
import io.nosqlbench.engine.api.activityapi.core.RunState; import io.nosqlbench.engine.api.activityapi.core.RunState;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.scenarios.simframe.capture.SimFrameCapture; import io.nosqlbench.scenarios.simframe.capture.SimFrameCapture;
import io.nosqlbench.scenarios.simframe.capture.SimFrameJournal; import io.nosqlbench.scenarios.simframe.capture.SimFrameJournal;
@ -25,7 +25,7 @@ import io.nosqlbench.scenarios.simframe.planning.SimFrameFunction;
public class FindmaxFrameFunction implements SimFrameFunction<FindmaxFrameParams> { public class FindmaxFrameFunction implements SimFrameFunction<FindmaxFrameParams> {
private final StandardActivity flywheel; private final Activity flywheel;
private final SimFrameCapture capture; private final SimFrameCapture capture;
private final SimFrameJournal<FindmaxFrameParams> journal; private final SimFrameJournal<FindmaxFrameParams> journal;
private final FindmaxConfig settings; private final FindmaxConfig settings;
@ -35,7 +35,7 @@ public class FindmaxFrameFunction implements SimFrameFunction<FindmaxFrameParams
public FindmaxFrameFunction( public FindmaxFrameFunction(
ContainerActivitiesController controller, ContainerActivitiesController controller,
FindmaxConfig settings, FindmaxConfig settings,
StandardActivity flywheel, Activity flywheel,
SimFrameCapture capture, SimFrameCapture capture,
SimFrameJournal<FindmaxFrameParams> journal, SimFrameJournal<FindmaxFrameParams> journal,
FindmaxParamModel model FindmaxParamModel model

View File

@ -16,7 +16,7 @@
package io.nosqlbench.scenarios.simframe.optimizers.optimo; package io.nosqlbench.scenarios.simframe.optimizers.optimo;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBBufferedContainer;
import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand; import io.nosqlbench.engine.core.lifecycle.scenario.execution.NBBaseCommand;
import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricGauge; import io.nosqlbench.nb.api.engine.metrics.instruments.NBMetricGauge;
@ -74,7 +74,7 @@ public class CMD_optimo extends NBBaseCommand {
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) {
// TODO: having "scenario" here as well as in "named scenario" in workload templates is confusing. Make this clearer. // TODO: having "scenario" here as well as in "named scenario" in workload templates is confusing. Make this clearer.
StandardActivity flywheel = SimFrameUtils.findFlywheelActivity(controller, params.get("activity")); Activity flywheel = SimFrameUtils.findFlywheelActivity(controller, params.get("activity"));
stdout.println("starting analysis on activity '" + flywheel.getAlias() + "'"); stdout.println("starting analysis on activity '" + flywheel.getAlias() + "'");
SimFrameUtils.awaitActivity(flywheel); SimFrameUtils.awaitActivity(flywheel);
@ -125,7 +125,7 @@ public class CMD_optimo extends NBBaseCommand {
// could be a better result if the range is arbitrarily limiting the parameter space. // could be a better result if the range is arbitrarily limiting the parameter space.
} }
private SimFrameCapture perfValueMeasures(StandardActivity activity, OptimoSearchSettings settings) { private SimFrameCapture perfValueMeasures(Activity activity, OptimoSearchSettings settings) {
SimFrameCapture sampler = new SimFrameCapture(); SimFrameCapture sampler = new SimFrameCapture();
NBMetricTimer result_timer = activity.find().timer("name:result"); NBMetricTimer result_timer = activity.find().timer("name:result");

View File

@ -17,7 +17,7 @@
package io.nosqlbench.scenarios.simframe.optimizers.optimo; package io.nosqlbench.scenarios.simframe.optimizers.optimo;
import io.nosqlbench.engine.api.activityapi.core.RunState; import io.nosqlbench.engine.api.activityapi.core.RunState;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.scenarios.simframe.capture.SimFrameCapture; import io.nosqlbench.scenarios.simframe.capture.SimFrameCapture;
import io.nosqlbench.scenarios.simframe.capture.SimFrameJournal; import io.nosqlbench.scenarios.simframe.capture.SimFrameJournal;
@ -25,7 +25,7 @@ import io.nosqlbench.scenarios.simframe.planning.SimFrameFunction;
public class OptimoFrameFunction implements SimFrameFunction<OptimoFrameParams> { public class OptimoFrameFunction implements SimFrameFunction<OptimoFrameParams> {
private final StandardActivity flywheel; private final Activity flywheel;
private final SimFrameCapture capture; private final SimFrameCapture capture;
private final SimFrameJournal<OptimoFrameParams> journal; private final SimFrameJournal<OptimoFrameParams> journal;
private final OptimoSearchSettings settings; private final OptimoSearchSettings settings;
@ -34,7 +34,7 @@ public class OptimoFrameFunction implements SimFrameFunction<OptimoFrameParams>
public OptimoFrameFunction( public OptimoFrameFunction(
ContainerActivitiesController controller, ContainerActivitiesController controller,
OptimoSearchSettings settings, OptimoSearchSettings settings,
StandardActivity flywheel, Activity flywheel,
SimFrameCapture capture, SimFrameCapture capture,
SimFrameJournal<OptimoFrameParams> journal SimFrameJournal<OptimoFrameParams> journal
) { ) {

View File

@ -18,7 +18,7 @@ package io.nosqlbench.scenarios.simframe.optimizers.planners.findmax;
import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec;
import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams;
import io.nosqlbench.nb.api.components.core.NBBaseComponent; import io.nosqlbench.nb.api.components.core.NBBaseComponent;
import io.nosqlbench.nb.api.components.events.ParamChange; import io.nosqlbench.nb.api.components.events.ParamChange;
@ -102,7 +102,7 @@ public class FindmaxPlanner extends SimFramePlanner<FindmaxConfig, FindmaxFrameP
} }
@Override @Override
public void applyParams(FindmaxFrameParams params, StandardActivity flywheel) { public void applyParams(FindmaxFrameParams params, Activity flywheel) {
flywheel.onEvent(ParamChange.of(new CycleRateSpec(params.rate_shelf()+params.rate_delta(), 1.1d, SimRateSpec.Verb.restart))); flywheel.onEvent(ParamChange.of(new CycleRateSpec(params.rate_shelf()+params.rate_delta(), 1.1d, SimRateSpec.Verb.restart)));
} }

View File

@ -18,7 +18,7 @@ package io.nosqlbench.scenarios.simframe.optimizers.planners.ratchet;
import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec;
import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams;
import io.nosqlbench.nb.api.components.core.NBBaseComponent; import io.nosqlbench.nb.api.components.core.NBBaseComponent;
import io.nosqlbench.nb.api.components.events.ParamChange; import io.nosqlbench.nb.api.components.events.ParamChange;
@ -79,7 +79,7 @@ public class RatchetPlanner extends SimFramePlanner<RatchetConfig, RatchetFrameP
@Override @Override
public void applyParams(RatchetFrameParams params, StandardActivity flywheel) { public void applyParams(RatchetFrameParams params, Activity flywheel) {
flywheel.onEvent(ParamChange.of(new CycleRateSpec(params.rate(), 1.1d, SimRateSpec.Verb.restart))); flywheel.onEvent(ParamChange.of(new CycleRateSpec(params.rate(), 1.1d, SimRateSpec.Verb.restart)));
} }

View File

@ -18,7 +18,7 @@ package io.nosqlbench.scenarios.simframe.optimizers.planners.rcurve;
import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.CycleRateSpec;
import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec; import io.nosqlbench.engine.api.activityapi.simrate.SimRateSpec;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams;
import io.nosqlbench.nb.api.components.core.NBBaseComponent; import io.nosqlbench.nb.api.components.core.NBBaseComponent;
import io.nosqlbench.nb.api.components.events.ParamChange; import io.nosqlbench.nb.api.components.events.ParamChange;
@ -92,7 +92,7 @@ public class RCurvePlanner extends SimFramePlanner<RCurveConfig, RCurveFramePara
} }
@Override @Override
public void applyParams(RCurveFrameParams params, StandardActivity flywheel) { public void applyParams(RCurveFrameParams params, Activity flywheel) {
flywheel.onEvent(ParamChange.of(new CycleRateSpec(params.rate(), 1.1d, SimRateSpec.Verb.restart))); flywheel.onEvent(ParamChange.of(new CycleRateSpec(params.rate(), 1.1d, SimRateSpec.Verb.restart)));
} }

View File

@ -16,7 +16,7 @@
package io.nosqlbench.scenarios.simframe.planning; package io.nosqlbench.scenarios.simframe.planning;
import io.nosqlbench.engine.api.activityimpl.uniform.StandardActivity; import io.nosqlbench.engine.api.activityimpl.uniform.Activity;
import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController; import io.nosqlbench.engine.core.lifecycle.scenario.container.ContainerActivitiesController;
import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams; import io.nosqlbench.engine.core.lifecycle.scenario.container.NBCommandParams;
import io.nosqlbench.nb.api.components.core.NBBaseComponent; import io.nosqlbench.nb.api.components.core.NBBaseComponent;
@ -64,8 +64,8 @@ public abstract class SimFramePlanner<C,P extends Record> extends NBBaseComponen
*/ */
public abstract P nextStep(JournalView<P> journal); public abstract P nextStep(JournalView<P> journal);
public abstract void applyParams(P params, StandardActivity activity); public abstract void applyParams(P params, Activity activity);
public P analyze(StandardActivity flywheel, SimFrameCapture capture, PrintWriter stdout, PrintWriter stderr, ContainerActivitiesController controller) { public P analyze(Activity flywheel, SimFrameCapture capture, PrintWriter stdout, PrintWriter stderr, ContainerActivitiesController controller) {
var frameParams = initialStep(); var frameParams = initialStep();
while (frameParams != null) { while (frameParams != null) {