cqld4 incremental changes

This commit is contained in:
Jonathan Shook
2021-07-22 17:40:09 -05:00
parent 284e86e64f
commit 03d903f130
7 changed files with 52 additions and 22 deletions

View File

@@ -3,18 +3,21 @@ package io.nosqlbench.adapter.cqld4;
import io.nosqlbench.engine.api.activityimpl.OpMapper;
import io.nosqlbench.engine.api.activityimpl.uniform.BaseDriverAdapter;
import io.nosqlbench.engine.api.activityimpl.uniform.DriverAdapter;
import io.nosqlbench.engine.api.activityimpl.uniform.DriverSpaceCache;
import io.nosqlbench.nb.annotations.Service;
import io.nosqlbench.nb.api.config.standard.ConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfigModel;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
import java.util.function.Function;
@Service(value = DriverAdapter.class,selector = "cqld4")
public class Cqld4DriverAdapter extends BaseDriverAdapter<Cqld4Op,Cqld4Space> {
@Service(value = DriverAdapter.class, selector = "cqld4")
public class Cqld4DriverAdapter extends BaseDriverAdapter<Cqld4Op, Cqld4Space> {
@Override
public OpMapper<Cqld4Op> getOpMapper() {
return new Cqld4OpMapper(getSpaceCache());
DriverSpaceCache<? extends Cqld4Space> spaceCache = getSpaceCache();
NBConfiguration config = getConfiguration();
return new Cqld4OpMapper(config, spaceCache);
}
@Override
@@ -24,7 +27,7 @@ public class Cqld4DriverAdapter extends BaseDriverAdapter<Cqld4Op,Cqld4Space> {
@Override
public NBConfigModel getConfigModel() {
return ConfigModel.of(Cqld4DriverAdapter.class).asReadOnly();
return Cqld4Space.getConfigModel();
}

View File

@@ -9,31 +9,34 @@ import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.activityimpl.OpMapper;
import io.nosqlbench.engine.api.activityimpl.uniform.DriverSpaceCache;
import io.nosqlbench.engine.api.templating.ParsedCommand;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
public class Cqld4OpMapper implements OpMapper<Cqld4Op> {
private final DriverSpaceCache<? extends Cqld4Space> cache;
private final NBConfiguration cfg;
public Cqld4OpMapper(DriverSpaceCache<? extends Cqld4Space> cache) {
public Cqld4OpMapper(NBConfiguration config, DriverSpaceCache<? extends Cqld4Space> cache) {
this.cfg = config;
this.cache = cache;
}
public OpDispenser<Cqld4Op> apply(ParsedCommand cmd) {
Cqld4Space cqld4Space = cache.get(cmd.getStaticConfigOr("space", "default"));
boolean prepared = cmd.getStaticConfigOr("prepared",true);
boolean batch = cmd.getStaticConfigOr("boolean",false);
boolean prepared = cmd.getStaticConfigOr("prepared", true);
boolean batch = cmd.getStaticConfigOr("boolean", false);
CqlSession session = cqld4Space.getSession();
if (prepared && batch) {
return new CqlD4PreparedBatchOpDispenser(session,cmd);
return new CqlD4PreparedBatchOpDispenser(session, cmd, cfg);
} else if (prepared) {
return new Cqld4PreparedOpDispenser(session,cmd);
return new Cqld4PreparedOpDispenser(session, cmd, cfg);
} else if (batch) {
return new Cqld4BatchStatementDispenser(session, cmd);
return new Cqld4BatchStatementDispenser(session, cmd, cfg);
} else {
return new Cqld4SimpleCqlStatementDispenser(session,cmd);
return new Cqld4SimpleCqlStatementDispenser(session, cmd, cfg);
}
}

View File

@@ -4,7 +4,7 @@ import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.CqlSessionBuilder;
import com.datastax.oss.driver.api.core.config.DriverConfigLoader;
import io.nosqlbench.engine.api.util.SSLKsFactory;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
import io.nosqlbench.nb.api.config.standard.*;
import io.nosqlbench.nb.api.content.Content;
import io.nosqlbench.nb.api.content.NBIO;
import io.nosqlbench.nb.api.errors.BasicError;
@@ -28,7 +28,7 @@ public class Cqld4Space {
CqlSession session;
public Cqld4Space(Cqld4DriverAdapter adapter) {
session = createSession(adapter.getConfigReader());
session = createSession(adapter.getConfiguration());
}
private CqlSession createSession(NBConfiguration cfg) {
@@ -38,7 +38,7 @@ public class Cqld4Space {
int port = cfg.getOrDefault("port",9042);
Optional<String> scb = cfg.getOptional(String.class,"secureconnectbundle");
Optional<String> scb = cfg.getOptional(String.class,"secureconnectbundle","scb");
scb.flatMap(s -> NBIO.all().name(s).first().map(Content::getInputStream))
.map(builder::withCloudSecureConnectBundle);
@@ -174,12 +174,14 @@ public class Cqld4Space {
}
private Optional<DriverConfigLoader> resolveConfigLoader(NBConfiguration cfg) {
String driverconfig = cfg.param("driverconfig", String.class);
Optional<String> maybeDriverConfig = cfg.getOptional("driverconfig");
if (driverconfig.isEmpty()) {
if (maybeDriverConfig.isEmpty()) {
return Optional.empty();
}
String driverconfig = maybeDriverConfig.get();
List<String> loaderspecs = splitConfigLoaders(driverconfig);
LinkedList<DriverConfigLoader> loaders = new LinkedList<>();
@@ -234,4 +236,15 @@ public class Cqld4Space {
public CqlSession getSession() {
return session;
}
public static NBConfigModel getConfigModel() {
return ConfigModel.of(Cqld4DriverAdapter.class)
.add(Param.optional("localdc"))
.add(Param.optional("secureconnectbundle"))
.add(Param.optional("hosts"))
.add(Param.optional("driverconfig"))
.asReadOnly();
}
}

View File

@@ -4,15 +4,18 @@ import com.datastax.oss.driver.api.core.CqlSession;
import io.nosqlbench.adapter.cqld4.Cqld4Op;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.templating.ParsedCommand;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
public class CqlD4PreparedBatchOpDispenser implements OpDispenser<Cqld4Op> {
private final CqlSession session;
private final ParsedCommand cmd;
private final NBConfiguration cfg;
public CqlD4PreparedBatchOpDispenser(CqlSession session, ParsedCommand cmd) {
public CqlD4PreparedBatchOpDispenser(CqlSession session, ParsedCommand cmd, NBConfiguration cfg) {
this.session = session;
this.cmd = cmd;
this.cfg = cfg;
}
@Override

View File

@@ -4,14 +4,17 @@ import com.datastax.oss.driver.api.core.CqlSession;
import io.nosqlbench.adapter.cqld4.Cqld4Op;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.templating.ParsedCommand;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
public class Cqld4BatchStatementDispenser implements OpDispenser<Cqld4Op> {
private final CqlSession session;
private final ParsedCommand cmd;
private final NBConfiguration cfg;
public Cqld4BatchStatementDispenser(CqlSession session, ParsedCommand cmd) {
public Cqld4BatchStatementDispenser(CqlSession session, ParsedCommand cmd, NBConfiguration cfg) {
this.session = session;
this.cmd = cmd;
this.cfg = cfg;
}
@Override

View File

@@ -4,16 +4,18 @@ import com.datastax.oss.driver.api.core.CqlSession;
import io.nosqlbench.adapter.cqld4.Cqld4Op;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.templating.ParsedCommand;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
public class Cqld4PreparedOpDispenser implements OpDispenser<Cqld4Op> {
private final CqlSession session;
private final ParsedCommand cmd;
private final NBConfiguration cfg;
public Cqld4PreparedOpDispenser(CqlSession session, ParsedCommand cmd) {
public Cqld4PreparedOpDispenser(CqlSession session, ParsedCommand cmd, NBConfiguration cfg) {
this.session = session;
this.cmd = cmd;
this.cfg = cfg;
}
@Override

View File

@@ -6,15 +6,18 @@ import io.nosqlbench.adapter.cqld4.Cqld4Op;
import io.nosqlbench.adapter.cqld4.optypes.Cqld4SimpleCqlStatement;
import io.nosqlbench.engine.api.activityimpl.OpDispenser;
import io.nosqlbench.engine.api.templating.ParsedCommand;
import io.nosqlbench.nb.api.config.standard.NBConfiguration;
public class Cqld4SimpleCqlStatementDispenser implements OpDispenser<Cqld4Op> {
private final CqlSession session;
private final ParsedCommand cmd;
private final NBConfiguration cfg;
public Cqld4SimpleCqlStatementDispenser(CqlSession session, ParsedCommand cmd) {
public Cqld4SimpleCqlStatementDispenser(CqlSession session, ParsedCommand cmd, NBConfiguration cfg) {
this.session = session;
this.cmd = cmd;
this.cfg = cfg;
}
@Override