mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
this commit renames StandardActivity to Activity, as the one and only
This commit is contained in:
parent
ced01b132b
commit
6b43b10509
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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");
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
@ -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 {
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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 =
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
|
@ -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.");
|
||||||
|
@ -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,7 +86,8 @@ 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(
|
||||||
|
Activity activity, long slotId, Input input, SyncAction action,
|
||||||
Output output) {
|
Output output) {
|
||||||
super(activity, NBLabels.forKV("motor", "coremotor"));
|
super(activity, NBLabels.forKV("motor", "coremotor"));
|
||||||
this.activity = activity;
|
this.activity = activity;
|
||||||
|
@ -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,12 +31,13 @@ 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(
|
||||||
|
Activity activity,
|
||||||
InputDispenser inputDispenser,
|
InputDispenser inputDispenser,
|
||||||
ActionDispenser actionDispenser,
|
ActionDispenser actionDispenser,
|
||||||
OutputDispenser outputDispenser
|
OutputDispenser outputDispenser
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
@ -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;
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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;
|
||||||
|
@ -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(""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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,11 +32,12 @@ 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(
|
||||||
|
Activity activity, Future<ExecutionResult> result,
|
||||||
ActivityExecutor executor) {
|
ActivityExecutor executor) {
|
||||||
|
|
||||||
this.activity = activity;
|
this.activity = activity;
|
||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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",
|
||||||
|
@ -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());
|
||||||
|
@ -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
|
||||||
|
@ -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");
|
||||||
|
@ -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);
|
||||||
|
@ -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) -> {
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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");
|
||||||
|
@ -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
|
||||||
) {
|
) {
|
||||||
|
@ -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)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user