From 3bcda60485354b4d0d58bab317f361bcd2756646 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Thu, 24 Oct 2024 14:19:46 -0500 Subject: [PATCH] align adapter-cqld4 to API changes --- .../adapter/cqld4/Cqld4DriverAdapter.java | 12 ++-- .../nosqlbench/adapter/cqld4/Cqld4Space.java | 10 +-- .../opdispensers/CqlD4BatchStmtDispenser.java | 19 ++--- .../CqlD4RainbowTableDispenser.java | 8 ++- .../opdispensers/Cqld4BaseOpDispenser.java | 10 ++- .../Cqld4FluentGraphOpDispenser.java | 24 ++++--- .../opdispensers/Cqld4GremlinOpDispenser.java | 8 ++- .../Cqld4PreparedStmtDispenser.java | 9 ++- .../opdispensers/Cqld4RawStmtDispenser.java | 10 ++- .../Cqld4SimpleCqlStmtDispenser.java | 9 ++- .../cqld4/opmappers/CqlD4BatchStmtMapper.java | 34 ++++----- .../opmappers/CqlD4CqlSimpleStmtMapper.java | 18 +++-- .../opmappers/CqlD4PreparedStmtMapper.java | 23 +++---- .../opmappers/CqlD4RainbowTableMapper.java | 17 +++-- .../cqld4/opmappers/CqlD4RawStmtMapper.java | 28 +++++--- .../cqld4/opmappers/Cqld4BaseOpMapper.java | 52 ++++++++++++++ .../cqld4/opmappers/Cqld4CoreOpMapper.java | 53 ++++++-------- .../cqld4/opmappers/Cqld4CqlOpMapper.java | 69 +++++++++++++++++++ .../opmappers/Cqld4FluentGraphOpMapper.java | 30 +++++--- .../cqld4/opmappers/Cqld4GremlinOpMapper.java | 17 +++-- .../adapter/cqld4/optypes/Cqld4BaseOp.java | 6 ++ .../adapter/cqld4/optypes/Cqld4CqlOp.java | 4 +- .../cqld4/optypes/Cqld4FluentGraphOp.java | 2 +- .../cqld4/optypes/Cqld4RainbowTableOp.java | 9 +-- .../cqld4/optypes/Cqld4ScriptGraphOp.java | 2 +- 25 files changed, 331 insertions(+), 152 deletions(-) create mode 100644 nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opmappers/Cqld4BaseOpMapper.java create mode 100644 nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opmappers/Cqld4CqlOpMapper.java create mode 100644 nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/optypes/Cqld4BaseOp.java diff --git a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4DriverAdapter.java b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4DriverAdapter.java index b279067a2..10822f1a6 100644 --- a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4DriverAdapter.java +++ b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4DriverAdapter.java @@ -17,6 +17,8 @@ package io.nosqlbench.adapter.cqld4; import io.nosqlbench.adapter.cqld4.opmappers.Cqld4CoreOpMapper; +import io.nosqlbench.adapter.cqld4.optypes.Cqld4BaseOp; +import io.nosqlbench.adapter.cqld4.optypes.Cqld4CqlOp; import io.nosqlbench.nb.api.config.standard.NBConfigModel; import io.nosqlbench.nb.api.config.standard.NBConfiguration; import io.nosqlbench.adapters.api.activityimpl.OpMapper; @@ -35,9 +37,10 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.function.Function; +import java.util.function.LongFunction; @Service(value = DriverAdapter.class, selector = "cqld4") -public class Cqld4DriverAdapter extends BaseDriverAdapter { +public class Cqld4DriverAdapter extends BaseDriverAdapter { private final static Logger logger = LogManager.getLogger(Cqld4DriverAdapter.class); public Cqld4DriverAdapter(NBComponent parentComponent, NBLabels labels) { @@ -45,14 +48,13 @@ public class Cqld4DriverAdapter extends BaseDriverAdapter { } @Override - public OpMapper getOpMapper() { - StringDriverSpaceCache spaceCache = getSpaceCache(); + public OpMapper getOpMapper() { NBConfiguration config = getConfiguration(); - return new Cqld4CoreOpMapper(this, config, spaceCache); + return new Cqld4CoreOpMapper(this, config); } @Override - public Function getSpaceInitializer(NBConfiguration cfg) { + public LongFunction getSpaceInitializer(NBConfiguration cfg) { return s -> new Cqld4Space(s,cfg); } diff --git a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4Space.java b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4Space.java index f6bf017c9..9ec1f1cad 100644 --- a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4Space.java +++ b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4Space.java @@ -28,6 +28,7 @@ import io.nosqlbench.adapter.cqld4.optionhelpers.OptionHelpers; import io.nosqlbench.adapter.cqld4.wrapper.Cqld4LoadBalancerObserver; import io.nosqlbench.adapter.cqld4.wrapper.Cqld4SessionBuilder; import io.nosqlbench.adapter.cqld4.wrapper.NodeSummary; +import io.nosqlbench.adapters.api.activityimpl.uniform.BaseSpace; import io.nosqlbench.nb.api.config.standard.*; import io.nosqlbench.nb.api.errors.OpConfigError; import io.nosqlbench.nb.api.nbio.Content; @@ -47,14 +48,13 @@ import java.nio.file.Paths; import java.util.*; import java.util.stream.Collectors; -public class Cqld4Space implements AutoCloseable { +public class Cqld4Space extends BaseSpace { private final static Logger logger = LogManager.getLogger(Cqld4Space.class); - private final String space; CqlSession session; - public Cqld4Space(String space, NBConfiguration cfg) { - this.space = space; + public Cqld4Space(long space, NBConfiguration cfg) { + super(space); session = createSession(cfg); } @@ -340,7 +340,7 @@ public class Cqld4Space implements AutoCloseable { try { this.getSession().close(); } catch (Exception e) { - logger.warn("auto-closeable cql session threw exception in cql space(" + this.space + "): " + e); + logger.warn("auto-closeable cql session threw exception in cql space(" + getName() + "): " + e); throw e; } } diff --git a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4BatchStmtDispenser.java b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4BatchStmtDispenser.java index 74501e223..fe77fff31 100644 --- a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4BatchStmtDispenser.java +++ b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4BatchStmtDispenser.java @@ -18,25 +18,28 @@ package io.nosqlbench.adapter.cqld4.opdispensers; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.cql.*; +import io.nosqlbench.adapter.cqld4.Cqld4DriverAdapter; +import io.nosqlbench.adapter.cqld4.Cqld4Space; import io.nosqlbench.adapter.cqld4.optionhelpers.BatchTypeEnum; import io.nosqlbench.adapter.cqld4.optypes.Cqld4CqlBatchStatement; import io.nosqlbench.adapter.cqld4.optypes.Cqld4CqlOp; import io.nosqlbench.adapters.api.activityimpl.OpDispenser; import io.nosqlbench.adapters.api.activityimpl.OpMapper; +import io.nosqlbench.adapters.api.activityimpl.uniform.BaseSpace; import io.nosqlbench.adapters.api.activityimpl.uniform.DriverAdapter; import io.nosqlbench.adapters.api.templating.ParsedOp; import org.jetbrains.annotations.NotNull; import java.util.function.LongFunction; -public class CqlD4BatchStmtDispenser extends Cqld4BaseOpDispenser { +public class CqlD4BatchStmtDispenser extends Cqld4BaseOpDispenser { private final int repeat; private final ParsedOp subop; private final OpMapper submapper; private LongFunction opfunc; public CqlD4BatchStmtDispenser( - DriverAdapter adapter, + Cqld4DriverAdapter adapter, LongFunction sessionFunc, ParsedOp op, int repeat, @@ -48,7 +51,7 @@ public class CqlD4BatchStmtDispenser extends Cqld4BaseOpDispenser { this.subop = subop; this.opfunc = createStmtFunc(op, subopDispenser); this.submapper = adapter.getOpMapper(); - subopDispenser = submapper.apply(subop); + subopDispenser = submapper.apply(subop, adapter.getSpaceFunc(op)); } @@ -62,19 +65,19 @@ public class CqlD4BatchStmtDispenser extends Cqld4BaseOpDispenser { BatchTypeEnum bte = topOp.getEnumFromFieldOr(BatchTypeEnum.class, BatchTypeEnum.unlogged, "batchtype"); LongFunction bsbf = l -> new BatchStatementBuilder(bte.batchtype); LongFunction bsf = getBatchAccumulator(bsbf, subopDispenser); - bsf = getEnhancedStmtFunc(bsf,topOp); + bsf = getEnhancedStmtFunc(bsf, topOp); return bsf; } @NotNull private LongFunction getBatchAccumulator(LongFunction bsb, OpDispenser subopDispenser) { LongFunction f = l -> { - long base=l*repeat; + long base = l * repeat; BatchStatementBuilder bsa = bsb.apply(l); for (int i = 0; i < repeat; i++) { - Cqld4CqlOp op = subopDispenser.apply(base+i); + Cqld4CqlOp op = subopDispenser.apply(base + i); BatchableStatement stmt = (BatchableStatement) op.getStmt(); - bsa= bsa.addStatement(stmt); + bsa = bsa.addStatement(stmt); } return bsa; }; @@ -84,7 +87,7 @@ public class CqlD4BatchStmtDispenser extends Cqld4BaseOpDispenser { } @Override - public Cqld4CqlOp getOp(long value) { + public Cqld4CqlBatchStatement getOp(long value) { Statement bstmt = opfunc.apply(value); return new Cqld4CqlBatchStatement( getSessionFunc().apply(value), diff --git a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4RainbowTableDispenser.java b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4RainbowTableDispenser.java index 41e05e134..38ae865ca 100644 --- a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4RainbowTableDispenser.java +++ b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4RainbowTableDispenser.java @@ -17,18 +17,22 @@ package io.nosqlbench.adapter.cqld4.opdispensers; import com.datastax.oss.driver.api.core.CqlSession; +import io.nosqlbench.adapter.cqld4.Cqld4DriverAdapter; +import io.nosqlbench.adapter.cqld4.Cqld4Space; import io.nosqlbench.adapter.cqld4.optypes.Cqld4CqlOp; +import io.nosqlbench.adapter.cqld4.optypes.Cqld4RainbowTableOp; import io.nosqlbench.adapters.api.activityimpl.uniform.DriverAdapter; import io.nosqlbench.adapters.api.templating.ParsedOp; import java.util.function.LongFunction; -public class CqlD4RainbowTableDispenser extends Cqld4BaseOpDispenser { +public class CqlD4RainbowTableDispenser extends Cqld4BaseOpDispenser { // private final LongFunction stmtFunc; private final LongFunction targetFunction; - public CqlD4RainbowTableDispenser(DriverAdapter adapter, LongFunction sessionFunc, LongFunction targetFunction, ParsedOp cmd) { + public CqlD4RainbowTableDispenser(Cqld4DriverAdapter adapter, LongFunction sessionFunc, + LongFunction targetFunction, ParsedOp cmd) { super(adapter, sessionFunc,cmd); this.targetFunction=targetFunction; // this.tableFunc =createTableFunc(cmd); diff --git a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4BaseOpDispenser.java b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4BaseOpDispenser.java index 1b9e17551..5a9e33c57 100644 --- a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4BaseOpDispenser.java +++ b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4BaseOpDispenser.java @@ -24,8 +24,10 @@ import com.datastax.oss.driver.api.core.config.DriverExecutionProfile; import com.datastax.oss.driver.api.core.cql.*; import com.datastax.oss.driver.api.core.metadata.Node; import com.datastax.oss.driver.api.core.metadata.token.Token; +import io.nosqlbench.adapter.cqld4.Cqld4DriverAdapter; import io.nosqlbench.adapter.cqld4.Cqld4Space; import io.nosqlbench.adapter.cqld4.instruments.CqlOpMetrics; +import io.nosqlbench.adapter.cqld4.optypes.Cqld4BaseOp; import io.nosqlbench.adapter.cqld4.optypes.Cqld4CqlOp; import io.nosqlbench.adapters.api.activityimpl.BaseOpDispenser; import io.nosqlbench.adapters.api.activityimpl.uniform.DriverAdapter; @@ -40,19 +42,21 @@ import java.time.Duration; import java.util.Map; import java.util.function.LongFunction; -public abstract class Cqld4BaseOpDispenser extends BaseOpDispenser implements CqlOpMetrics { +public abstract class Cqld4BaseOpDispenser extends BaseOpDispenser implements CqlOpMetrics { private final static Logger logger = LogManager.getLogger("CQLD4"); private final int maxpages; - private final LongFunction sessionFunc; + protected final LongFunction sessionFunc; private final boolean isRetryReplace; private final int maxLwtRetries; private final Histogram rowsHistogram; private final Histogram pagesHistogram; private final Histogram payloadBytesHistogram; - public Cqld4BaseOpDispenser(DriverAdapter adapter, LongFunction sessionFunc, ParsedOp op) { + public Cqld4BaseOpDispenser(Cqld4DriverAdapter adapter, + LongFunction sessionFunc, + ParsedOp op) { super(adapter, op); this.sessionFunc = sessionFunc; this.maxpages = op.getStaticConfigOr("maxpages", 1); diff --git a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4FluentGraphOpDispenser.java b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4FluentGraphOpDispenser.java index 145cd07cb..8c6cdb1af 100644 --- a/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4FluentGraphOpDispenser.java +++ b/nb-adapters/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4FluentGraphOpDispenser.java @@ -20,11 +20,12 @@ import com.datastax.dse.driver.api.core.graph.FluentGraphStatement; import com.datastax.dse.driver.api.core.graph.FluentGraphStatementBuilder; import com.datastax.oss.driver.api.core.CqlSession; import groovy.lang.Script; +import io.nosqlbench.adapter.cqld4.Cqld4DriverAdapter; import io.nosqlbench.adapter.cqld4.Cqld4Space; +import io.nosqlbench.adapter.cqld4.optypes.Cqld4BaseOp; +import io.nosqlbench.adapter.cqld4.optypes.Cqld4CqlOp; import io.nosqlbench.adapter.cqld4.optypes.Cqld4FluentGraphOp; -import io.nosqlbench.adapters.api.activityimpl.BaseOpDispenser; import io.nosqlbench.adapters.api.activityimpl.uniform.DriverAdapter; -import io.nosqlbench.adapters.api.activityimpl.uniform.flowtypes.Op; import io.nosqlbench.adapters.api.templating.ParsedOp; import io.nosqlbench.virtdata.core.bindings.Bindings; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; @@ -34,7 +35,7 @@ import java.util.Map; import java.util.function.LongFunction; import java.util.function.Supplier; -public class Cqld4FluentGraphOpDispenser extends BaseOpDispenser { +public class Cqld4FluentGraphOpDispenser extends Cqld4BaseOpDispenser { private final LongFunction graphnameFunc; private final LongFunction sessionFunc; @@ -42,22 +43,23 @@ public class Cqld4FluentGraphOpDispenser extends BaseOpDispenser private final ThreadLocal