mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
cqld4 incremental changes
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user