document op dispenser as OpDispenser type

This commit is contained in:
Jonathan Shook 2021-02-25 20:57:29 -06:00
parent a27ea6cdb2
commit 50c0363250
14 changed files with 40 additions and 31 deletions

View File

@ -1,6 +1,7 @@
package io.nosqlbench.activitytype.cmds;
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.templating.CommandTemplate;
import io.nosqlbench.nb.api.errors.BasicError;
@ -13,10 +14,9 @@ import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.LongFunction;
import java.util.regex.Pattern;
public class ReadyHttpOp implements LongFunction<HttpOp> {
public class ReadyHttpOp implements OpDispenser<HttpOp> {
private final CommandTemplate propertyTemplate;
public static final String DEFAULT_OK_BODY = ".+?";

View File

@ -6,6 +6,7 @@ import io.nosqlbench.engine.api.activityapi.core.SyncAction;
import io.nosqlbench.engine.api.activityapi.errorhandling.modular.ErrorDetail;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.nb.api.errors.BasicError;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -29,7 +30,7 @@ public class HttpAction implements SyncAction {
private final int slot;
private int maxTries = 1;
private OpSequence<LongFunction<HttpOp>> sequencer;
private OpSequence<OpDispenser<HttpOp>> sequencer;
private HttpClient client;
private final HttpResponse.BodyHandler<String> bodyreader = HttpResponse.BodyHandlers.ofString();

View File

@ -10,6 +10,7 @@ import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver;
import io.nosqlbench.engine.api.activityapi.errorhandling.modular.NBErrorHandler;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.activityimpl.SimpleActivity;
import io.nosqlbench.engine.api.metrics.ActivityMetrics;
import org.apache.logging.log4j.LogManager;
@ -17,7 +18,6 @@ import org.apache.logging.log4j.Logger;
import java.net.http.HttpClient;
import java.util.function.Function;
import java.util.function.LongFunction;
public class HttpActivity extends SimpleActivity implements Activity, ActivityDefObserver {
private final static Logger logger = LogManager.getLogger(HttpActivity.class);
@ -37,7 +37,7 @@ public class HttpActivity extends SimpleActivity implements Activity, ActivityDe
public Timer resultSuccessTimer;
public Histogram statusCodeHisto;
private OpSequence<LongFunction<HttpOp>> sequencer;
private OpSequence<OpDispenser<HttpOp>> sequencer;
private boolean diagnosticsEnabled;
private long timeout = Long.MAX_VALUE;
private NBErrorHandler errorhandler;
@ -129,7 +129,7 @@ public class HttpActivity extends SimpleActivity implements Activity, ActivityDe
return builder.build();
}
public OpSequence<LongFunction<HttpOp>> getSequencer() {
public OpSequence<OpDispenser<HttpOp>> getSequencer() {
return sequencer;
}

View File

@ -6,6 +6,7 @@ import io.nosqlbench.activitytype.http.HttpActivity;
import io.nosqlbench.engine.api.activityapi.core.BaseAsyncAction;
import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.TrackedOp;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -18,7 +19,7 @@ public class HttpAsyncAction extends BaseAsyncAction<HttpAsyncOp, HttpActivity>
private final static Logger logger = LogManager.getLogger(HttpAsyncAction.class);
private OpSequence<LongFunction<HttpOp>> sequencer;
private OpSequence<OpDispenser<HttpOp>> sequencer;
private HttpClient client;
private CompletableFuture<HttpResponse<Void>> future;

View File

@ -8,6 +8,7 @@ import com.zaxxer.hikari.HikariDataSource;
import io.nosqlbench.activitytype.jdbc.impl.ReadyJDBCOp;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.activityimpl.SimpleActivity;
import io.nosqlbench.engine.api.metrics.ActivityMetrics;
import io.nosqlbench.engine.api.metrics.ExceptionCountMetrics;
@ -17,7 +18,6 @@ import org.apache.logging.log4j.Logger;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.LongFunction;
// This should not be exposed as as service directly unless it can
// be used with a modular JDBC configuration.
@ -31,7 +31,7 @@ public abstract class JDBCActivity extends SimpleActivity {
private SQLExceptionCountMetrics sqlExceptionCount;
protected DataSource dataSource;
protected OpSequence<LongFunction<String>> opSequence;
protected OpSequence<OpDispenser<String>> opSequence;
public JDBCActivity(ActivityDef activityDef) {
super(activityDef);
@ -91,7 +91,7 @@ public abstract class JDBCActivity extends SimpleActivity {
return dataSource;
}
public OpSequence<LongFunction<String>> getOpSequence() {
public OpSequence<OpDispenser<String>> getOpSequence() {
return opSequence;
}

View File

@ -4,6 +4,7 @@ import com.codahale.metrics.Timer;
import io.nosqlbench.activitytype.jdbc.api.JDBCActivity;
import io.nosqlbench.engine.api.activityapi.core.SyncAction;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -17,7 +18,7 @@ public class JDBCAction implements SyncAction {
private static final Logger LOGGER = LogManager.getLogger(JDBCAction.class);
private final JDBCActivity activity;
private OpSequence<LongFunction<String>> sequencer;
private OpSequence<OpDispenser<String>> sequencer;
public JDBCAction(JDBCActivity a, int slot) {
activity = a;

View File

@ -1,14 +1,13 @@
package io.nosqlbench.activitytype.jdbc.impl;
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.virtdata.core.bindings.BindingsTemplate;
import io.nosqlbench.virtdata.core.templates.ParsedTemplate;
import io.nosqlbench.virtdata.core.templates.StringBindings;
import io.nosqlbench.virtdata.core.templates.StringBindingsTemplate;
import java.util.function.LongFunction;
public class ReadyJDBCOp implements LongFunction<String> {
public class ReadyJDBCOp implements OpDispenser<String> {
private final StringBindings bindings;
public ReadyJDBCOp(OpTemplate stmtDef) {

View File

@ -4,6 +4,7 @@ import io.nosqlbench.driver.jmx.ops.JmxOp;
import io.nosqlbench.engine.api.activityapi.core.SyncAction;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -16,7 +17,7 @@ public class JMXAction implements SyncAction {
private final ActivityDef activityDef;
private final int slot;
private final JMXActivity activity;
private OpSequence<LongFunction<JmxOp>> sequencer;
private OpSequence<OpDispenser<JmxOp>> sequencer;
public JMXAction(ActivityDef activityDef, int slot, JMXActivity activity) {
this.activityDef = activityDef;

View File

@ -4,15 +4,15 @@ import io.nosqlbench.driver.jmx.ops.JmxOp;
import io.nosqlbench.engine.api.activityapi.core.Activity;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.activityimpl.SimpleActivity;
import io.nosqlbench.engine.api.util.SSLKsFactory;
import javax.net.ssl.SSLContext;
import java.util.function.LongFunction;
public class JMXActivity extends SimpleActivity implements Activity {
private OpSequence<LongFunction<JmxOp>> sequence;
private OpSequence<OpDispenser<JmxOp>> sequence;
private SSLContext sslContext;
public JMXActivity(ActivityDef activityDef) {
@ -37,7 +37,7 @@ public class JMXActivity extends SimpleActivity implements Activity {
return sslContext;
}
public OpSequence<LongFunction<JmxOp>> getSequencer() {
public OpSequence<OpDispenser<JmxOp>> getSequencer() {
return sequence;
}
}

View File

@ -4,6 +4,7 @@ import io.nosqlbench.driver.jmx.ops.JMXExplainOperation;
import io.nosqlbench.driver.jmx.ops.JMXPrintOperation;
import io.nosqlbench.driver.jmx.ops.JMXReadOperation;
import io.nosqlbench.driver.jmx.ops.JmxOp;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.templating.CommandTemplate;
import javax.management.MalformedObjectNameException;
@ -16,9 +17,8 @@ import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.function.LongFunction;
public class ReadyJmxOp implements LongFunction<JmxOp> {
public class ReadyJmxOp implements OpDispenser<JmxOp> {
private final CommandTemplate command;

View File

@ -8,12 +8,12 @@ import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver;
import io.nosqlbench.engine.api.activityapi.errorhandling.modular.NBErrorHandler;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.activityimpl.SimpleActivity;
import io.nosqlbench.engine.api.metrics.ActivityMetrics;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.function.LongFunction;
import java.util.function.Supplier;
public class PulsarActivity extends SimpleActivity implements ActivityDefObserver {
@ -28,7 +28,7 @@ public class PulsarActivity extends SimpleActivity implements ActivityDefObserve
private PulsarNBClientConf clientConf;
private OpSequence<LongFunction<PulsarOp>> sequencer;
private OpSequence<OpDispenser<PulsarOp>> sequencer;
// private PulsarClient activityClient;
private Supplier<PulsarSpace> clientSupplier;
@ -65,7 +65,7 @@ public class PulsarActivity extends SimpleActivity implements ActivityDefObserve
super.onActivityDefUpdate(activityDef);
}
public OpSequence<LongFunction<PulsarOp>> getSequencer() {
public OpSequence<OpDispenser<PulsarOp>> getSequencer() {
return sequencer;
}

View File

@ -1,10 +1,10 @@
package io.nosqlbench.driver.pulsar.ops;
import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil;
import io.nosqlbench.driver.pulsar.PulsarSpace;
import io.nosqlbench.driver.pulsar.PulsarSpaceCache;
import io.nosqlbench.driver.pulsar.util.PulsarNBClientConf;
import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil;
import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.scoping.ScopedSupplier;
import io.nosqlbench.engine.api.templating.CommandTemplate;
import org.apache.pulsar.client.api.Producer;
@ -13,7 +13,7 @@ import org.apache.pulsar.client.api.Schema;
import java.util.function.LongFunction;
import java.util.function.Supplier;
public class ReadyPulsarOp implements LongFunction<PulsarOp> {
public class ReadyPulsarOp implements OpDispenser<PulsarOp> {
private final CommandTemplate cmdTpl;
private final PulsarSpace clientSpace;

View File

@ -0,0 +1,6 @@
package io.nosqlbench.engine.api.activityimpl;
import java.util.function.LongFunction;
public interface OpDispenser<T> extends LongFunction<T> {
}

View File

@ -409,9 +409,9 @@ public class SimpleActivity implements Activity, ProgressCapable {
* @param <O>
* @return
*/
protected <O> OpSequence<LongFunction<O>> createOpSequenceFromCommands(Function<CommandTemplate, LongFunction<O>> opinit) {
protected <O> OpSequence<OpDispenser<O>> createOpSequenceFromCommands(Function<CommandTemplate, OpDispenser<O>> opinit) {
Function<OpTemplate, CommandTemplate> f = CommandTemplate::new;
Function<OpTemplate, LongFunction<O>> opTemplateOFunction = f.andThen(opinit);
Function<OpTemplate, OpDispenser<O>> opTemplateOFunction = f.andThen(opinit);
return createOpSequence(opTemplateOFunction);
}
@ -438,14 +438,14 @@ public class SimpleActivity implements Activity, ProgressCapable {
* @param <O> A holder for an executable operation for the native driver used by this activity.
* @return The sequence of operations as determined by filtering and ratios
*/
protected <O> OpSequence<LongFunction<O>> createOpSequence(Function<OpTemplate, LongFunction<O>> opinit) {
protected <O> OpSequence<OpDispenser<O>> createOpSequence(Function<OpTemplate, OpDispenser<O>> opinit) {
String tagfilter = activityDef.getParams().getOptionalString("tags").orElse("");
StrInterpolator interp = new StrInterpolator(activityDef);
SequencerType sequencerType = getParams()
.getOptionalString("seq")
.map(SequencerType::valueOf)
.orElse(SequencerType.bucket);
SequencePlanner<LongFunction<O>> planner = new SequencePlanner<>(sequencerType);
SequencePlanner<OpDispenser<O>> planner = new SequencePlanner<>(sequencerType);
StmtsDocList stmtsDocList = null;
@ -471,7 +471,7 @@ public class SimpleActivity implements Activity, ProgressCapable {
for (int i = 0; i < stmts.size(); i++) {
long ratio = ratios.get(i);
OpTemplate optemplate = stmts.get(i);
LongFunction<O> driverSpecificReadyOp = opinit.apply(optemplate);
OpDispenser<O> driverSpecificReadyOp = opinit.apply(optemplate);
planner.addOp(driverSpecificReadyOp, ratio);
}