From 548ae08ec4d9f37fa63b12f2c0ccc0b797ddf9d5 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Mon, 26 Jul 2021 05:47:18 -0500 Subject: [PATCH 01/58] Update README.md Add OSS support requirements for Netlify OSS plan. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index ebe3b98b1..1de42931f 100644 --- a/README.md +++ b/README.md @@ -101,3 +101,6 @@ This project uses tools provided by YourKit, LLC. YourKit supports open source p Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications. + +This site is powered by [Netlify](https://www.netlify.com). (Or will be soon, as the new docs site comes online!) + From d887b12426667746f525c8ca9750233d126de0ae Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Mon, 26 Jul 2021 06:05:50 -0500 Subject: [PATCH 02/58] Update README.md --- README.md | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 1de42931f..32680ba59 100644 --- a/README.md +++ b/README.md @@ -85,22 +85,27 @@ available, but more work is needed to support them fully. Here is what is suppor ## Thanks - +
- + + + + + + + + + + +
DataStaxDataStaxThis project is sponsored by DataStax -- The Open, + Multi-Cloud Stack for Modern Data Apps built on Apache Cassandraâ„¢, Kubernetes *Based*, Developer *Ready* & + Cloud *Delivered* and designed from the ground up to run anywhere, on any cloud, in any datacenter, and in + every possible combination. DataStax delivers the ultimate hybrid and multi-cloud database. +
YourKit LogoThis project uses tools provided by YourKit, LLC. YourKit supports open source projects with its full-featured Java + Profiler. YourKit, LLC is the creator of YourKit Java Profiler and + YourKit .NET Profiler, innovative and intelligent tools for + profiling Java and .NET applications. +
Deploys by NetlifyThis site deployed by Netlify!
- -This project is sponsored by [DataStax](https://www.datastax.com) -- The Open, Multi-Cloud Stack for Modern Data Apps built on -Apache Cassandraâ„¢, Kubernetes *Based*, Developer *Ready* & Cloud *Delivered* and designed from the ground up to run anywhere, -on any cloud, in any datacenter, and in every possible combination. DataStax delivers the ultimate hybrid and multi-cloud database. - -![YourKit Logo](https://www.yourkit.com/images/yklogo.png) - -This project uses tools provided by YourKit, LLC. YourKit supports open source projects with its full-featured Java -Profiler. YourKit, LLC is the creator of YourKit Java Profiler and -YourKit .NET Profiler, innovative and intelligent tools for -profiling Java and .NET applications. - -This site is powered by [Netlify](https://www.netlify.com). (Or will be soon, as the new docs site comes online!) - From 88e4f4b68337638a07a5a025fc541d93c3f47988 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Mon, 26 Jul 2021 11:36:52 -0500 Subject: [PATCH 03/58] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 32680ba59..b5676c4e1 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,6 @@ available, but more work is needed to support them fully. Here is what is suppor Deploys by Netlify - This site deployed by Netlify! + This site (soon to be) deployed by Netlify! From 41daadb528342ca20c7ca20ce7d4887cf93ffd64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Aug 2021 17:22:04 +0000 Subject: [PATCH 04/58] Bump commons-compress from 1.20 to 1.21 in /docsys Bumps commons-compress from 1.20 to 1.21. --- updated-dependencies: - dependency-name: org.apache.commons:commons-compress dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- docsys/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index d2ec8affe..e5f46300e 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -77,7 +77,7 @@ org.apache.commons commons-compress - 1.20 + 1.21 From 1af8efa9d1359ae6b3d296b1202b0c9678b1260c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Aug 2021 17:22:13 +0000 Subject: [PATCH 05/58] Bump commons-compress from 1.20 to 1.21 in /mvn-defaults Bumps commons-compress from 1.20 to 1.21. --- updated-dependencies: - dependency-name: org.apache.commons:commons-compress dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- mvn-defaults/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index bcb29950d..93ceb3e9d 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -15,7 +15,7 @@ 1.2.0 4.9.2 1.14 - 1.20 + 1.21 1.8 3.9 3.6.1 From a6c1502cc7de0cd96d4de930afae737e47e83553 Mon Sep 17 00:00:00 2001 From: Ivan Senic Date: Fri, 13 Aug 2021 11:53:49 +0200 Subject: [PATCH 06/58] fixing the document api key-value scenario --- .../documents-api/http-docsapi-keyvalue.yaml | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/driver-http/src/main/resources/activities/documents-api/http-docsapi-keyvalue.yaml b/driver-http/src/main/resources/activities/documents-api/http-docsapi-keyvalue.yaml index 91aa31311..ec3c93493 100644 --- a/driver-http/src/main/resources/activities/documents-api/http-docsapi-keyvalue.yaml +++ b/driver-http/src/main/resources/activities/documents-api/http-docsapi-keyvalue.yaml @@ -1,4 +1,4 @@ -# nb -v run driver=http yaml=http-docsapi-keyvalue tags=phase:schema host=my_stargate_host stargate_host=my_stargate_host auth_token=$AUTH_TOKEN +# nb -v run driver=http yaml=http-docsapi-keyvalue tags=phase:schema stargate_host=my_stargate_host auth_token=$AUTH_TOKEN description: | This workload emulates a key-value data model and access patterns. @@ -10,9 +10,9 @@ description: | scenarios: default: - - run driver=http tags==phase:schema threads==1 cycles==UNDEF - - run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto - - run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto + schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF + rumpup: run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto + main: run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto bindings: # To enable an optional weighted set of hosts in place of a load balancer # Examples @@ -23,10 +23,10 @@ bindings: # http request id request_id: ToHashedUUID(); ToString(); - seq_key: Mod(<>); ToString() -> String - seq_value: Hash(); Mod(<>); ToString() -> String - rw_key: <int>>; ToString() -> String - rw_value: Hash(); <int>>; ToString() -> String + seq_key: Mod(<>); ToString() -> String + seq_value: Hash(); Mod(<>); ToString() -> String + rw_key: <>)->int>>; ToString() -> String + rw_value: Hash(); <>)->int>>; ToString() -> String blocks: - tags: @@ -44,6 +44,13 @@ blocks: } tags: name: create-keyspace + - delete-docs-collection : DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<> + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + tags: + name: delete-table + ok-status: "[2-4][0-9][0-9]" - create-docs-collection : POST <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections Accept: "application/json" X-Cassandra-Request-Id: "{request_id}" @@ -77,7 +84,7 @@ blocks: phase: main type: read params: - ratio: <> + ratio: <> statements: - main-select: GET <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{rw_key} Accept: "application/json" @@ -85,13 +92,14 @@ blocks: X-Cassandra-Token: "<>" tags: name: main-select + ok-status: "[2-4][0-9][0-9]" - name: main-write tags: phase: main type: write params: - ratio: <> + ratio: <> statements: - main-write: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{rw_key} Accept: "application/json" From fad0eb0d41a8f8e1766253083924439765f3e385 Mon Sep 17 00:00:00 2001 From: Eric Borczuk Date: Fri, 13 Aug 2021 15:29:08 -0400 Subject: [PATCH 07/58] Bring rampup cycles in line with key numbers for other keyvalue tests --- .../baselines/http-rest-keyvalue.yaml | 23 +++++++++++++------ .../http-graphql-cql-keyvalue.yaml | 14 +++++------ .../http-graphql-keyvalue.yaml | 10 ++++---- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/driver-http/src/main/resources/activities/baselines/http-rest-keyvalue.yaml b/driver-http/src/main/resources/activities/baselines/http-rest-keyvalue.yaml index b9b97853c..f5bbd80bd 100644 --- a/driver-http/src/main/resources/activities/baselines/http-rest-keyvalue.yaml +++ b/driver-http/src/main/resources/activities/baselines/http-rest-keyvalue.yaml @@ -7,9 +7,9 @@ description: | scenarios: default: - - run driver=cql tags==phase:schema threads==1 cycles==UNDEF - - run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto - - run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto + schema: run driver=cql tags==phase:schema threads==1 cycles==UNDEF + rampup: run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto + main: run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto bindings: # To enable an optional weighted set of hosts in place of a load balancer # Examples @@ -20,9 +20,9 @@ bindings: # http request id request_id: ToHashedUUID(); ToString(); - seq_key: Mod(<>); ToString() -> String + seq_key: Mod(<>); ToString() -> String seq_value: Hash(); Mod(<>); ToString() -> String - rw_key: <int>>; ToString() -> String + rw_key: <int>>; ToString() -> String rw_value: Hash(); <int>>; ToString() -> String blocks: @@ -42,6 +42,14 @@ blocks: } tags: name: create-keyspace + - drop-table: DELETE <>://{weighted_hosts}:<><>/v2/schemas/keyspaces/<>/tables/<> + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + tags: + name: drop-table + ok-status: "[2-4][0-9][0-9]" - create-table: POST <>://{weighted_hosts}:<><>/v2/schemas/keyspaces/<>/tables Accept: "application/json" X-Cassandra-Request-Id: "{request_id}" @@ -120,7 +128,7 @@ blocks: phase: main type: read params: - ratio: 5 + ratio: <> statements: - main-select: GET <>://{weighted_hosts}:<><>/v2/keyspaces/<>/<>/{rw_key} Accept: "application/json" @@ -129,12 +137,13 @@ blocks: Content-Type: "application/json" tags: name: main-select + ok-status: "[2-4][0-9][0-9]" - name: main-write tags: phase: main type: write params: - ratio: 5 + ratio: <> statements: - main-write: POST <>://{weighted_hosts}:<><>/v2/keyspaces/<>/<> Accept: "application/json" diff --git a/driver-http/src/main/resources/activities/graphql-cql-first/http-graphql-cql-keyvalue.yaml b/driver-http/src/main/resources/activities/graphql-cql-first/http-graphql-cql-keyvalue.yaml index ea7ea8669..582dbeddc 100644 --- a/driver-http/src/main/resources/activities/graphql-cql-first/http-graphql-cql-keyvalue.yaml +++ b/driver-http/src/main/resources/activities/graphql-cql-first/http-graphql-cql-keyvalue.yaml @@ -8,9 +8,9 @@ description: | scenarios: default: - - run driver=cql tags==phase:schema threads==1 cycles==UNDEF - - run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto - - run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto + schema: run driver=cql tags==phase:schema threads==1 cycles==UNDEF + rampup: run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto + main: run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto bindings: # To enable an optional weighted set of hosts in place of a load balancer # Examples @@ -21,9 +21,9 @@ bindings: # http request id request_id: ToHashedUUID(); ToString(); - seq_key: Mod(<>); ToString() -> String + seq_key: Mod(<>); ToString() -> String seq_value: Hash(); Mod(<>); ToString() -> String - rw_key: <int>>; ToString() -> String + rw_key: <int>>; ToString() -> String rw_value: Hash(); <int>>; ToString() -> String blocks: @@ -79,7 +79,7 @@ blocks: phase: main type: read params: - ratio: 5 + ratio: <> statements: - main-select: POST <>://{weighted_hosts}:<><>/graphql/<> Accept: "application/json" @@ -95,7 +95,7 @@ blocks: phase: main type: write params: - ratio: 5 + ratio: <> statements: - main-write: POST <>://{weighted_hosts}:<><>/graphql/<> Accept: "application/json" diff --git a/driver-http/src/main/resources/activities/graphql-schema-first/http-graphql-keyvalue.yaml b/driver-http/src/main/resources/activities/graphql-schema-first/http-graphql-keyvalue.yaml index d9f346587..c3425da3d 100644 --- a/driver-http/src/main/resources/activities/graphql-schema-first/http-graphql-keyvalue.yaml +++ b/driver-http/src/main/resources/activities/graphql-schema-first/http-graphql-keyvalue.yaml @@ -13,9 +13,9 @@ description: | scenarios: default: - - run driver=http tags==phase:schema threads==1 cycles==UNDEF - - run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto - - run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto + schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF + rampup: run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto + main: run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto bindings: # To enable an optional weighted set of hosts in place of a load balancer # Examples @@ -26,9 +26,9 @@ bindings: # http request id request_id: ToHashedUUID(); ToString(); - seq_key: Mod(<>); ToString() -> String + seq_key: Mod(<>); ToString() -> String seq_value: Hash(); Mod(<>); ToString() -> String - rw_key: <int>>; ToString() -> String + rw_key: <int>>; ToString() -> String rw_value: Hash(); <int>>; ToString() -> String blocks: From 9fe038a60aaee366afe1dd6be721850255643dfe Mon Sep 17 00:00:00 2001 From: Ivan Senic Date: Mon, 16 Aug 2021 09:26:50 +0200 Subject: [PATCH 08/58] fix typo --- .../activities/documents-api/http-docsapi-keyvalue.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver-http/src/main/resources/activities/documents-api/http-docsapi-keyvalue.yaml b/driver-http/src/main/resources/activities/documents-api/http-docsapi-keyvalue.yaml index ec3c93493..d0e3a546b 100644 --- a/driver-http/src/main/resources/activities/documents-api/http-docsapi-keyvalue.yaml +++ b/driver-http/src/main/resources/activities/documents-api/http-docsapi-keyvalue.yaml @@ -11,7 +11,7 @@ description: | scenarios: default: schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF - rumpup: run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto + rampup: run driver=http tags==phase:rampup cycles===TEMPLATE(rampup-cycles,10000000) threads=auto main: run driver=http tags==phase:main cycles===TEMPLATE(main-cycles,10000000) threads=auto bindings: # To enable an optional weighted set of hosts in place of a load balancer From b76bfd8dc95dfcd6e2d31a391d258fd1d6e74a0a Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Mon, 13 Sep 2021 12:46:53 -0500 Subject: [PATCH 09/58] add csvoutput scripting plugin for response curve capture --- .../extensions/csvoutput/CsvOutput.java | 4 + .../csvoutput/CsvOutputPluginData.java | 22 ++++++ .../csvoutput/CsvOutputPluginInstance.java | 8 ++ .../extensions/csvoutput/CsvOutputWriter.java | 75 +++++++++++++++++++ .../engine/extensions/csvoutput/csvoutput.md | 13 ++++ .../csvoutput/CsvOutputWriterTest.java | 22 ++++++ .../script/AsyncScriptIntegrationTests.java | 10 +++ .../scripts/async/extension_csvoutput.js | 20 +++++ 8 files changed, 174 insertions(+) create mode 100644 engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutput.java create mode 100644 engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginData.java create mode 100644 engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginInstance.java create mode 100644 engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriter.java create mode 100644 engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/csvoutput.md create mode 100644 engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriterTest.java create mode 100644 nb/src/test/resources/scripts/async/extension_csvoutput.js diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutput.java b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutput.java new file mode 100644 index 000000000..0de925ab6 --- /dev/null +++ b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutput.java @@ -0,0 +1,4 @@ +package io.nosqlbench.engine.extensions.csvoutput; + +public class CsvOutput { +} diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginData.java b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginData.java new file mode 100644 index 000000000..f67e054de --- /dev/null +++ b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginData.java @@ -0,0 +1,22 @@ +package io.nosqlbench.engine.extensions.csvoutput; + +import com.codahale.metrics.MetricRegistry; +import io.nosqlbench.engine.api.extensions.ScriptingPluginInfo; +import io.nosqlbench.nb.annotations.Service; +import org.apache.logging.log4j.Logger; + +import javax.script.ScriptContext; + +@Service(value = ScriptingPluginInfo.class,selector = "csvoutput") +public class CsvOutputPluginData implements ScriptingPluginInfo { + + @Override + public String getDescription() { + return "Write CSV output to a named file"; + } + + @Override + public CsvOutputPluginInstance getExtensionObject(Logger logger, MetricRegistry metricRegistry, ScriptContext scriptContext) { + return new CsvOutputPluginInstance(); + } +} diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginInstance.java b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginInstance.java new file mode 100644 index 000000000..0158001e3 --- /dev/null +++ b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginInstance.java @@ -0,0 +1,8 @@ +package io.nosqlbench.engine.extensions.csvoutput; + +public class CsvOutputPluginInstance { + + public CsvOutput open(String filename, String... headers) { + return new CsvOutputWriter(filename, headers); + } +} diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriter.java b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriter.java new file mode 100644 index 000000000..2dfcd6ca7 --- /dev/null +++ b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriter.java @@ -0,0 +1,75 @@ +package io.nosqlbench.engine.extensions.csvoutput; + +import org.apache.commons.csv.CSVFormat; +import org.apache.commons.csv.CSVPrinter; +import org.graalvm.polyglot.Value; + +import java.io.FileWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; + +public class CsvOutputWriter extends CsvOutput { + + private final CSVPrinter printer; + private final FileWriter filewriter; + private final LinkedHashSet headerKeys; + private final String filename; + + public CsvOutputWriter(String filename, String... headers) { + this.filename = filename; + CSVFormat fmt = CSVFormat.DEFAULT; + this.headerKeys = new LinkedHashSet<>(Arrays.asList(headers)); + try { + this.filewriter = new FileWriter(filename); + this.printer = new CSVPrinter(filewriter,fmt); + if (Files.size(Path.of(filename))==0) { + printer.printRecord(headerKeys); + printer.flush(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public CsvOutputWriter write(Value value) { + List lineout = new ArrayList<>(); + Map provided = new HashMap<>(); + if (value.isHostObject()) { + Object o = value.asHostObject(); + if (o instanceof Map) { + ((Map) o).forEach((k,v) -> { + provided.put(k.toString(),v.toString()); + }); + } else { + throw new RuntimeException("host object provided as '" + o.getClass().getCanonicalName()+ ", but only Maps are supported."); + } + } else if (value.hasMembers()) { + for (String vkey : value.getMemberKeys()) { + provided.put(vkey,value.getMember(vkey).toString()); + } + } else { + throw new RuntimeException("Value was not a Map host object nor a type with members."); + } + + for (String headerKey : headerKeys) { + if (provided.containsKey(headerKey)) { + lineout.add(provided.remove(headerKey)); + } else { + lineout.add(""); + } + } + if (provided.size()>0) { + throw new RuntimeException("Unqualified column was emitted for file '" + filename); + } + + try { + printer.printRecord(lineout); + printer.flush(); + } catch (IOException e) { + throw new RuntimeException(e); + } + return this; + } +} diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/csvoutput.md b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/csvoutput.md new file mode 100644 index 000000000..502fbd46a --- /dev/null +++ b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/csvoutput.md @@ -0,0 +1,13 @@ +csvoutput extension +=================== + +This extension makes it easy to start writing CSV data to a file, +using a defined set of headers. + +### Examples + +Open a writer and write a row: + + var out=csvoutput.open('output.csv','time','value'); + out.write({'time':23,'value':23}); + diff --git a/engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriterTest.java b/engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriterTest.java new file mode 100644 index 000000000..a91daeb76 --- /dev/null +++ b/engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriterTest.java @@ -0,0 +1,22 @@ +package io.nosqlbench.engine.extensions.csvoutput; + +import org.assertj.core.util.Files; +import org.graalvm.polyglot.Value; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.Map; + +public class CsvOutputWriterTest { + + @Test + public void testCsvOutputWriter() { + File tmpfile = Files.newTemporaryFile(); + tmpfile.deleteOnExit(); + System.out.println("tmpfile="+ tmpfile.getPath()); + CsvOutputWriter out = new CsvOutputWriter(tmpfile.getPath(), "one", "two"); + out.write(Value.asValue(Map.of("one","one_","two","two_"))); + } + + +} diff --git a/nb/src/test/java/io/nosqlbench/engine/core/script/AsyncScriptIntegrationTests.java b/nb/src/test/java/io/nosqlbench/engine/core/script/AsyncScriptIntegrationTests.java index cbfde08a4..1c3e7c3a8 100644 --- a/nb/src/test/java/io/nosqlbench/engine/core/script/AsyncScriptIntegrationTests.java +++ b/nb/src/test/java/io/nosqlbench/engine/core/script/AsyncScriptIntegrationTests.java @@ -178,6 +178,16 @@ public class AsyncScriptIntegrationTests { assertThat(logdata.split("Tag=testhistostatslogger.cycles.servicetime,").length).isGreaterThanOrEqualTo(2); } + @Test + public void testExtensionCsvOutput() throws IOException { + ScenarioResult scenarioResult = runScenario("extension_csvoutput"); + List strings = Files.readAllLines(Paths.get( + "logs/csvoutputtestfile.csv")); + String logdata = strings.stream().collect(Collectors.joining("\n")); + assertThat(logdata).contains("header1,header2"); + assertThat(logdata).contains("value1,value2"); + } + @Test public void testExtensionHistogramLogger() throws IOException { ScenarioResult scenarioResult = runScenario("extension_histologger"); diff --git a/nb/src/test/resources/scripts/async/extension_csvoutput.js b/nb/src/test/resources/scripts/async/extension_csvoutput.js new file mode 100644 index 000000000..77cfe161c --- /dev/null +++ b/nb/src/test/resources/scripts/async/extension_csvoutput.js @@ -0,0 +1,20 @@ +/* + * + * Copyright 2016 jshook + * 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. + * / + */ + +var csvlogger = csvoutput.open("logs/csvoutputtestfile.csv","header1","header2"); + +csvlogger.write({"header1": "value1","header2":"value2"}); From 99b36a6aae6c3ef389f144477fb810bb75a57294 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Mon, 13 Sep 2021 12:47:53 -0500 Subject: [PATCH 10/58] scripting update --- RELEASENOTES.md | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 58ca24a6b..d51fbd0f1 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,20 +1,15 @@ -- c6c69ac1 (HEAD -> main) exclude jcl-over-slf4j across all deps -- c5f0696c doc formatting and typo fixes -- e6c1d206 allow parameterized cql to use standard anchors -- 1bf8b1bf auto enable stacktraces with any -v -- ce1eca57 reduce synonym use to debug -- 14477040 remove extraneous parameters -- 3b4be094 structuring for readability -- ff048bd7 update openapi deps -- a4bad299 (origin/main) Merge pull request #342 from szimmer1/cockroachdb-errorhandler -- 03803847 Refactor error format for error handling in JDBCActivity. Add examples for default error handler specs for cockroabdb-basic and postgres-basic workloads. -- 496ca505 fix yaml typo -- 81d1fc16 also trigger build on all pushes -- 973c1aee also trigger build on pull request -- 409b0d31 nosqlbench-340 CountryCodes() binding function runtime error -- bb3f8b3e Merge branch 'main' of https://github.com/nosqlbench/nosqlbench into main -- c3a6ba0d fix misaligned versions from github PR -- 7acc2dd8 Merge pull request #338 from nosqlbench/dependabot/maven/docsys/org.eclipse.jetty-jetty-server-11.0.3 -- d9ce7b27 Bump jetty-server from 11.0.1 to 11.0.3 in /docsys -- b2ff3653 Merge pull request #337 from XN137/unify-antlr4-version -- 9e1dd21f unify antlr4 version via property +- b76bfd8d (HEAD -> main) add csvoutput scripting plugin for response curve capture +- aaa41053 (origin/main) Merge pull request #349 from ivansenic/ise-fix-stargate-keyvalue +- e0e59b01 Merge pull request #350 from EricBorczuk/fix-other-stargate-cases +- 9fe038a6 fix typo +- fad0eb0d Bring rampup cycles in line with key numbers for other keyvalue tests +- a6c1502c fixing the document api key-value scenario +- 4cadb4e8 Merge pull request #346 from nosqlbench/dependabot/maven/mvn-defaults/org.apache.commons-commons-compress-1.21 +- dededf77 Merge pull request #345 from nosqlbench/dependabot/maven/docsys/org.apache.commons-commons-compress-1.21 +- 1af8efa9 Bump commons-compress from 1.20 to 1.21 in /mvn-defaults +- 41daadb5 Bump commons-compress from 1.20 to 1.21 in /docsys +- 88e4f4b6 Update README.md +- d887b124 Update README.md +- 548ae08e Update README.md +- 7ce6eba9 Merge pull request #343 from yabinmeng/main +- c175411c Update Pulsar API to 2.8.0 From 3dc51f758175beec6a0d6483154ba9eba988ed58 Mon Sep 17 00:00:00 2001 From: nb-droid Date: Mon, 13 Sep 2021 17:58:12 +0000 Subject: [PATCH 11/58] [maven-release-plugin] prepare release nosqlbench-4.15.52 --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index e5f46300e..c37b75c84 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.52-SNAPSHOT + 4.15.52 @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index a022fe503..e145a2798 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.52-SNAPSHOT + 4.15.52 org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 8105532a1..1fd9160ae 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index 757f03218..76a5240bb 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 34c05c727..4720f5cfd 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index 89f25f91b..c4ad4fc65 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index c345224bb..bab5e7c00 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-http/pom.xml b/driver-http/pom.xml index 595f9cf2b..13ed74107 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 4d5dca616..64b4b4dac 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index b6b727148..79225a081 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-stdout - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index 122af2283..f16df2bbf 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index d9002fb13..cea070e68 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-stdout - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index 0b4a1514b..bd554fc19 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index 4c387810b..bc4b09884 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-stdout - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index 3cea03833..ad062558b 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 609e2d4e1..21e42759a 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-stdout - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/driver-web/pom.xml b/driver-web/pom.xml index 5cb51949d..ed9cafb8c 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index a69c0cbfc..f4518d19e 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench virtdata-userlibs - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 7ab6376a9..657ace985 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench nb-annotations - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench virtdata-userlibs - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 94119c4a7..83176d491 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench engine-docker - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index c231faa90..a416ca013 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/engine-core/pom.xml b/engine-core/pom.xml index 1395f730b..e41c57d38 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench drivers-api - 4.15.52-SNAPSHOT + 4.15.52 @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.52-SNAPSHOT + 4.15.52 compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index d9c539585..99b57d0a2 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index 81604bff0..a7038462a 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index ac5a59efe..196b8f4cf 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index 5088267b0..b373745ca 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 93ceb3e9d..229d9c3c0 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.52-SNAPSHOT + 4.15.52 pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.52 diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 84a1dd6a0..34afef996 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 0b3ccab7a..46293c685 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/nb/pom.xml b/nb/pom.xml index f486e9af4..9fcc73bae 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench engine-cli - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench engine-docs - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench engine-core - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench engine-extensions - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-web - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-kafka - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-stdout - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-diag - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-tcp - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-http - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-jmx - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-dsegraph-shaded - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-cql-shaded - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-cqld3-shaded - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-cqlverify - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-mongodb - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-pulsar - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-cockroachdb - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench driver-jms - 4.15.52-SNAPSHOT + 4.15.52 @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/pom.xml b/pom.xml index a9a022f0f..0a79d9ddc 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.52 diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 969e215e1..48c6d3725 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 nb-api io.nosqlbench virtdata-lang - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index 36c47616a..c497d9245 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 99a63ef28..8670d47d4 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 7bc7a3515..f8d1c2107 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench virtdata-lib-basics - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 2faadc9bf..2f25b8a4e 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench virtdata-lib-basics - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index c3ab5c0b1..53bc339a7 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index 64627cd0d..b4fafff22 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.52-SNAPSHOT + 4.15.52 diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index b00dccc7f..e25aaf290 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench virtdata-lib-realer - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench virtdata-api - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench virtdata-lib-random - 4.15.52-SNAPSHOT + 4.15.52 io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 virtdata-lib-basics io.nosqlbench - 4.15.52-SNAPSHOT + 4.15.52 virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.52-SNAPSHOT + 4.15.52 From 871dab0dc78183a8167e856c82eb7610c93ea998 Mon Sep 17 00:00:00 2001 From: nb-droid Date: Mon, 13 Sep 2021 17:58:14 +0000 Subject: [PATCH 12/58] [maven-release-plugin] prepare for next development iteration --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index c37b75c84..840a87e2d 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.52 + 4.15.53-SNAPSHOT @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index e145a2798..d4acae4fe 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.52 + 4.15.53-SNAPSHOT org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 1fd9160ae..d38ab419d 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index 76a5240bb..c4935fb94 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 4720f5cfd..da1b7dc61 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index c4ad4fc65..b282e9f20 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index bab5e7c00..932c88e65 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-http/pom.xml b/driver-http/pom.xml index 13ed74107..238be632a 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 64b4b4dac..e2a751487 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index 79225a081..d9ddb8a37 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-stdout - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index f16df2bbf..55b679659 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index cea070e68..f01338b99 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-stdout - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index bd554fc19..251559fff 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index bc4b09884..0852037ad 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-stdout - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index ad062558b..2d01a94cf 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 21e42759a..c6980e5dc 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-stdout - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/driver-web/pom.xml b/driver-web/pom.xml index ed9cafb8c..8e60e6e06 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index f4518d19e..d04527f71 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 657ace985..a485f62f9 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench nb-annotations - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 83176d491..10e2d7a1f 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench engine-docker - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index a416ca013..d7a973c40 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/engine-core/pom.xml b/engine-core/pom.xml index e41c57d38..bbc09531a 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench drivers-api - 4.15.52 + 4.15.53-SNAPSHOT @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.52 + 4.15.53-SNAPSHOT compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 99b57d0a2..a31241043 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index a7038462a..7048dcba1 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index 196b8f4cf..e3c787fbd 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index b373745ca..a3da4324a 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 229d9c3c0..d31e4800e 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.52 + 4.15.53-SNAPSHOT pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - nosqlbench-4.15.52 + HEAD diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 34afef996..b90c46736 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 46293c685..1750b76fe 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/nb/pom.xml b/nb/pom.xml index 9fcc73bae..269765845 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench engine-cli - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench engine-docs - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench engine-core - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench engine-extensions - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-web - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-kafka - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-stdout - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-diag - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-tcp - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-http - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-jmx - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-dsegraph-shaded - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-cql-shaded - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-cqld3-shaded - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-cqlverify - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-mongodb - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-pulsar - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-cockroachdb - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench driver-jms - 4.15.52 + 4.15.53-SNAPSHOT @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/pom.xml b/pom.xml index 0a79d9ddc..b4b7e9d22 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - nosqlbench-4.15.52 + HEAD diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 48c6d3725..0894a28b8 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT nb-api io.nosqlbench virtdata-lang - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index c497d9245..2842fc34a 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 8670d47d4..8e88b8afa 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index f8d1c2107..74747053c 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 2f25b8a4e..1e57dd060 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index 53bc339a7..7c3e3730b 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index b4fafff22..02f24e049 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.52 + 4.15.53-SNAPSHOT diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index e25aaf290..17ce2acf1 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench virtdata-lib-realer - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench virtdata-api - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench virtdata-lib-random - 4.15.52 + 4.15.53-SNAPSHOT io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT virtdata-lib-basics io.nosqlbench - 4.15.52 + 4.15.53-SNAPSHOT virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.52 + 4.15.53-SNAPSHOT From 29aa1440dba146477b5cb1568675d8e8317972da Mon Sep 17 00:00:00 2001 From: Massimiliano Mirelli Date: Tue, 14 Sep 2021 18:04:57 +0300 Subject: [PATCH 13/58] Dockerfile: openjdk:15-alpine -> adoptopenjdk/openjdk15:alpine-slim --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9d384545d..1bfac057a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:15-alpine +FROM adoptopenjdk/openjdk15:alpine-slim RUN apk --no-cache add curl COPY nb/target/nb.jar nb.jar From 668f9f35ea066ffb4066c3ed362a748d95ad733d Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Tue, 14 Sep 2021 12:04:27 -0500 Subject: [PATCH 14/58] synchronize start of token pool --- .../api/activityapi/ratelimits/ThreadDrivenTokenPool.java | 6 +++--- .../engine/api/activityapi/ratelimits/TokenFiller.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java index a086c4954..b3882f575 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java @@ -55,7 +55,7 @@ public class ThreadDrivenTokenPool implements TokenPool { private long burstPoolSize; private long maxOverActivePool; private double burstRatio; - // TODO Consider removing volatile after investigating + // TODO Consider removing volatile after investigating private volatile long activePool; private volatile long waitingPool; private RateSpec rateSpec; @@ -77,7 +77,7 @@ public class ThreadDrivenTokenPool implements TokenPool { public ThreadDrivenTokenPool(RateSpec rateSpec, ActivityDef activityDef) { this.activityDef = activityDef; apply(rateSpec); - logger.debug("initialized token pool: " + this.toString() + " for rate:" + rateSpec.toString()); + logger.debug("initialized token pool: " + this + " for rate:" + rateSpec); // filler.start(); } @@ -262,7 +262,7 @@ public class ThreadDrivenTokenPool implements TokenPool { } @Override - public void start() { + public synchronized void start() { filler.start(); } } diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/TokenFiller.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/TokenFiller.java index 695da698b..baf7a9348 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/TokenFiller.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/TokenFiller.java @@ -96,7 +96,7 @@ public class TokenFiller implements Runnable { } } - public TokenFiller start() { + public synchronized TokenFiller start() { this.tokenPool.refill(rateSpec.getNanosPerOp()); thread = new Thread(this); @@ -104,7 +104,7 @@ public class TokenFiller implements Runnable { thread.setPriority(Thread.MAX_PRIORITY); thread.setDaemon(true); thread.start(); - logger.debug("Starting token filler thread: " + this.toString()); + logger.debug("Starting token filler thread: " + this); return this; } @@ -123,7 +123,7 @@ public class TokenFiller implements Runnable { public synchronized long restart() { this.lastRefillAt=System.nanoTime(); - logger.debug("Restarting token filler at " + lastRefillAt + " thread: " + this.toString()); + logger.debug("Restarting token filler at " + lastRefillAt + " thread: " + this); long wait = this.tokenPool.restart(); return wait; } From 9d96131bbfff44ad780464e5ca03f25a8e116597 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Tue, 14 Sep 2021 12:05:10 -0500 Subject: [PATCH 15/58] unify name of CsvOutptPlugin impl --- .../extensions/csvoutput/CsvOutput.java | 4 --- .../csvoutput/CsvOutputPluginInstance.java | 4 +-- ...Writer.java => CsvOutputPluginWriter.java} | 35 +++++++++++-------- ...st.java => CsvOutputPluginWriterTest.java} | 4 +-- 4 files changed, 24 insertions(+), 23 deletions(-) delete mode 100644 engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutput.java rename engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/{CsvOutputWriter.java => CsvOutputPluginWriter.java} (60%) rename engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/{CsvOutputWriterTest.java => CsvOutputPluginWriterTest.java} (77%) diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutput.java b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutput.java deleted file mode 100644 index 0de925ab6..000000000 --- a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutput.java +++ /dev/null @@ -1,4 +0,0 @@ -package io.nosqlbench.engine.extensions.csvoutput; - -public class CsvOutput { -} diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginInstance.java b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginInstance.java index 0158001e3..210765b89 100644 --- a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginInstance.java +++ b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginInstance.java @@ -2,7 +2,7 @@ package io.nosqlbench.engine.extensions.csvoutput; public class CsvOutputPluginInstance { - public CsvOutput open(String filename, String... headers) { - return new CsvOutputWriter(filename, headers); + public CsvOutputPluginWriter open(String filename, String... headers) { + return new CsvOutputPluginWriter(filename, headers); } } diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriter.java b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriter.java similarity index 60% rename from engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriter.java rename to engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriter.java index 2dfcd6ca7..66f7fa8f9 100644 --- a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriter.java +++ b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriter.java @@ -8,23 +8,28 @@ import java.io.FileWriter; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.attribute.PosixFilePermissions; import java.util.*; -public class CsvOutputWriter extends CsvOutput { +public class CsvOutputPluginWriter extends CsvOutput { private final CSVPrinter printer; private final FileWriter filewriter; private final LinkedHashSet headerKeys; private final String filename; - public CsvOutputWriter(String filename, String... headers) { - this.filename = filename; - CSVFormat fmt = CSVFormat.DEFAULT; - this.headerKeys = new LinkedHashSet<>(Arrays.asList(headers)); + public CsvOutputPluginWriter(String filename, String... headers) { try { - this.filewriter = new FileWriter(filename); - this.printer = new CSVPrinter(filewriter,fmt); - if (Files.size(Path.of(filename))==0) { + this.filename = filename; + Path filepath = Path.of(filename); + Files.createDirectories(filepath.getParent(), PosixFilePermissions.asFileAttribute( + PosixFilePermissions.fromString("rwxr-x---") + )); + CSVFormat fmt = CSVFormat.DEFAULT; + this.headerKeys = new LinkedHashSet<>(Arrays.asList(headers)); + this.filewriter = new FileWriter(filepath.toString()); + this.printer = new CSVPrinter(filewriter, fmt); + if (Files.size(Path.of(filename)) == 0) { printer.printRecord(headerKeys); printer.flush(); } @@ -33,21 +38,21 @@ public class CsvOutputWriter extends CsvOutput { } } - public CsvOutputWriter write(Value value) { + public CsvOutputPluginWriter write(Value value) { List lineout = new ArrayList<>(); - Map provided = new HashMap<>(); + Map provided = new HashMap<>(); if (value.isHostObject()) { Object o = value.asHostObject(); if (o instanceof Map) { - ((Map) o).forEach((k,v) -> { - provided.put(k.toString(),v.toString()); + ((Map) o).forEach((k, v) -> { + provided.put(k.toString(), v.toString()); }); } else { - throw new RuntimeException("host object provided as '" + o.getClass().getCanonicalName()+ ", but only Maps are supported."); + throw new RuntimeException("host object provided as '" + o.getClass().getCanonicalName() + ", but only Maps are supported."); } } else if (value.hasMembers()) { for (String vkey : value.getMemberKeys()) { - provided.put(vkey,value.getMember(vkey).toString()); + provided.put(vkey, value.getMember(vkey).toString()); } } else { throw new RuntimeException("Value was not a Map host object nor a type with members."); @@ -60,7 +65,7 @@ public class CsvOutputWriter extends CsvOutput { lineout.add(""); } } - if (provided.size()>0) { + if (provided.size() > 0) { throw new RuntimeException("Unqualified column was emitted for file '" + filename); } diff --git a/engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriterTest.java b/engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriterTest.java similarity index 77% rename from engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriterTest.java rename to engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriterTest.java index a91daeb76..473a83876 100644 --- a/engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputWriterTest.java +++ b/engine-extensions/src/test/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriterTest.java @@ -7,14 +7,14 @@ import org.junit.jupiter.api.Test; import java.io.File; import java.util.Map; -public class CsvOutputWriterTest { +public class CsvOutputPluginWriterTest { @Test public void testCsvOutputWriter() { File tmpfile = Files.newTemporaryFile(); tmpfile.deleteOnExit(); System.out.println("tmpfile="+ tmpfile.getPath()); - CsvOutputWriter out = new CsvOutputWriter(tmpfile.getPath(), "one", "two"); + CsvOutputPluginWriter out = new CsvOutputPluginWriter(tmpfile.getPath(), "one", "two"); out.write(Value.asValue(Map.of("one","one_","two","two_"))); } From 61691fc01591ecf521c06383e7a4843220c6d440 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Tue, 14 Sep 2021 12:07:49 -0500 Subject: [PATCH 16/58] add initial version of stepup analysis --- nbr/target/classes/scripts/auto/stepup.js | 79 +++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 nbr/target/classes/scripts/auto/stepup.js diff --git a/nbr/target/classes/scripts/auto/stepup.js b/nbr/target/classes/scripts/auto/stepup.js new file mode 100644 index 000000000..8a0b19968 --- /dev/null +++ b/nbr/target/classes/scripts/auto/stepup.js @@ -0,0 +1,79 @@ +// driver +// workload +// sample_seconds +// min_rate +// rate_step +// max_rate + +function printf(args) { + var spec = arguments[0]; + var values = []; + for (let i = 1; i < arguments.length; i++) { + values.push(arguments[i]); + } + java.lang.System.out.printf(arguments[0], values); +} + +var sample_seconds = 600; +sample_seconds = 0 + TEMPLATE(sample_seconds,sample_seconds); +printf("sample_seconds=%d\n", sample_seconds); + +var min_rate = 1; +min_rate = 0 + TEMPLATE(min_rate,min_rate); +var max_rate = 10000; +max_rate = 0 + TEMPLATE(max_rate,max_rate); +var rate_step = 10000; +rate_step = 0 + TEMPLATE(rate_step,rate_step); +printf("rate (min,step,max) = (%d,%d,%d)\n"); + +var driver = "TEMPLATE(driver,diag)" +var workload = "TEMPLATE(workload,none)" +printf("driver=%s workload=%s\n",driver,workload); + +printf("starting activity for stepup analysis...\n"); +var activitydef = params.withDefaults({ + 'alias': 'stepup', + 'driver': driver, + 'cycles': '1t', + 'stride': '1000', + 'striderate': '1:1.05:restart' +}); + +var csvlogger = csvoutput.open('stepup_metrics/stepup_rates.csv', 'time', 'workload', 'rate', 'ops') +var csvhistologger=csvmetrics.log("stepup_metrics"); +csvlogger.write({'time': java.lang.System.currentTimeMillis()/1000}); + +scenario.start(activitydef); + +printf("waiting 5 seconds for metrics warm-up...\n"); +scenario.waitMillis(5000); + +for (var rate = rate_step; rate < max_rate + rate_step; rate += rate_step) { + if (rate > max_rate) { + rate = max_rate; + } + + print("rate=" + rate); + + activities.stepup.striderate = "" + (rate / 1000.0)+":1.05:restart"; + print("sampling performance for (sample_seconds=" + params.sample_seconds + ")..."); + + var precount = metrics.stepup.cycles.servicetime.count + var waitmillis = sample_seconds * 1000; + print("waitmillis=" + waitmillis); + scenario.waitMillis("" + waitmillis); + var postcount = metrics.stepup.cycles.servicetime.count + var count = postcount - precount; + var ops_per_second = count / params.sample_seconds; + printf("ops_per_second = %f (%f / %f)\n", ops_per_second, count, sample_seconds); + csvlogger.write({ + 'time': java.lang.System.currentTimeMillis()/1000, + 'workload': activitydef.workload, + 'rate': rate, + 'ops': ops_per_second + }); + csvhistologger.report(); +} + +print("stopping activity after stepup analysis\n"); +scenario.stop("stepup") From 17096ebb4625360289f17ea2ad03359627451acb Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Tue, 14 Sep 2021 12:33:58 -0500 Subject: [PATCH 17/58] fix broken tests for ScenarioParser --- .../engine/cli/NBCLIScenarioParserTest.java | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/engine-cli/src/test/java/io/nosqlbench/engine/cli/NBCLIScenarioParserTest.java b/engine-cli/src/test/java/io/nosqlbench/engine/cli/NBCLIScenarioParserTest.java index 1c265f92a..7248da566 100644 --- a/engine-cli/src/test/java/io/nosqlbench/engine/cli/NBCLIScenarioParserTest.java +++ b/engine-cli/src/test/java/io/nosqlbench/engine/cli/NBCLIScenarioParserTest.java @@ -69,23 +69,26 @@ public class NBCLIScenarioParserTest { assertThat(cmds.size()).isEqualTo(6); } - // TODO: make this work -// @Test -// public void testThatTemplatesAreExpandedDefault() { -// NBCLIOptions opts = new NBCLIOptions(new String[]{ "scenario-test", "template-test"}); -// List cmds = opts.getCommands(); -// assertThat(cmds.size()).isEqualTo(1); -// assertThat(cmds.get(0).getCmdSpec()).isEqualTo("driver=stdout;cycles=10;workload=scenario-test.yaml;"); -// } + @Test + public void testThatTemplatesAreExpandedDefault() { + NBCLIOptions opts = new NBCLIOptions(new String[]{ "scenario-test", "template-test"}); + List cmds = opts.getCommands(); + assertThat(cmds.size()).isEqualTo(1); + assertThat(cmds.get(0).getArg("driver")).isEqualTo("stdout"); + assertThat(cmds.get(0).getArg("cycles")).isEqualTo("10"); + assertThat(cmds.get(0).getArg("workload")).isEqualTo("target/test-classes/activities/scenario-test.yaml"); + } - // TODO: Make this work -// @Test -// public void testThatTemplatesAreExpandedOverride() { -// NBCLIOptions opts = new NBCLIOptions(new String[]{ "scenario-test", "template-test", "cycles-test=20"}); -// List cmds = opts.getCommands(); -// assertThat(cmds.size()).isEqualTo(1); -// assertThat(cmds.get(0).getCmdSpec()).isEqualTo("driver=stdout;cycles=20;cycles-test=20;workload=activities/scenario-test.yaml;"); -// } + @Test + public void testThatTemplatesAreExpandedOverride() { + NBCLIOptions opts = new NBCLIOptions(new String[]{ "scenario-test", "template-test", "cycles-test=20"}); + List cmds = opts.getCommands(); + assertThat(cmds.size()).isEqualTo(1); + assertThat(cmds.get(0).getArg("driver")).isEqualTo("stdout"); + assertThat(cmds.get(0).getArg("cycles")).isEqualTo("20"); + assertThat(cmds.get(0).getArg("cycles-test")).isEqualTo("20"); + assertThat(cmds.get(0).getArg("workload")).isEqualTo("target/test-classes/activities/scenario-test.yaml"); + } @Test public void testThatUndefValuesAreUndefined() { From 296013962896d208d617a091e2a67d89a95fb10a Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Tue, 14 Sep 2021 13:08:23 -0500 Subject: [PATCH 18/58] remove erroneous interface --- .../engine/extensions/csvoutput/CsvOutputPluginWriter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriter.java b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriter.java index 66f7fa8f9..d184514c4 100644 --- a/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriter.java +++ b/engine-extensions/src/main/java/io/nosqlbench/engine/extensions/csvoutput/CsvOutputPluginWriter.java @@ -11,7 +11,7 @@ import java.nio.file.Path; import java.nio.file.attribute.PosixFilePermissions; import java.util.*; -public class CsvOutputPluginWriter extends CsvOutput { +public class CsvOutputPluginWriter { private final CSVPrinter printer; private final FileWriter filewriter; From df1764f5ca56a392d34955ba3c0615b74db55c95 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Tue, 14 Sep 2021 13:09:06 -0500 Subject: [PATCH 19/58] fix for #352 progress indicator on console --- .../src/main/java/io/nosqlbench/engine/cli/NBCLIOptions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine-cli/src/main/java/io/nosqlbench/engine/cli/NBCLIOptions.java b/engine-cli/src/main/java/io/nosqlbench/engine/cli/NBCLIOptions.java index b59cbcab1..67226e56c 100644 --- a/engine-cli/src/main/java/io/nosqlbench/engine/cli/NBCLIOptions.java +++ b/engine-cli/src/main/java/io/nosqlbench/engine/cli/NBCLIOptions.java @@ -691,7 +691,7 @@ public class NBCLIOptions { public String getProgressSpec() { ProgressSpec spec = parseProgressSpec(this.progressSpec);// sanity check if (spec.indicatorMode == IndicatorMode.console) { - if (NBLogLevel.INFO.isGreaterOrEqualTo(getConsoleLogLevel())) { + if (getConsoleLogLevel().isGreaterOrEqualTo(NBLogLevel.INFO)) { // System.err.println("Console is already logging info or more, so progress data on console is " + // "suppressed."); spec.indicatorMode = IndicatorMode.logonly; From ea0eae3ddecd0b43184fd530614fa52d071f566c Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Wed, 15 Sep 2021 02:50:10 -0500 Subject: [PATCH 20/58] http: always print body if present and requested --- .../nosqlbench/activitytype/http/HttpConsoleFormats.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java b/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java index 2df81b005..b79aecb28 100644 --- a/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java +++ b/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java @@ -218,7 +218,9 @@ public class HttpConsoleFormats { String contentLenStr = response.headers().map().getOrDefault("content-length", List.of("0")).get(0); Long contentLength = Long.parseLong(contentLenStr); - if (contentLength == 0L) { + String body = response.body(); + + if (contentLength == 0L && (body==null||body.length()==0)) { return; } @@ -230,7 +232,9 @@ public class HttpConsoleFormats { } else { String contentType = contentTypeList.get(0).toLowerCase(); if (isPrintableContentType(contentType)) { - toprint = response.body(); + if (body!=null) { + toprint = body; + } if (toprint == null) { toprint = "content-length was " + contentLength + ", but body was null"; } From 58e79bcde696c4e73746af8302739ae1c3d0f681 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Wed, 15 Sep 2021 02:50:17 -0500 Subject: [PATCH 21/58] http: make body output truncation more obvious --- .../io/nosqlbench/activitytype/http/HttpConsoleFormats.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java b/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java index b79aecb28..e72624220 100644 --- a/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java +++ b/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java @@ -241,15 +241,15 @@ public class HttpConsoleFormats { if (Diag.data1000.includedIn(mask)) { if (toprint.length() > 1000) { - toprint = toprint.substring(0, 1000) + "\n--truncated at 1000 characters--\n"; + toprint = toprint.substring(0, 1000) + "\n^^--truncated at 1000 characters--^^\n"; } } else if (Diag.data100.includedIn(mask)) { if (toprint.length() > 100) { - toprint = toprint.substring(0, 100) + "\n--truncated at 100 characters--\n"; + toprint = toprint.substring(0, 100) + "\n^^--truncated at 100 characters--^^\n"; } } else if (Diag.data10.includedIn(mask)) { if (toprint.length() > 10) { - toprint = toprint.substring(0, 10) + "\n--truncated at 10 characters--\n"; + toprint = toprint.substring(0, 10) + "\n^^--truncated at 10 characters--^^\n"; } } } else { From cdfee8eb21b8fad2c7afea2506e6e3907fa1c438 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Wed, 15 Sep 2021 02:50:25 -0500 Subject: [PATCH 22/58] http: explain http status codes in diagnostic output --- .../activitytype/http/HttpConsoleFormats.java | 7 +- .../http/statuscodes/HttpStatusCodes.java | 64 +++++++++++++++++++ .../http/statuscodes/HttpStatusRanges.java | 35 ++++++++++ .../http/statuscodes/IetfStatusCode.java | 47 ++++++++++++++ driver-http/src/main/resources/http.md | 28 ++++---- .../http/statuscodes/HttpStatusCodesTest.java | 43 +++++++++++++ 6 files changed, 210 insertions(+), 14 deletions(-) create mode 100644 driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusCodes.java create mode 100644 driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusRanges.java create mode 100644 driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/IetfStatusCode.java create mode 100644 driver-http/src/test/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusCodesTest.java diff --git a/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java b/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java index e72624220..fc8ef6c47 100644 --- a/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java +++ b/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java @@ -51,8 +51,9 @@ public class HttpConsoleFormats { redirects(_REDIRECTS), requests(_REQUESTS), responses(_RESPONSES), + codes(_CODES), brief(_HEADERS | _STATS | _REQUESTS | _RESPONSES | _DATA10), - all(_HEADERS | _STATS | _REDIRECTS | _REQUESTS | _RESPONSES | _DATA); + all(_HEADERS | _STATS | _REDIRECTS | _REQUESTS | _RESPONSES | _DATA | _CODES); private final long mask; @@ -191,6 +192,10 @@ public class HttpConsoleFormats { out.println(RESPONSE_CUE + (caption != null ? caption : " RESPONSE") + " status=" + response.statusCode() + " took=" + (nanos / 1_000_000) + "ms"); + if (Diag.codes.includedIn(mask)) { + out.println(DETAIL_CUE + "STATUS: " + HttpStatusCodes.lookup(response.statusCode())); + } + if (e != null) { out.println(MESSAGE_CUE + " EXCEPTION: " + e.getMessage()); } diff --git a/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusCodes.java b/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusCodes.java new file mode 100644 index 000000000..7183afd98 --- /dev/null +++ b/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusCodes.java @@ -0,0 +1,64 @@ +package io.nosqlbench.activitytype.http.statuscodes; + +import io.nosqlbench.nb.api.content.Content; +import io.nosqlbench.nb.api.content.NBIO; +import org.apache.commons.csv.CSVFormat; +import org.apache.commons.csv.CSVParser; +import org.apache.commons.csv.CSVRecord; + +import java.io.IOException; +import java.io.InputStreamReader; + +public class HttpStatusCodes { + + private static final IetfStatusCode[] codes = loadMap(); + + private static IetfStatusCode[] loadMap() { + Content csv = NBIO.local().name("ietf-http-status-codes").extension("csv").one(); + InputStreamReader isr = new InputStreamReader(csv.getInputStream()); + IetfStatusCode[] codes = new IetfStatusCode[600]; + + try { + CSVParser parser = new CSVParser(isr,CSVFormat.DEFAULT.withFirstRecordAsHeader()); + for (CSVRecord record : parser) { + String values = record.get("Value"); + String description = record.get("Description"); + String reference = record.get("Reference"); + + int min, max=0; + if (values.contains("-")) { + min=Integer.parseInt(values.substring(0,values.indexOf('-'))); + max=Integer.parseInt(values.substring(values.indexOf('-'))); + } else { + min = max = Integer.parseInt(values); + } + HttpStatusRanges category = HttpStatusRanges.valueOfCode(min); + IetfStatusCode code = new IetfStatusCode(values,description,reference,category); + for (int value = min; value <=max ; value++) { + codes[value]=code; + } + } + + } catch (IOException e) { + throw new RuntimeException(e); + } + + return codes; + } + + public static IetfStatusCode lookup(int code) { + if (code<1||code>codes.length-1) { + return UNKNOWN(code); + } + IetfStatusCode found = codes[code]; + if (found!=null) { + return found; + } else { + return UNKNOWN(code); + } + } + + private static IetfStatusCode UNKNOWN(int code) { + return new IetfStatusCode(String.valueOf(code),null, "[check https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml]", HttpStatusRanges.valueOfCode(code)); + } +} diff --git a/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusRanges.java b/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusRanges.java new file mode 100644 index 000000000..95b68272e --- /dev/null +++ b/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusRanges.java @@ -0,0 +1,35 @@ +package io.nosqlbench.activitytype.http.statuscodes; + +enum HttpStatusRanges { + Informational("INFORMATIONAL", 100, 199, "Request received, continuing process"), + Success("SUCCESS",200, 299, "Request successfully received, understood, and accepted"), + Redirection("REDIRECTION", 300, 399, "Further action must be taken in order to complete the request."), + Client_Error("CLIENT_ERROR",400, 499, "The request contains bad syntax or cannot be fulfilled."), + Server_Error("SERVER_ERROR",500, 599, "The server failed to fulfill an apparently valid request."), + Unknown("UNKNOWN_ERROR",0,0,"This error type is not known based on IANA registered HTTP status codes."); + + private final String name; + private final String description; + private final int min; + private final int max; + + HttpStatusRanges(String name, int min, int max, String description) { + this.name = name; + this.min = min; + this.max = max; + this.description = description; + } + + public static HttpStatusRanges valueOfCode(int code) { + for (HttpStatusRanges value : HttpStatusRanges.values()) { + if (code >= value.min && code <= value.max) { + return value; + } + } + return HttpStatusRanges.Unknown; + } + + public String toString() { + return this.name + " (" + this.description + ")"; + } +} diff --git a/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/IetfStatusCode.java b/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/IetfStatusCode.java new file mode 100644 index 000000000..ec17f8b07 --- /dev/null +++ b/driver-http/src/main/java/io/nosqlbench/activitytype/http/statuscodes/IetfStatusCode.java @@ -0,0 +1,47 @@ +package io.nosqlbench.activitytype.http.statuscodes; + +public class IetfStatusCode { + private final String values; + private final String description; + private final String reference; + private final HttpStatusRanges category; + + public IetfStatusCode(String values, String description, String reference, HttpStatusRanges category) { + this.values = values; + this.description = description; + this.reference = reference; + this.category = category; + } + + public String getValues() { + return values; + } + + public String getDescription() { + return description; + } + + public String getReference() { + return reference; + } + + public HttpStatusRanges getCategory() { + return category; + } + + public String toString(int code) { + if (values.equals(String.valueOf(code))) { + return toString(); + } else { + return code + ": " + this; + } + } + + public String toString() { + String ref = reference + .replaceFirst("\\[RFC(\\d+), Section (.+?)]","[https://www.iana.org/go/rfc$1#section-$2]") // https://www.rfc-editor.org/rfc/rfc7231.html#section-6.3.1 + .replaceFirst("\\[RFC(\\d+)(.*)]","[https://www.iana.org/go/rfc$1$2]"); // https://www.iana.org/go/rfc7231 + + return (values!=null ? values : "") + (description!=null ? ", "+description :"") + ", " + ref + ", " + category.toString(); + } +} diff --git a/driver-http/src/main/resources/http.md b/driver-http/src/main/resources/http.md index 78f725db3..fb6b44f5c 100644 --- a/driver-http/src/main/resources/http.md +++ b/driver-http/src/main/resources/http.md @@ -106,7 +106,7 @@ statements: The above two examples are semantically identical, only the format is different. Notice that the expansion of the URI is still captured in a -field called uri, with all of the dynamic pieces stitched together in the +field called uri, with all the dynamic pieces stitched together in the value. You can't use arbitrary request fields. Every request field must from (method, uri, version, body, ok-status, ok-body) or otherwise be capitalized to signify an HTTP header. @@ -122,7 +122,7 @@ cached at startup. ## Request Fields -At a minimum, a **URI** must be provided. These are enough to build a +At a minimum, a **URI** must be provided. This is enough to build a request with. All other request fields are optional and have reasonable defaults: @@ -172,7 +172,7 @@ By default, a request which encounters an exception is retried up to 10 times. If you want to change this, set another value to the `retries=` activity parameters. -Presently, no determination is made about whether or not an errored +Presently, no determination is made about whether an errored response *should* be retryable, but it is possible to configure this if you have a specific exception type that indicates a retryable operation. @@ -200,7 +200,10 @@ Presently, this driver only does basic request-response style requests. Thus, adding headers which take TCP socket control away from the HttpClient will likely yield inconsistent (or undefined) results. Support may be added for long-lived connections in a future -release. +release. However, chunked encoding responses are supported, although they +will be received fully before being processed further. Connecting to a long-lived +connection that streams chunked encoding responses indefinitely will have +undefined results. ## HTTP Activity Parameters @@ -217,11 +220,11 @@ release. including only brief details as explained below. This setting is a selector for what level of verbosity you will get on - the console. If you set this to true, you'll get every request and + the console. If you set this to `diag=all`, you'll get every request and response logged to console. This is only for verifying that a test is configured and to spot check services before running higher scale tests. - All of the data shown in diagnostics is post-hoc, directly from the + All the data shown in diagnostics is post-hoc, directly from the response provided by the internal HTTP client in the Java runtime. If you want finer control over how much information diagnostics @@ -229,18 +232,19 @@ release. - headers - show headers - stats - show basic stats of each request + - data - show all of each response body this setting - data10 - show only the first 10 characters of each response body + this setting supersedes `data` - data100 - show only the first 100 characters of each response body this setting supersedes `data10` - data1000 - show only the first 1000 characters of each response body this setting supersedes `data100` - - data - show all of each response body this setting - supersedes `data1000` - redirects - show details for interstitial request which are made when the client follows a redirect directive like a `location` - header. + header - requests - show details for requests - responses - show details for responses + - codes - shows explanatory details (high-level) of http response status codes - brief - Show headers, stats, requests, responses, and 10 characters - all - Show everything, including full payloads and redirects - a modulo - any number, like 3000 - causes the diagnostics to be @@ -248,12 +252,10 @@ release. then you will get the brief diagnostic output for every 300th response. - The requests, responses, and redirects setting work intersectionally. + The requests, responses, and redirects settings work in combination. For example, if you specify responses, and redirect, but not requests, then you will only see the response portion of all calls made by the - client. - - All of the diagnostic filters are incrementally added. + client. All available filters layer together in this way. - **timeout** - default: forever - Sets the timeout of each request in milliseconds. diff --git a/driver-http/src/test/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusCodesTest.java b/driver-http/src/test/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusCodesTest.java new file mode 100644 index 000000000..7594b51dd --- /dev/null +++ b/driver-http/src/test/java/io/nosqlbench/activitytype/http/statuscodes/HttpStatusCodesTest.java @@ -0,0 +1,43 @@ +package io.nosqlbench.activitytype.http.statuscodes; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class HttpStatusCodesTest { + + @Test + public void testLookup() { + IetfStatusCode result = HttpStatusCodes.lookup(404); + assertThat(result.getCategory()).isSameAs(HttpStatusRanges.Client_Error); + assertThat(result.getReference()).isEqualTo("[RFC7231, Section 6.5.4]"); + assertThat(result.getValues()).isEqualTo("404"); + assertThat(result.getDescription()).isEqualTo("Not Found"); + System.out.println(result.toString(404)); + assertThat(result.toString(404)).isEqualTo("404, Not Found, [https://www.iana.org/go/rfc7231#section-6.5.4], CLIENT_ERROR (The request contains bad syntax or cannot be fulfilled.)"); + } + + @Test + public void testUnknownCodeLookupGap() { + IetfStatusCode result = HttpStatusCodes.lookup(496); + assertThat(result.getCategory()).isSameAs(HttpStatusRanges.Client_Error); + assertThat(result.getReference()).isEqualTo("[check https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml]"); + assertThat(result.getValues()).isEqualTo("496"); + assertThat(result.getDescription()).isNullOrEmpty(); + System.out.println(result.toString(496)); + assertThat(result.toString(496)).isEqualTo("496, [check https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml], CLIENT_ERROR (The request contains bad syntax or cannot be fulfilled.)"); + } + + @Test + public void testUnknownCodeLookupRange() { + IetfStatusCode result = HttpStatusCodes.lookup(747); + assertThat(result.getCategory()).isSameAs(HttpStatusRanges.Unknown); + assertThat(result.getReference()).isEqualTo("[check https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml]"); + assertThat(result.getValues()).isEqualTo("747"); + assertThat(result.getDescription()).isNullOrEmpty(); + System.out.println(result.toString(747)); + assertThat(result.toString(747)).isEqualTo("747, [check https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml], UNKNOWN_ERROR (This error type is not known based on IANA registered HTTP status codes.)"); + + } + +} From 7ffc0cd2334f659bdc663960cc93a908cc8f5167 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Wed, 15 Sep 2021 02:51:23 -0500 Subject: [PATCH 23/58] improve http console formats --- .../io/nosqlbench/activitytype/http/HttpConsoleFormats.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java b/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java index fc8ef6c47..60d28aef9 100644 --- a/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java +++ b/driver-http/src/main/java/io/nosqlbench/activitytype/http/HttpConsoleFormats.java @@ -1,5 +1,7 @@ package io.nosqlbench.activitytype.http; +import io.nosqlbench.activitytype.http.statuscodes.HttpStatusCodes; + import java.io.PrintStream; import java.net.http.HttpClient; import java.net.http.HttpHeaders; @@ -39,9 +41,9 @@ public class HttpConsoleFormats { private final static long _DATA10 = 1L << 6; private final static long _DATA100 = 1L << 7; private final static long _DATA1000 = 1L << 8; + private final static long _CODES = 1L << 9; enum Diag { - headers(_HEADERS), stats(_STATS), data(_DATA), From 94ffe1c1bdd790aaeb09c588a4008a77a48269ff Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Wed, 15 Sep 2021 11:47:14 -0500 Subject: [PATCH 24/58] release: bug fixes and minor enhancements to http driver --- RELEASENOTES.md | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index d51fbd0f1..8b29995e1 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,15 +1,13 @@ -- b76bfd8d (HEAD -> main) add csvoutput scripting plugin for response curve capture -- aaa41053 (origin/main) Merge pull request #349 from ivansenic/ise-fix-stargate-keyvalue -- e0e59b01 Merge pull request #350 from EricBorczuk/fix-other-stargate-cases -- 9fe038a6 fix typo -- fad0eb0d Bring rampup cycles in line with key numbers for other keyvalue tests -- a6c1502c fixing the document api key-value scenario -- 4cadb4e8 Merge pull request #346 from nosqlbench/dependabot/maven/mvn-defaults/org.apache.commons-commons-compress-1.21 -- dededf77 Merge pull request #345 from nosqlbench/dependabot/maven/docsys/org.apache.commons-commons-compress-1.21 -- 1af8efa9 Bump commons-compress from 1.20 to 1.21 in /mvn-defaults -- 41daadb5 Bump commons-compress from 1.20 to 1.21 in /docsys -- 88e4f4b6 Update README.md -- d887b124 Update README.md -- 548ae08e Update README.md -- 7ce6eba9 Merge pull request #343 from yabinmeng/main -- c175411c Update Pulsar API to 2.8.0 +- 7ffc0cd2 (HEAD -> main) improve http console formats +- cdfee8eb http: explain http status codes in diagnostic output +- 58e79bcd http: make body output truncation more obvious +- ea0eae3d http: always print body if present and requested +- d3b1e074 Merge branch 'main' of github.com:nosqlbench/nosqlbench +- df1764f5 fix for #352 progress indicator on console +- 29601396 remove erroneous interface +- 7e70a89c (origin/main) Merge pull request #353 from MMirelli/fix/docker-image-alpine-slim +- 17096ebb fix broken tests for ScenarioParser +- 61691fc0 add initial version of stepup analysis +- 9d96131b unify name of CsvOutptPlugin impl +- 668f9f35 synchronize start of token pool +- 29aa1440 Dockerfile: openjdk:15-alpine -> adoptopenjdk/openjdk15:alpine-slim From 4e746491da8c4f4fa88c2d6f34906ff15b6345c9 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Wed, 15 Sep 2021 12:06:27 -0500 Subject: [PATCH 25/58] ignore cache files --- nbr/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 nbr/.gitignore diff --git a/nbr/.gitignore b/nbr/.gitignore new file mode 100644 index 000000000..663efc108 --- /dev/null +++ b/nbr/.gitignore @@ -0,0 +1 @@ +cache/** From 44aef5ba0c7055660a87526f514b431df1815770 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Wed, 15 Sep 2021 12:07:19 -0500 Subject: [PATCH 26/58] release: bug fixes and minor enhancements to http driver --- RELEASENOTES.md | 6 +- .../main/resources/ietf-http-status-codes.csv | 74 +++++++++++++++++++ 2 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 driver-http/src/main/resources/ietf-http-status-codes.csv diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 8b29995e1..579196e6f 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,11 +1,13 @@ -- 7ffc0cd2 (HEAD -> main) improve http console formats +- 4e746491 (HEAD -> main) ignore cache files +- 94ffe1c1 (origin/main) release: bug fixes and minor enhancements to http driver +- 7ffc0cd2 improve http console formats - cdfee8eb http: explain http status codes in diagnostic output - 58e79bcd http: make body output truncation more obvious - ea0eae3d http: always print body if present and requested - d3b1e074 Merge branch 'main' of github.com:nosqlbench/nosqlbench - df1764f5 fix for #352 progress indicator on console - 29601396 remove erroneous interface -- 7e70a89c (origin/main) Merge pull request #353 from MMirelli/fix/docker-image-alpine-slim +- 7e70a89c Merge pull request #353 from MMirelli/fix/docker-image-alpine-slim - 17096ebb fix broken tests for ScenarioParser - 61691fc0 add initial version of stepup analysis - 9d96131b unify name of CsvOutptPlugin impl diff --git a/driver-http/src/main/resources/ietf-http-status-codes.csv b/driver-http/src/main/resources/ietf-http-status-codes.csv new file mode 100644 index 000000000..62bf2df86 --- /dev/null +++ b/driver-http/src/main/resources/ietf-http-status-codes.csv @@ -0,0 +1,74 @@ +Value,Description,Reference +100,Continue,"[RFC7231, Section 6.2.1]" +101,Switching Protocols,"[RFC7231, Section 6.2.2]" +102,Processing,[RFC2518] +103,Early Hints,[RFC8297] +104-199,Unassigned, +200,OK,"[RFC7231, Section 6.3.1]" +201,Created,"[RFC7231, Section 6.3.2]" +202,Accepted,"[RFC7231, Section 6.3.3]" +203,Non-Authoritative Information,"[RFC7231, Section 6.3.4]" +204,No Content,"[RFC7231, Section 6.3.5]" +205,Reset Content,"[RFC7231, Section 6.3.6]" +206,Partial Content,"[RFC7233, Section 4.1]" +207,Multi-Status,[RFC4918] +208,Already Reported,[RFC5842] +209-225,Unassigned, +226,IM Used,[RFC3229] +227-299,Unassigned, +300,Multiple Choices,"[RFC7231, Section 6.4.1]" +301,Moved Permanently,"[RFC7231, Section 6.4.2]" +302,Found,"[RFC7231, Section 6.4.3]" +303,See Other,"[RFC7231, Section 6.4.4]" +304,Not Modified,"[RFC7232, Section 4.1]" +305,Use Proxy,"[RFC7231, Section 6.4.5]" +306,(Unused),"[RFC7231, Section 6.4.6]" +307,Temporary Redirect,"[RFC7231, Section 6.4.7]" +308,Permanent Redirect,[RFC7538] +309-399,Unassigned, +400,Bad Request,"[RFC7231, Section 6.5.1]" +401,Unauthorized,"[RFC7235, Section 3.1]" +402,Payment Required,"[RFC7231, Section 6.5.2]" +403,Forbidden,"[RFC7231, Section 6.5.3]" +404,Not Found,"[RFC7231, Section 6.5.4]" +405,Method Not Allowed,"[RFC7231, Section 6.5.5]" +406,Not Acceptable,"[RFC7231, Section 6.5.6]" +407,Proxy Authentication Required,"[RFC7235, Section 3.2]" +408,Request Timeout,"[RFC7231, Section 6.5.7]" +409,Conflict,"[RFC7231, Section 6.5.8]" +410,Gone,"[RFC7231, Section 6.5.9]" +411,Length Required,"[RFC7231, Section 6.5.10]" +412,Precondition Failed,"[RFC7232, Section 4.2][RFC8144, Section 3.2]" +413,Payload Too Large,"[RFC7231, Section 6.5.11]" +414,URI Too Long,"[RFC7231, Section 6.5.12]" +415,Unsupported Media Type,"[RFC7231, Section 6.5.13][RFC7694, Section 3]" +416,Range Not Satisfiable,"[RFC7233, Section 4.4]" +417,Expectation Failed,"[RFC7231, Section 6.5.14]" +418-420,Unassigned, +421,Misdirected Request,"[RFC7540, Section 9.1.2]" +422,Unprocessable Entity,[RFC4918] +423,Locked,[RFC4918] +424,Failed Dependency,[RFC4918] +425,Too Early,[RFC8470] +426,Upgrade Required,"[RFC7231, Section 6.5.15]" +427,Unassigned, +428,Precondition Required,[RFC6585] +429,Too Many Requests,[RFC6585] +430,Unassigned, +431,Request Header Fields Too Large,[RFC6585] +432-450,Unassigned, +451,Unavailable For Legal Reasons,[RFC7725] +452-499,Unassigned, +500,Internal Server Error,"[RFC7231, Section 6.6.1]" +501,Not Implemented,"[RFC7231, Section 6.6.2]" +502,Bad Gateway,"[RFC7231, Section 6.6.3]" +503,Service Unavailable,"[RFC7231, Section 6.6.4]" +504,Gateway Timeout,"[RFC7231, Section 6.6.5]" +505,HTTP Version Not Supported,"[RFC7231, Section 6.6.6]" +506,Variant Also Negotiates,[RFC2295] +507,Insufficient Storage,[RFC4918] +508,Loop Detected,[RFC5842] +509,Unassigned, +510,Not Extended,[RFC2774] +511,Network Authentication Required,[RFC6585] +512-599,Unassigned, From 8928d49328ff05705690047dd9fab21efa2b313a Mon Sep 17 00:00:00 2001 From: nb-droid Date: Wed, 15 Sep 2021 17:18:33 +0000 Subject: [PATCH 27/58] [maven-release-plugin] prepare release nosqlbench-4.15.53 --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 840a87e2d..4c5368735 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.53-SNAPSHOT + 4.15.53 @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index d4acae4fe..1406e1e95 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.53-SNAPSHOT + 4.15.53 org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index d38ab419d..9dd6ceb69 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index c4935fb94..36c2df0d5 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index da1b7dc61..091fa61be 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index b282e9f20..eb748dd67 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index 932c88e65..ae94f7894 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-http/pom.xml b/driver-http/pom.xml index 238be632a..ed5df6902 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index e2a751487..3a3eb1b26 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index d9ddb8a37..7b695b8ed 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-stdout - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index 55b679659..de01c28c8 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index f01338b99..e64c3c8b2 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-stdout - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index 251559fff..d698cb034 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index 0852037ad..3a8f5c8d6 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-stdout - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index 2d01a94cf..017a3d296 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index c6980e5dc..474146bf7 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-stdout - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/driver-web/pom.xml b/driver-web/pom.xml index 8e60e6e06..5e7464a6c 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index d04527f71..85963fcd3 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench virtdata-userlibs - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/engine-api/pom.xml b/engine-api/pom.xml index a485f62f9..5cb695398 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench nb-annotations - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench virtdata-userlibs - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 10e2d7a1f..1dd13a5bf 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench engine-docker - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index d7a973c40..7f103671d 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/engine-core/pom.xml b/engine-core/pom.xml index bbc09531a..334334f9f 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench drivers-api - 4.15.53-SNAPSHOT + 4.15.53 @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.53-SNAPSHOT + 4.15.53 compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index a31241043..0ab147570 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index 7048dcba1..fbf860abf 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index e3c787fbd..2ddaa74c6 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index a3da4324a..d37bb3e87 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index d31e4800e..9be749e22 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.53-SNAPSHOT + 4.15.53 pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.53 diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index b90c46736..6234c4d78 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 1750b76fe..6c50d8ded 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/nb/pom.xml b/nb/pom.xml index 269765845..8345be0ff 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench engine-cli - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench engine-docs - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench engine-core - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench engine-extensions - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-web - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-kafka - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-stdout - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-diag - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-tcp - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-http - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-jmx - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-dsegraph-shaded - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-cql-shaded - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-cqld3-shaded - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-cqlverify - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-mongodb - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-pulsar - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-cockroachdb - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench driver-jms - 4.15.53-SNAPSHOT + 4.15.53 @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/pom.xml b/pom.xml index b4b7e9d22..36fa9970a 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.53 diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 0894a28b8..f56399b7e 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 nb-api io.nosqlbench virtdata-lang - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index 2842fc34a..f4734a6d9 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 8e88b8afa..4343c91e3 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 74747053c..999304e04 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench virtdata-lib-basics - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 1e57dd060..d61e77d3a 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench virtdata-lib-basics - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index 7c3e3730b..c2947268c 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index 02f24e049..c5b98b01b 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.53-SNAPSHOT + 4.15.53 diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index 17ce2acf1..d99f367a4 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench virtdata-lib-realer - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench virtdata-api - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench virtdata-lib-random - 4.15.53-SNAPSHOT + 4.15.53 io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 virtdata-lib-basics io.nosqlbench - 4.15.53-SNAPSHOT + 4.15.53 virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.53-SNAPSHOT + 4.15.53 From cbaa1f823f7864a63a7be0398353463bffaaecba Mon Sep 17 00:00:00 2001 From: nb-droid Date: Wed, 15 Sep 2021 17:18:35 +0000 Subject: [PATCH 28/58] [maven-release-plugin] prepare for next development iteration --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 4c5368735..9a93a7f93 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.53 + 4.15.54-SNAPSHOT @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index 1406e1e95..c44ee482a 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.53 + 4.15.54-SNAPSHOT org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 9dd6ceb69..b485d636b 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index 36c2df0d5..5e1525928 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 091fa61be..31fb6110b 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index eb748dd67..b38c6eec4 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index ae94f7894..063bf7370 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-http/pom.xml b/driver-http/pom.xml index ed5df6902..1f67a439f 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 3a3eb1b26..41066bfb5 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index 7b695b8ed..dcd657867 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-stdout - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index de01c28c8..5ecf723cc 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index e64c3c8b2..58d974ab3 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-stdout - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index d698cb034..0affca7f2 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index 3a8f5c8d6..d1f54f35e 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-stdout - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index 017a3d296..cdb0b2001 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 474146bf7..c215a5c7c 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-stdout - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/driver-web/pom.xml b/driver-web/pom.xml index 5e7464a6c..e5039af27 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index 85963fcd3..c0826981a 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 5cb695398..845b4ba1f 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench nb-annotations - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 1dd13a5bf..191ac2190 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench engine-docker - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index 7f103671d..413244169 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/engine-core/pom.xml b/engine-core/pom.xml index 334334f9f..5debbfded 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench drivers-api - 4.15.53 + 4.15.54-SNAPSHOT @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.53 + 4.15.54-SNAPSHOT compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 0ab147570..14543c139 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index fbf860abf..74fc33c1d 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index 2ddaa74c6..33658c126 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index d37bb3e87..a28189441 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 9be749e22..581da4ad8 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.53 + 4.15.54-SNAPSHOT pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - nosqlbench-4.15.53 + HEAD diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 6234c4d78..35ff1de37 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 6c50d8ded..6fec97065 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/nb/pom.xml b/nb/pom.xml index 8345be0ff..6ba3902ad 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench engine-cli - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench engine-docs - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench engine-core - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench engine-extensions - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-web - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-kafka - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-stdout - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-diag - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-tcp - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-http - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-jmx - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-dsegraph-shaded - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-cql-shaded - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-cqld3-shaded - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-cqlverify - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-mongodb - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-pulsar - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-cockroachdb - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench driver-jms - 4.15.53 + 4.15.54-SNAPSHOT @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/pom.xml b/pom.xml index 36fa9970a..828c652ed 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - nosqlbench-4.15.53 + HEAD diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index f56399b7e..9e11ab4e0 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT nb-api io.nosqlbench virtdata-lang - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index f4734a6d9..f543a4a02 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 4343c91e3..45ffbcdd6 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 999304e04..17d16dffc 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index d61e77d3a..913bdb024 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index c2947268c..2eb07571b 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index c5b98b01b..4bfbaafd5 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.53 + 4.15.54-SNAPSHOT diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index d99f367a4..dc37aee86 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench virtdata-lib-realer - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench virtdata-api - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench virtdata-lib-random - 4.15.53 + 4.15.54-SNAPSHOT io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT virtdata-lib-basics io.nosqlbench - 4.15.53 + 4.15.54-SNAPSHOT virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.53 + 4.15.54-SNAPSHOT From 9248c915a9be79944e2066d52daa9af62a9f7187 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Fri, 17 Sep 2021 13:12:56 -0500 Subject: [PATCH 29/58] Fix markdown typos introduced by auto formatting --- DOWNLOADS.md | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/DOWNLOADS.md b/DOWNLOADS.md index 151888480..f9e2be8e0 100644 --- a/DOWNLOADS.md +++ b/DOWNLOADS.md @@ -4,29 +4,21 @@ The latest release of NoSQLBench is always available from github releases. -- -download [the latest release of nb](https://github.com/nosqlbench/nosqlbench/releases/latest/download/nb) -, a linux binary +- download [the latest release of nb](https://github.com/nosqlbench/nosqlbench/releases/latest/download/nb), a linux binary - To download it with curl, use `curl -L -O https://github.com/nosqlbench/nosqlbench/releases/latest/download/nb` - . - (be sure to `chmod +x nb` once you download it) -- -download [the latest release of nb.jar](https://github.com/nosqlbench/nosqlbench/releases/latest/download/nb.jar) -, a single-jar application. +- download [the latest release of nb.jar](https://github.com/nosqlbench/nosqlbench/releases/latest/download/nb.jar), a single-jar application. - This requires java 15 or later, make sure your `java -version` command says that you are on Java 15 or later. - - To download it with curl, - use `curl -L -O https://github.com/nosqlbench/nosqlbench/releases/latest/download/nb.jar` - . + - To download it with curl, use `curl -L -O https://github.com/nosqlbench/nosqlbench/releases/latest/download/nb.jar`. ## Docker You can use a live docker image for the latest nosqlbench. 1. run `docker pull nosqlbench/nosqlbench` -2. docserver `docker run -p 12345:12345 --rm --name nb-docs nosqlbench/nosqlbench docserver http://0.0.0.0:12345 -` +2. docserver `docker run -p 12345:12345 --rm --name nb-docs nosqlbench/nosqlbench docserver http://0.0.0.0:12345` 3. Any other command can be run against your nosqlbench docker images using this form. Links to docker images: From c9613bea0a3f6e1ee4562298bef9f14c4fa1e915 Mon Sep 17 00:00:00 2001 From: Ivan Senic Date: Tue, 21 Sep 2021 16:22:51 +0200 Subject: [PATCH 30/58] fixing the path to the uszips realdata --- .../main/java/io/nosqlbench/virtdata/library/realer/Cities.java | 2 +- .../io/nosqlbench/virtdata/library/realer/CitiesByDensity.java | 2 +- .../nosqlbench/virtdata/library/realer/CitiesByPopulation.java | 2 +- .../java/io/nosqlbench/virtdata/library/realer/Counties.java | 2 +- .../nosqlbench/virtdata/library/realer/CountiesByDensity.java | 2 +- .../virtdata/library/realer/CountiesByPopulation.java | 2 +- .../java/io/nosqlbench/virtdata/library/realer/StateCodes.java | 2 +- .../nosqlbench/virtdata/library/realer/StateCodesByDensity.java | 2 +- .../virtdata/library/realer/StateCodesByPopulation.java | 2 +- .../java/io/nosqlbench/virtdata/library/realer/StateNames.java | 2 +- .../nosqlbench/virtdata/library/realer/StateNamesByDensity.java | 2 +- .../virtdata/library/realer/StateNamesByPopulation.java | 2 +- .../java/io/nosqlbench/virtdata/library/realer/TimeZones.java | 2 +- .../virtdata/library/realer/TimeZonesByPopulation.java | 2 +- .../java/io/nosqlbench/virtdata/library/realer/ZipCodes.java | 2 +- .../virtdata/library/realer/ZipCodesByPopulation.java | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/Cities.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/Cities.java index 07dea36b9..27c62f877 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/Cities.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/Cities.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class Cities extends CSVSampler { @Example("Cities()") public Cities() { - super("city","n/a","name","simplemaps/uszips"); + super("city","n/a","name","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CitiesByDensity.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CitiesByDensity.java index f972bd6a8..d875dcb2a 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CitiesByDensity.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CitiesByDensity.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class CitiesByDensity extends CSVSampler { @Example("CitiesByDensity()") public CitiesByDensity() { - super("city","density","simplemaps/uszips"); + super("city","density","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CitiesByPopulation.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CitiesByPopulation.java index 86074ccb5..74ab7f535 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CitiesByPopulation.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CitiesByPopulation.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class CitiesByPopulation extends CSVSampler { @Example("CitiesByPopulation()") public CitiesByPopulation() { - super("city","population","simplemaps/uszips"); + super("city","population","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/Counties.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/Counties.java index 5ae1bf427..503ca9c39 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/Counties.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/Counties.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class Counties extends CSVSampler { @Example("Counties()") public Counties() { - super("city","n/a","name","simplemaps/uszips"); + super("city","n/a","name","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CountiesByDensity.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CountiesByDensity.java index a717c8acc..3ca174270 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CountiesByDensity.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CountiesByDensity.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class CountiesByDensity extends CSVSampler { @Example("CountiesByDensity()") public CountiesByDensity() { - super("county_name","density","simplemaps/uszips"); + super("county_name","density","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CountiesByPopulation.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CountiesByPopulation.java index 3e17dbbfc..f8619a58e 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CountiesByPopulation.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/CountiesByPopulation.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class CountiesByPopulation extends CSVSampler { @Example("CountiesByPopulation()") public CountiesByPopulation() { - super("county_name","population","simplemaps/uszips"); + super("county_name","population","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodes.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodes.java index e43f4574c..407fd6a73 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodes.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodes.java @@ -17,7 +17,7 @@ public class StateCodes extends CSVSampler implements LongFunction { @Example("StateCodes()") public StateCodes() { - super("state_id","n/a","name","simplemaps/uszips"); + super("state_id","n/a","name","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodesByDensity.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodesByDensity.java index 096131618..cf2f02ab3 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodesByDensity.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodesByDensity.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class StateCodesByDensity extends CSVSampler { @Example("StateCodesByDensity()") public StateCodesByDensity() { - super("state_id","density","simplemaps/uszips"); + super("state_id","density","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodesByPopulation.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodesByPopulation.java index b88408131..9fdd78b0c 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodesByPopulation.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateCodesByPopulation.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class StateCodesByPopulation extends CSVSampler { @Example("StateCodesByPopulation()") public StateCodesByPopulation() { - super("state_id","population","simplemaps/uszips"); + super("state_id","population","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNames.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNames.java index 5a0f6ff67..c56230079 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNames.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNames.java @@ -17,7 +17,7 @@ public class StateNames extends CSVSampler implements LongFunction { @Example("StateNames()") public StateNames() { - super("state_name","n/a","name","simplemaps/uszips"); + super("state_name","n/a","name","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNamesByDensity.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNamesByDensity.java index 4ed10b845..735e88749 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNamesByDensity.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNamesByDensity.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class StateNamesByDensity extends CSVSampler { @Example("StateNamesByDensity()") public StateNamesByDensity() { - super("state_name","density","simplemaps/uszips"); + super("state_name","density","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNamesByPopulation.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNamesByPopulation.java index 762a823db..a0c48dd87 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNamesByPopulation.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/StateNamesByPopulation.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class StateNamesByPopulation extends CSVSampler { @Example("StateNamesByPopulation()") public StateNamesByPopulation() { - super("state_name","population","simplemaps/uszips"); + super("state_name","population","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/TimeZones.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/TimeZones.java index 1b31c89ca..e15c36e30 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/TimeZones.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/TimeZones.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class TimeZones extends CSVSampler { @Example("Timezones()") public TimeZones() { - super("timezone","n/a","name","simplemaps/uszips"); + super("timezone","n/a","name","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/TimeZonesByPopulation.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/TimeZonesByPopulation.java index 85a313dc3..426c6977f 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/TimeZonesByPopulation.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/TimeZonesByPopulation.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class TimeZonesByPopulation extends CSVSampler { @Example("TimezonesByPopulation()") public TimeZonesByPopulation() { - super("timezone","population","simplemaps/uszips"); + super("timezone","population","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/ZipCodes.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/ZipCodes.java index c57cd95b8..09cc4d9e3 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/ZipCodes.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/ZipCodes.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class ZipCodes extends CSVSampler { @Example("ZipCodes()") public ZipCodes() { - super("zip","n/a","name","simplemaps/uszips"); + super("zip","n/a","name","data/simplemaps/uszips.csv"); } } diff --git a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/ZipCodesByPopulation.java b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/ZipCodesByPopulation.java index 2c71764fd..5d6ed02a2 100644 --- a/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/ZipCodesByPopulation.java +++ b/virtdata-lib-realer/src/main/java/io/nosqlbench/virtdata/library/realer/ZipCodesByPopulation.java @@ -14,6 +14,6 @@ import io.nosqlbench.virtdata.library.basics.shared.distributions.CSVSampler; public class ZipCodesByPopulation extends CSVSampler { @Example("ZipCodesByPopulation()") public ZipCodesByPopulation() { - super("zip","population","simplemaps/uszips"); + super("zip","population","data/simplemaps/uszips.csv"); } } From 4c7e0bd8895603d4269345589dd029b5a6bbf2bb Mon Sep 17 00:00:00 2001 From: Ivan Senic Date: Tue, 21 Sep 2021 14:19:07 +0200 Subject: [PATCH 31/58] added Documents API CRUD dataset scenario --- .../documents-api/http-docsapi-crud-basic.md | 67 +++++++ .../http-docsapi-crud-basic.yaml | 175 ++++++++++++++++++ .../http-docsapi-crud-dataset.md | 44 +++++ .../http-docsapi-crud-dataset.yaml | 122 ++++++++++++ 4 files changed, 408 insertions(+) create mode 100644 driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.md create mode 100644 driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.yaml create mode 100644 driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.md create mode 100644 driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.yaml diff --git a/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.md b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.md new file mode 100644 index 000000000..81402ef91 --- /dev/null +++ b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.md @@ -0,0 +1,67 @@ +--- +title: Documents API CRUD Basic +weight: 2 +--- + +## Description + +The Documents API CRUD Basic workflow targets Stargate's Documents API using generated JSON documents. +The documents used are sharing the same structure and are approximately half a kilobyte in size each: + +* each document has 13 leaf values, with a maximum depth of 3 +* there is at least one `string`, `boolean`, `number` and `null` leaf +* there is one array with `double` values and one with `string` values +* there is one empty array and one empty map + +The example JSON looks like: + +```json +{ + "user_id":"56fd76f6-081d-401a-85eb-b1d9e5bba058", + "created_on":1476743286, + "gender":"F", + "full_name":"Andrew Daniels", + "married":true, + "address":{ + "primary":{ + "cc":"IO", + "city":"Okmulgee" + }, + "secondary":{ + + } + }, + "coordinates":[ + 64.65964627052323, + -122.35334535072856 + ], + "children":[ + + ], + "friends":[ + "3df498b1-9568-4584-96fd-76f6081da01a" + ], + "debt":null +} +``` + +In contrast to other workflows, this one is not split into ramp-up and main phases. +Instead, there is only the main phase with 4 different load types (write, read, update and delete). + +## Named Scenarios + +### default + +The default scenario for http-docsapi-crud-basic.yaml runs each type of the main phase sequentially: write, read, update and delete. +This means that setting cycles for each of the phases should be done using the: `write-cycles`, `read-cycles`, `update-cycles` and `delete-cycles`. +The default value for all 4 cycles variables is the amount of documents to process (see [Workload Parameters](#workload-parameters)). + +Note that error handling is set to `errors=timer,warn`, which means that in case of HTTP errors the scenario is not stopped. + +## Workload Parameters + +- `docscount` - the number of documents to process in each step of a scenario (default: `10_000_000`) + +Note that if number of documents is higher than `read-cycles` you would experience misses, which will result in `HTTP 404` and smaller latencies. + + diff --git a/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.yaml b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.yaml new file mode 100644 index 000000000..1093ad4fb --- /dev/null +++ b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.yaml @@ -0,0 +1,175 @@ +# nb -v run driver=http yaml=http-docsapi-crud-basic tags=phase:schema stargate_host=my_stargate_host auth_token=$AUTH_TOKEN + +description: | + This workload emulates CRUD operations for the Stargate Documents API. + It generates a simple JSON document to be used for writes and updates. + Note that stargate_port should reflect the port where the Docs API is exposed (defaults to 8082). + +scenarios: + default: + schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF + write: run driver=http tags==phase:main,type:write cycles===TEMPLATE(write-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + read: run driver=http tags==phase:main,type:read cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + update: run driver=http tags==phase:main,type:update cycles===TEMPLATE(update-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + delete: run driver=http tags==phase:main,type:delete cycles===TEMPLATE(delete-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + +bindings: + # To enable an optional weighted set of hosts in place of a load balancer + # Examples + # single host: stargate_host=host1 + # multiple hosts: stargate_host=host1,host2,host3 + # multiple weighted hosts: stargate_host=host1:3,host2:7 + weighted_hosts: WeightedStrings('<>') + # http request id + request_id: ToHashedUUID(); ToString(); + + seq_key: Mod(<>); ToString() -> String + random_key: Uniform(0,<>); ToString() -> String + + user_id: ToHashedUUID(); ToString() -> String + created_on: Uniform(1262304000,1577836800) -> long + gender: WeightedStrings('M:10;F:10;O:1') + full_name: FullNames() + married: ModuloToBoolean() + city: CSVSampler('city','n/a','name','data/simplemaps/uszips.csv') + country_code: CountryCodes() + lat: Uniform(-180d, 180d) + lng: Hash() -> long; Uniform(-180d, 180d) + friend_id: Add(-1); ToHashedUUID(); ToString() -> String + +blocks: + - tags: + phase: schema + statements: + - create-keyspace: POST <>://{weighted_hosts}:<><>/v2/schemas/keyspaces + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + body: | + { + "name": "<>", + "replicas": <> + } + tags: + name: create-keyspace + + - delete-docs-collection: DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<> + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + tags: + name: delete-table + ok-status: "[2-4][0-9][0-9]" + + - create-docs-collection: POST <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + body: | + { + "name": "<>" + } + tags: + name: create-table + + - name: main-write + tags: + phase: main + type: write + statements: + - write-document: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{seq_key} + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + body: | + { + "user_id": "{user_id}", + "created_on": {created_on}, + "gender": "{gender}", + "full_name": "{full_name}", + "married": {married}, + "address": { + "primary": { + "city": "{city}", + "cc": "{country_code}" + }, + "secondary": {} + }, + "coordinates": [ + {lat}, + {lng} + ], + "children": [], + "friends": [ + "{friend_id}" + ], + "debt": null + } + tags: + name: write-document + + - name: main-read + tags: + phase: main + type: read + statements: + - read-document: GET <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{random_key} + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + ok-status: "[2-4][0-9][0-9]" + tags: + name: read-document + + - name: main-update + tags: + phase: main + type: update + statements: + - write-document: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{random_key} + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + body: | + { + "user_id": "{user_id}", + "created_on": {created_on}, + "gender": "{gender}", + "full_name": "{full_name}", + "married": {married}, + "address": { + "primary": { + "city": "{city}", + "cc": "{country_code}" + }, + "secondary": {} + }, + "coordinates": [ + {lat}, + {lng} + ], + "children": [], + "friends": [ + "{friend_id}" + ], + "debt": null + } + tags: + name: update-document + + - name: main-delete + tags: + phase: main + type: delete + statements: + - write-document: DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{seq_key} + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + ok-status: "[2-4][0-9][0-9]" + tags: + name: delete-document diff --git a/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.md b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.md new file mode 100644 index 000000000..bee7d0afe --- /dev/null +++ b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.md @@ -0,0 +1,44 @@ +--- +title: Documents API CRUD using an external Dataset +weight: 3 +--- + +## Description + +The Documents API CRUD Dataset workflow targets Stargate's Documents API using JSON documents from an external dataset. +The [dataset](#dataset) is mandatory and should contain a JSON document per row that should be used as the input for write and update operations. +This workflow is perfect for testing Stargate performance using your own JSON dataset or any other realistic dataset. + +In contrast to other workflows, this one is not split into ramp-up and main phases. +Instead, there is only the main phase with 4 different load types (write, read, update and delete). + +## Named Scenarios + +### default + +The default scenario for http-docsapi-crud-dataset.yaml runs each type of the main phase sequentially: write, read, update and delete. +This means that setting cycles for each of the phases should be done using the: `write-cycles`, `read-cycles`, `update-cycles` and `delete-cycles`. +The default value for all 4 cycles variables is the amount of documents to process (see [Workload Parameters](#workload-parameters)). + +Note that error handling is set to `errors=timer,warn`, which means that in case of HTTP errors the scenario is not stopped. + +## Dataset + +### JSON Documents + +As explained above, in order to run the workflow a file containing JSON documents is needed. +If you don't have a dataset at hand, please have a look at [awesome-json-datasets](https://github.com/jdorfman/awesome-json-datasets). +You can use exposed public APIs to create a realistic dataset of your choice. + +For example, you can easily create a dataset containing [Bitcoin unconfirmed transactions](https://gist.github.com/ivansenic/e280a89aba6420acb4f587d3779af774). + +```bash +curl 'https://blockchain.info/unconfirmed-transactions?format=json&limit=5000' | jq -c '.txs | .[]' > blockchain-unconfirmed-transactions.json +``` + +Above command creates a dataset with 5.000 latest unconfirmed transactions. + +## Workload Parameters + +- `docscount` - the number of documents to process in each step of a scenario (default: `10_000_000`) +- `dataset_file` - the file to read the JSON documents from (note that if number of documents in a file is smaller than the `docscount` parameter, the documents will be reused) diff --git a/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.yaml b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.yaml new file mode 100644 index 000000000..09d19c6d0 --- /dev/null +++ b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.yaml @@ -0,0 +1,122 @@ +# nb -v run driver=http yaml=http-docsapi-crud-dataset tags=phase:schema stargate_host=my_stargate_host auth_token=$AUTH_TOKEN dataset_file=path/to/data.json + +description: | + This workload emulates CRUD operations for the Stargate Documents API. + It requires a data set file, where each line is a single JSON document to be used for writes and updates. + Note that stargate_port should reflect the port where the Docs API is exposed (defaults to 8082). + +scenarios: + default: + schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF + write: run driver=http tags==phase:main,type:write cycles===TEMPLATE(write-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + read: run driver=http tags==phase:main,type:read cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + update: run driver=http tags==phase:main,type:update cycles===TEMPLATE(update-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + delete: run driver=http tags==phase:main,type:delete cycles===TEMPLATE(delete-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + +bindings: + # To enable an optional weighted set of hosts in place of a load balancer + # Examples + # single host: stargate_host=host1 + # multiple hosts: stargate_host=host1,host2,host3 + # multiple weighted hosts: stargate_host=host1:3,host2:7 + weighted_hosts: WeightedStrings('<>') + # http request id + request_id: ToHashedUUID(); ToString(); + + seq_key: Mod(<>); ToString() -> String + random_key: Uniform(0,<>); ToString() -> String + +blocks: + - tags: + phase: schema + statements: + - create-keyspace: POST <>://{weighted_hosts}:<><>/v2/schemas/keyspaces + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + body: | + { + "name": "<>", + "replicas": <> + } + tags: + name: create-keyspace + + - delete-docs-collection: DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<> + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + tags: + name: delete-table + ok-status: "[2-4][0-9][0-9]" + + - create-docs-collection: POST <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + body: | + { + "name": "<>" + } + tags: + name: create-table + + - name: main-write + tags: + phase: main + type: write + statements: + - write-document: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{seq_key} + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + body: "{document_json}" + tags: + name: write-document + bindings: + document_json: ModuloLineToString('<>'); + + - name: main-read + tags: + phase: main + type: read + statements: + - read-document: GET <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{random_key} + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + ok-status: "[2-4][0-9][0-9]" + tags: + name: read-document + + - name: main-update + tags: + phase: main + type: update + statements: + - write-document: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{random_key} + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + Content-Type: "application/json" + body: "{document_json}" + tags: + name: update-document + bindings: + document_json: ModuloLineToString('<>'); + + - name: main-delete + tags: + phase: main + type: delete + statements: + - write-document: DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{seq_key} + Accept: "application/json" + X-Cassandra-Request-Id: "{request_id}" + X-Cassandra-Token: "<>" + ok-status: "[2-4][0-9][0-9]" + tags: + name: delete-document From 3b7bf42f30ac78d8d431eb19be42a888c2b84d74 Mon Sep 17 00:00:00 2001 From: Ivan Senic Date: Wed, 22 Sep 2021 15:46:05 +0200 Subject: [PATCH 32/58] added mongoDB CRUD scenarios --- .../http-docsapi-crud-basic.yaml | 16 +- .../http-docsapi-crud-dataset.yaml | 14 +- .../activities/mongodb-crud-basic.md | 14 ++ .../activities/mongodb-crud-basic.yaml | 183 ++++++++++++++++++ .../activities/mongodb-crud-dataset.md | 18 ++ .../activities/mongodb-crud-dataset.yaml | 114 +++++++++++ 6 files changed, 344 insertions(+), 15 deletions(-) create mode 100644 driver-mongodb/src/main/resources/activities/mongodb-crud-basic.md create mode 100644 driver-mongodb/src/main/resources/activities/mongodb-crud-basic.yaml create mode 100644 driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.md create mode 100644 driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.yaml diff --git a/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.yaml b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.yaml index 1093ad4fb..933782e0a 100644 --- a/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.yaml +++ b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.yaml @@ -7,11 +7,11 @@ description: | scenarios: default: - schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF - write: run driver=http tags==phase:main,type:write cycles===TEMPLATE(write-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn - read: run driver=http tags==phase:main,type:read cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn - update: run driver=http tags==phase:main,type:update cycles===TEMPLATE(update-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn - delete: run driver=http tags==phase:main,type:delete cycles===TEMPLATE(delete-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF + write: run driver=http tags==phase:main,type:write cycles===TEMPLATE(write-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + read: run driver=http tags==phase:main,type:read cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + update: run driver=http tags==phase:main,type:update cycles===TEMPLATE(update-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + delete: run driver=http tags==phase:main,type:delete cycles===TEMPLATE(delete-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn bindings: # To enable an optional weighted set of hosts in place of a load balancer @@ -31,7 +31,7 @@ bindings: gender: WeightedStrings('M:10;F:10;O:1') full_name: FullNames() married: ModuloToBoolean() - city: CSVSampler('city','n/a','name','data/simplemaps/uszips.csv') + city: Cities() country_code: CountryCodes() lat: Uniform(-180d, 180d) lng: Hash() -> long; Uniform(-180d, 180d) @@ -129,7 +129,7 @@ blocks: phase: main type: update statements: - - write-document: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{random_key} + - update-document: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{random_key} Accept: "application/json" X-Cassandra-Request-Id: "{request_id}" X-Cassandra-Token: "<>" @@ -166,7 +166,7 @@ blocks: phase: main type: delete statements: - - write-document: DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{seq_key} + - delete-document: DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{seq_key} Accept: "application/json" X-Cassandra-Request-Id: "{request_id}" X-Cassandra-Token: "<>" diff --git a/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.yaml b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.yaml index 09d19c6d0..e7a89f5b3 100644 --- a/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.yaml +++ b/driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.yaml @@ -7,11 +7,11 @@ description: | scenarios: default: - schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF - write: run driver=http tags==phase:main,type:write cycles===TEMPLATE(write-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn - read: run driver=http tags==phase:main,type:read cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn - update: run driver=http tags==phase:main,type:update cycles===TEMPLATE(update-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn - delete: run driver=http tags==phase:main,type:delete cycles===TEMPLATE(delete-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + schema: run driver=http tags==phase:schema threads==1 cycles==UNDEF + write: run driver=http tags==phase:main,type:write cycles===TEMPLATE(write-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + read: run driver=http tags==phase:main,type:read cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + update: run driver=http tags==phase:main,type:update cycles===TEMPLATE(update-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + delete: run driver=http tags==phase:main,type:delete cycles===TEMPLATE(delete-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn bindings: # To enable an optional weighted set of hosts in place of a load balancer @@ -97,7 +97,7 @@ blocks: phase: main type: update statements: - - write-document: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{random_key} + - update-document: PUT <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{random_key} Accept: "application/json" X-Cassandra-Request-Id: "{request_id}" X-Cassandra-Token: "<>" @@ -113,7 +113,7 @@ blocks: phase: main type: delete statements: - - write-document: DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{seq_key} + - update-document: DELETE <>://{weighted_hosts}:<><>/v2/namespaces/<>/collections/<>/{seq_key} Accept: "application/json" X-Cassandra-Request-Id: "{request_id}" X-Cassandra-Token: "<>" diff --git a/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.md b/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.md new file mode 100644 index 000000000..744062b7e --- /dev/null +++ b/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.md @@ -0,0 +1,14 @@ +--- +title: mongoDB CRUD Basic +weight: 1 +--- + +## Description + +The mongoDB CRUD Basic workflow emulates CRUD operations for the mongoDB using generated JSON documents. +It's a counterpart of the Stargate's Documents API CRUD Basic workflow. +Please refer to [http-docsapi-crud-basic.md](../../../../../driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-basic.md) for the general workflow design details. + +## Indexing + +To simulate a realistic situation as much as possible, this workflow creates 3 additional indexes (apart from `_id`) for the collection where documents are stored. diff --git a/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.yaml b/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.yaml new file mode 100644 index 000000000..de7196042 --- /dev/null +++ b/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.yaml @@ -0,0 +1,183 @@ +# nb -v run driver=mongodb yaml=mongodb-crud-basic tags=phase:schema connection=mongodb://127.0.0.1 database=testdb + +description: | + This workload emulates CRUD operations for the mongoDB. + It generates a simple JSON document to be used for writes and updates. + It's a counterpart of the Stargate's Documents API CRUD Basic workflow. + +scenarios: + default: + schema: run driver=mongodb tags==phase:schema threads==1 cycles==UNDEF + write: run driver=mongodb tags==phase:main,type:write cycles===TEMPLATE(write-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + read: run driver=mongodb tags==phase:main,type:read cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + update: run driver=mongodb tags==phase:main,type:update cycles===TEMPLATE(update-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + delete: run driver=mongodb tags==phase:main,type:delete cycles===TEMPLATE(delete-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + +bindings: + seq_key: Mod(<>); ToString() -> String + random_key: Uniform(0,<>); ToString() -> String + + user_id: ToHashedUUID(); ToString() -> String + created_on: Uniform(1262304000,1577836800) -> long + gender: WeightedStrings('M:10;F:10;O:1') + full_name: FullNames() + married: ModuloToBoolean() + city: Cities() + country_code: CountryCodes() + lat: Uniform(-180d, 180d) + lng: Hash() -> long; Uniform(-180d, 180d) + friend_id: Add(-1); ToHashedUUID(); ToString() -> String + +blocks: + - tags: + phase: schema + statements: + - dummy-insert: | + { + insert: "<>", + documents: [ { _id: "dummyyyy" } ] + } + + - drop-collection: | + { + drop: "<>" + } + tags: + name: drop-collection + + - create-collection: | + { + create: "<>" + } + tags: + name: create-collection + + - create-indexes: | + { + createIndexes: "<>", + indexes: [ + { + key: { user_id: 1 }, + name: "user_id_idx", + unique: true + }, + { + key: { created_on: 1 }, + name: "created_on_idx" + }, + { + key: { gender: 1 }, + name: "gender_idx" + } + ] + } + tags: + name: create-indexes + + - name: main-write + tags: + phase: main + type: write + statements: + - write-document: | + { + insert: "<>", + documents: [ + { + "_id": "{seq_key}", + "user_id": "{user_id}", + "created_on": {created_on}, + "gender": "{gender}", + "full_name": "{full_name}", + "married": {married}, + "address": { + "primary": { + "city": "{city}", + "cc": "{country_code}" + }, + "secondary": {} + }, + "coordinates": [ + {lat}, + {lng} + ], + "children": [], + "friends": [ + "{friend_id}" + ], + "debt": null + } + ] + } + tags: + name: write-document + + - name: main-read + tags: + phase: main + type: read + statements: + - read-document: | + { + find: "<>", + filter: { _id: "{random_key}" } + } + tags: + name: read-document + + - name: main-update + tags: + phase: main + type: update + statements: + - update-document: | + { + update: "<>", + updates: [ + { + q: { _id: "{random_key}" }, + u: { + "_id": "{seq_key}", + "user_id": "{user_id}", + "created_on": {created_on}, + "gender": "{gender}", + "full_name": "{full_name}", + "married": {married}, + "address": { + "primary": { + "city": "{city}", + "cc": "{country_code}" + }, + "secondary": {} + }, + "coordinates": [ + {lat}, + {lng} + ], + "children": [], + "friends": [ + "{friend_id}" + ], + "debt": null + } + } + ] + } + tags: + name: update-document + + - name: main-delete + tags: + phase: main + type: delete + statements: + - delete-document: | + { + delete: "<>", + deletes: [ + { + q: { _id: "{seq_key}" }, + limit: 1 + } + ] + } diff --git a/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.md b/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.md new file mode 100644 index 000000000..2ab9ae289 --- /dev/null +++ b/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.md @@ -0,0 +1,18 @@ +--- +title: mongoDB CRUD Dataset +weight: 2 +--- + +## Description + +The mongoDB CRUD Dataset workflow emulates CRUD operations for the mongoDB using JSON documents from an external dataset. +It's a counterpart of the Stargate's Documents API CRUD Dataset workflow. +Please refer to [http-docsapi-crud-dataset.md](../../../../../driver-http/src/main/resources/activities/documents-api/http-docsapi-crud-dataset.md) for the general workflow design details. + +## Indexing + +To simulate a realistic situation as much as possible, this workflow allows creation of the indexes using the parameter: + +* `indexes` - Specifies the indexes to create. Each document in the array specifies a separate index. Corresponds to the `indexes` field in the [mongoDB *createIndexes* command](https://docs.mongodb.com/manual/reference/command/createIndexes/#mongodb-dbcommand-dbcmd.createIndexes). + +If parameter `indexes` is not specify, a dummy sparse index will be created. diff --git a/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.yaml b/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.yaml new file mode 100644 index 000000000..5bef53850 --- /dev/null +++ b/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.yaml @@ -0,0 +1,114 @@ +# nb -v run driver=mongodb yaml=mongodb-crud-dataset tags=phase:schema connection=mongodb://127.0.0.1 database=testdb dataset_file=path/to/data.json + +description: | + This workload emulates CRUD operations for the mongoDB. + It requires a data set file, where each line is a single JSON document to be used for writes and updates. + It's a counterpart of the Stargate's Documents API CRUD Dataset workflow. + +scenarios: + default: + schema: run driver=mongodb tags==phase:schema threads==1 cycles==UNDEF + write: run driver=mongodb tags==phase:main,type:write cycles===TEMPLATE(write-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + read: run driver=mongodb tags==phase:main,type:read cycles===TEMPLATE(read-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + update: run driver=mongodb tags==phase:main,type:update cycles===TEMPLATE(update-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + delete: run driver=mongodb tags==phase:main,type:delete cycles===TEMPLATE(delete-cycles,TEMPLATE(docscount,10000000)) threads=auto errors=timer,warn + +bindings: + seq_key: Mod(<>); ToString() -> String + random_key: Uniform(0,<>); ToString() -> String + +blocks: + - tags: + phase: schema + statements: + - dummy-insert: | + { + insert: "<>", + documents: [ { _id: "dummyyyy" } ] + } + + - drop-collection: | + { + drop: "<>" + } + tags: + name: drop-collection + + - create-collection: | + { + create: "<>" + } + tags: + name: create-collection + + - create-indexes: | + { + createIndexes: "<>", + indexes: <> + } + tags: + name: create-indexes + + - name: main-write + tags: + phase: main + type: write + statements: + - write-document: | + { + insert: "<>", + documents: [ { "_id": "{seq_key}", {document_json_without_id} ] + } + tags: + name: write-document + bindings: + document_json_without_id: ModuloLineToString('<>'); ReplaceRegex('^\{', '') + + - name: main-read + tags: + phase: main + type: read + statements: + - read-document: | + { + find: "<>", + filter: { _id: "{random_key}" } + } + tags: + name: read-document + + - name: main-update + tags: + phase: main + type: update + statements: + - update-document: | + { + update: "<>", + updates: [ + { + q: { _id: "{random_key}" }, + u: { "_id": "{random_key}", {document_json_without_id} + } + ] + } + tags: + name: update-document + bindings: + document_json_without_id: ModuloLineToString('<>'); ReplaceRegex('^\{', '') + + - name: main-delete + tags: + phase: main + type: delete + statements: + - delete-document: | + { + delete: "<>", + deletes: [ + { + q: { _id: "{seq_key}" }, + limit: 1 + } + ] + } From 3ef807172b5abca200eadef86c05f646602d8094 Mon Sep 17 00:00:00 2001 From: Yabin Meng Date: Wed, 22 Sep 2021 17:17:53 -0500 Subject: [PATCH 33/58] NB Pulsar driver enhancement (milestone 11: https://github.com/nosqlbench/nosqlbench/milestone/11) - add support for message properties - add support for end-to-end latency measurement (latency histogram) - add support for message out-of-order and loss detect - add async api for consumer - split single-topic consumer and multi-topic consumer - SSL/TLS bug fix - Code cleanup --- .../driver/pulsar/PulsarAction.java | 4 +- .../driver/pulsar/PulsarActivity.java | 263 ++++--- .../nosqlbench/driver/pulsar/PulsarSpace.java | 715 +++++++++++------- .../driver/pulsar/PulsarSpaceCache.java | 21 +- .../driver/pulsar/ops/PulsarAdminMapper.java | 4 +- .../ops/PulsarAdminNamespaceMapper.java | 4 +- .../driver/pulsar/ops/PulsarAdminOp.java | 9 - .../pulsar/ops/PulsarAdminTenantMapper.java | 4 +- .../pulsar/ops/PulsarAdminTenantOp.java | 16 +- .../pulsar/ops/PulsarAdminTopicMapper.java | 4 +- .../ops/PulsarBatchProducerEndMapper.java | 4 +- .../pulsar/ops/PulsarBatchProducerEndOp.java | 3 +- .../pulsar/ops/PulsarBatchProducerMapper.java | 30 +- .../pulsar/ops/PulsarBatchProducerOp.java | 8 +- .../ops/PulsarBatchProducerStartMapper.java | 4 +- .../pulsar/ops/PulsarConsumerMapper.java | 47 +- .../driver/pulsar/ops/PulsarConsumerOp.java | 315 ++++++-- .../driver/pulsar/ops/PulsarOpMapper.java | 6 + .../pulsar/ops/PulsarProducerMapper.java | 99 ++- .../driver/pulsar/ops/PulsarProducerOp.java | 163 +++- .../driver/pulsar/ops/PulsarReaderMapper.java | 4 +- .../pulsar/ops/PulsarTransactOpMapper.java | 29 + .../driver/pulsar/ops/ReadyPulsarOp.java | 229 +++++- .../pulsar/util/PulsarActivityUtil.java | 107 ++- .../pulsar/util/PulsarNBClientConf.java | 54 +- .../resources/activities/config.properties | 2 + .../activities/pulsar_client_avro.yaml | 1 + .../activities/pulsar_client_kv.yaml | 25 +- .../activities/pulsar_client_sanity_e2e.yaml | 30 + .../pulsar_client_sanity_seqloss.yaml | 36 + 30 files changed, 1561 insertions(+), 679 deletions(-) create mode 100644 driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarTransactOpMapper.java create mode 100644 driver-pulsar/src/main/resources/activities/pulsar_client_sanity_e2e.yaml create mode 100644 driver-pulsar/src/main/resources/activities/pulsar_client_sanity_seqloss.yaml diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarAction.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarAction.java index 964ebee72..d9c8c0623 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarAction.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarAction.java @@ -41,7 +41,7 @@ public class PulsarAction implements SyncAction { pulsarOp = readyPulsarOp.apply(cycle); } catch (Exception bindException) { // if diagnostic mode ... - activity.getErrorhandler().handleError(bindException, cycle, 0); + activity.getErrorHandler().handleError(bindException, cycle, 0); throw new RuntimeException( "while binding request in cycle " + cycle + ": " + bindException.getMessage(), bindException ); @@ -56,7 +56,7 @@ public class PulsarAction implements SyncAction { break; } catch (RuntimeException err) { ErrorDetail errorDetail = activity - .getErrorhandler() + .getErrorHandler() .handleError(err, cycle, System.nanoTime() - start); if (!errorDetail.isRetryable()) { break; diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarActivity.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarActivity.java index bb0e521bf..6d24f312a 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarActivity.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarActivity.java @@ -20,117 +20,74 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.pulsar.client.admin.PulsarAdmin; import org.apache.pulsar.client.admin.PulsarAdminBuilder; -import org.apache.pulsar.client.admin.internal.PulsarAdminImpl; -import org.apache.pulsar.client.api.PulsarClientException; -import org.apache.pulsar.client.impl.conf.ClientConfigurationData; +import org.apache.pulsar.client.api.*; + +import java.util.Map; public class PulsarActivity extends SimpleActivity implements ActivityDefObserver { private final static Logger logger = LogManager.getLogger(PulsarActivity.class); - public Timer bindTimer; - public Timer executeTimer; - public Counter bytesCounter; - public Histogram messagesizeHistogram; - public Timer createTransactionTimer; - public Timer commitTransactionTimer; + private Counter bytesCounter; + private Histogram messageSizeHistogram; + private Timer bindTimer; + private Timer executeTimer; + private Timer createTransactionTimer; + private Timer commitTransactionTimer; + + // Metrics for NB Pulsar driver milestone: https://github.com/nosqlbench/nosqlbench/milestone/11 + // - end-to-end latency + private Histogram e2eMsgProcLatencyHistogram; private PulsarSpaceCache pulsarCache; - private PulsarAdmin pulsarAdmin; - private PulsarNBClientConf clientConf; - // e.g. pulsar://localhost:6650 + private PulsarNBClientConf pulsarNBClientConf; private String pulsarSvcUrl; - // e.g. http://localhost:8080 private String webSvcUrl; + private PulsarAdmin pulsarAdmin; + private PulsarClient pulsarClient; + private Schema pulsarSchema; - private NBErrorHandler errorhandler; + private NBErrorHandler errorHandler; private OpSequence> sequencer; private volatile Throwable asyncOperationFailure; - // private Supplier clientSupplier; - // private ThreadLocal> tlClientSupplier; - public PulsarActivity(ActivityDef activityDef) { super(activityDef); } - private void initPulsarAdmin() { + @Override + public void shutdownActivity() { + super.shutdownActivity(); - PulsarAdminBuilder adminBuilder = - PulsarAdmin.builder() - .serviceHttpUrl(webSvcUrl); - - try { - String authPluginClassName = - (String) clientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.authPulginClassName.label); - String authParams = - (String) clientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.authParams.label); - - String useTlsStr = - (String) clientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.useTls.label); - boolean useTls = BooleanUtils.toBoolean(useTlsStr); - - String tlsTrustCertsFilePath = - (String) clientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsTrustCertsFilePath.label); - - String tlsAllowInsecureConnectionStr = - (String) clientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsAllowInsecureConnection.label); - boolean tlsAllowInsecureConnection = BooleanUtils.toBoolean(tlsAllowInsecureConnectionStr); - - String tlsHostnameVerificationEnableStr = - (String) clientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsHostnameVerificationEnable.label); - boolean tlsHostnameVerificationEnable = BooleanUtils.toBoolean(tlsHostnameVerificationEnableStr); - - if ( !StringUtils.isAnyBlank(authPluginClassName, authParams) ) { - adminBuilder.authentication(authPluginClassName, authParams); - } - - if ( useTls ) { - adminBuilder - .useKeyStoreTls(true) - .enableTlsHostnameVerification(tlsHostnameVerificationEnable); - - if (!StringUtils.isBlank(tlsTrustCertsFilePath)) - adminBuilder.tlsTrustCertsFilePath(tlsTrustCertsFilePath); - } - - // Put this outside "if (useTls)" block for easier handling of "tlsAllowInsecureConnection" - adminBuilder.allowTlsInsecureConnection(tlsAllowInsecureConnection); - pulsarAdmin = adminBuilder.build(); - - // Not supported in Pulsar 2.8.0 -// ClientConfigurationData configurationData = pulsarAdmin.getClientConfigData(); -// logger.debug(configurationData.toString()); - - } catch (PulsarClientException e) { - logger.error("Fail to create PulsarAdmin from global configuration!"); - throw new RuntimeException("Fail to create PulsarAdmin from global configuration!"); + for (PulsarSpace pulsarSpace : pulsarCache.getAssociatedPulsarSpace()) { + pulsarSpace.shutdownPulsarSpace(); } } @Override public void initActivity() { super.initActivity(); - + bytesCounter = ActivityMetrics.counter(activityDef, "bytes"); + messageSizeHistogram = ActivityMetrics.histogram(activityDef, "message_size"); bindTimer = ActivityMetrics.timer(activityDef, "bind"); executeTimer = ActivityMetrics.timer(activityDef, "execute"); - createTransactionTimer = ActivityMetrics.timer(activityDef, "createtransaction"); - commitTransactionTimer = ActivityMetrics.timer(activityDef, "committransaction"); + createTransactionTimer = ActivityMetrics.timer(activityDef, "create_transaction"); + commitTransactionTimer = ActivityMetrics.timer(activityDef, "commit_transaction"); - bytesCounter = ActivityMetrics.counter(activityDef, "bytes"); - messagesizeHistogram = ActivityMetrics.histogram(activityDef, "messagesize"); + e2eMsgProcLatencyHistogram = ActivityMetrics.histogram(activityDef, "e2e_msg_latency"); String pulsarClntConfFile = activityDef.getParams().getOptionalString("config").orElse("config.properties"); - clientConf = new PulsarNBClientConf(pulsarClntConfFile); + pulsarNBClientConf = new PulsarNBClientConf(pulsarClntConfFile); pulsarSvcUrl = activityDef.getParams().getOptionalString("service_url").orElse("pulsar://localhost:6650"); webSvcUrl = activityDef.getParams().getOptionalString("web_url").orElse("http://localhost:8080"); - initPulsarAdmin(); + initPulsarAdminAndClientObj(); + createPulsarSchemaFromConf(); pulsarCache = new PulsarSpaceCache(this); @@ -138,60 +95,20 @@ public class PulsarActivity extends SimpleActivity implements ActivityDefObserve setDefaultsFromOpSequence(sequencer); onActivityDefUpdate(activityDef); - this.errorhandler = new NBErrorHandler( + this.errorHandler = new NBErrorHandler( () -> activityDef.getParams().getOptionalString("errors").orElse("stop"), this::getExceptionMetrics ); } - public NBErrorHandler getErrorhandler() { - return errorhandler; - } - @Override public synchronized void onActivityDefUpdate(ActivityDef activityDef) { super.onActivityDefUpdate(activityDef); } - public OpSequence> getSequencer() { - return sequencer; - } + public NBErrorHandler getErrorHandler() { return errorHandler; } - public PulsarNBClientConf getPulsarConf() { - return clientConf; - } - - public String getPulsarSvcUrl() { - return pulsarSvcUrl; - } - - public String getWebSvcUrl() { return webSvcUrl; } - - public PulsarAdmin getPulsarAdmin() { return pulsarAdmin; } - - public Timer getBindTimer() { - return bindTimer; - } - - public Timer getExecuteTimer() { - return this.executeTimer; - } - - public Counter getBytesCounter() { - return bytesCounter; - } - - public Timer getCreateTransactionTimer() { - return createTransactionTimer; - } - - public Timer getCommitTransactionTimer() { - return commitTransactionTimer; - } - - public Histogram getMessagesizeHistogram() { - return messagesizeHistogram; - } + public OpSequence> getSequencer() { return sequencer; } public void failOnAsyncOperationFailure() { if (asyncOperationFailure != null) { @@ -202,4 +119,116 @@ public class PulsarActivity extends SimpleActivity implements ActivityDefObserve public void asyncOperationFailed(Throwable ex) { this.asyncOperationFailure = ex; } + + /** + * Initialize + * - PulsarAdmin object for adding/deleting tenant, namespace, and topic + * - PulsarClient object for message publishing and consuming + */ + private void initPulsarAdminAndClientObj() { + PulsarAdminBuilder adminBuilder = + PulsarAdmin.builder() + .serviceHttpUrl(webSvcUrl); + + ClientBuilder clientBuilder = PulsarClient.builder(); + + try { + Map clientConfMap = pulsarNBClientConf.getClientConfMap(); + + // Override "client.serviceUrl" setting in config.properties + clientConfMap.remove("serviceUrl"); + clientBuilder.loadConf(clientConfMap).serviceUrl(pulsarSvcUrl); + + // Pulsar Authentication + String authPluginClassName = + (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.authPulginClassName.label); + String authParams = + (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.authParams.label); + + if ( !StringUtils.isAnyBlank(authPluginClassName, authParams) ) { + adminBuilder.authentication(authPluginClassName, authParams); + clientBuilder.authentication(authPluginClassName, authParams); + } + + String useTlsStr = + (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.useTls.label); + boolean useTls = BooleanUtils.toBoolean(useTlsStr); + + String tlsTrustCertsFilePath = + (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsTrustCertsFilePath.label); + + String tlsAllowInsecureConnectionStr = + (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsAllowInsecureConnection.label); + boolean tlsAllowInsecureConnection = BooleanUtils.toBoolean(tlsAllowInsecureConnectionStr); + + String tlsHostnameVerificationEnableStr = + (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsHostnameVerificationEnable.label); + boolean tlsHostnameVerificationEnable = BooleanUtils.toBoolean(tlsHostnameVerificationEnableStr); + + if ( useTls ) { + adminBuilder + .enableTlsHostnameVerification(tlsHostnameVerificationEnable); + + clientBuilder + .enableTlsHostnameVerification(tlsHostnameVerificationEnable); + + if (!StringUtils.isBlank(tlsTrustCertsFilePath)) { + adminBuilder.tlsTrustCertsFilePath(tlsTrustCertsFilePath); + clientBuilder.tlsTrustCertsFilePath(tlsTrustCertsFilePath); + } + } + + // Put this outside "if (useTls)" block for easier handling of "tlsAllowInsecureConnection" + adminBuilder.allowTlsInsecureConnection(tlsAllowInsecureConnection); + clientBuilder.allowTlsInsecureConnection(tlsAllowInsecureConnection); + + pulsarAdmin = adminBuilder.build(); + pulsarClient = clientBuilder.build(); + + //////////////// + // Not supported in Pulsar 2.8.0 + // + // ClientConfigurationData configurationData = pulsarAdmin.getClientConfigData(); + // logger.debug(configurationData.toString()); + + } catch (PulsarClientException e) { + logger.error("Fail to create PulsarAdmin and/or PulsarClient object from the global configuration!"); + throw new RuntimeException("Fail to create PulsarAdmin and/or PulsarClient object from global configuration!"); + } + } + + /** + * Get Pulsar schema from the definition string + */ + private void createPulsarSchemaFromConf() { + Object value = pulsarNBClientConf.getSchemaConfValue("schema.type"); + String schemaType = (value != null) ? value.toString() : ""; + + if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType)) { + value = pulsarNBClientConf.getSchemaConfValue("schema.definition"); + String schemaDefStr = (value != null) ? value.toString() : ""; + pulsarSchema = PulsarActivityUtil.getAvroSchema(schemaType, schemaDefStr); + } else if (PulsarActivityUtil.isPrimitiveSchemaTypeStr(schemaType)) { + pulsarSchema = PulsarActivityUtil.getPrimitiveTypeSchema((schemaType)); + } else { + throw new RuntimeException("Unsupported schema type string: " + schemaType + "; " + + "Only primitive type and Avro type are supported at the moment!"); + } + } + + public PulsarNBClientConf getPulsarConf() { return this.pulsarNBClientConf;} + public String getPulsarSvcUrl() { return this.pulsarSvcUrl;} + public String getWebSvcUrl() { return this.webSvcUrl; } + public PulsarAdmin getPulsarAdmin() { return this.pulsarAdmin; } + public PulsarClient getPulsarClient() { return this.pulsarClient; } + public Schema getPulsarSchema() { return pulsarSchema; } + + public Counter getBytesCounter() { return bytesCounter; } + public Histogram getMessageSizeHistogram() { return messageSizeHistogram; } + public Timer getBindTimer() { return bindTimer; } + public Timer getExecuteTimer() { return this.executeTimer; } + public Timer getCreateTransactionTimer() { return createTransactionTimer; } + public Timer getCommitTransactionTimer() { return commitTransactionTimer; } + + public Histogram getE2eMsgProcLatencyHistogram() { return e2eMsgProcLatencyHistogram; } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpace.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpace.java index 5101642d1..ef4a9e4fc 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpace.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpace.java @@ -7,7 +7,6 @@ import io.nosqlbench.driver.pulsar.util.PulsarNBClientConf; import io.nosqlbench.engine.api.activityimpl.ActivityDef; import io.nosqlbench.engine.api.metrics.ActivityMetrics; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -17,6 +16,7 @@ import org.apache.pulsar.client.admin.PulsarAdminException; import org.apache.pulsar.client.api.*; import org.apache.pulsar.client.api.transaction.Transaction; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -39,40 +39,36 @@ public class PulsarSpace { private final static Logger logger = LogManager.getLogger(PulsarSpace.class); + private final String spaceName; + private final ConcurrentHashMap> producers = new ConcurrentHashMap<>(); private final ConcurrentHashMap> consumers = new ConcurrentHashMap<>(); private final ConcurrentHashMap> readers = new ConcurrentHashMap<>(); - private final String spaceName; + private final PulsarActivity pulsarActivity; + private final ActivityDef activityDef; + private final PulsarNBClientConf pulsarNBClientConf; private final String pulsarSvcUrl; private final String webSvcUrl; private final PulsarAdmin pulsarAdmin; + private final PulsarClient pulsarClient; + private final Schema pulsarSchema; + private final Set pulsarClusterMetadata = new HashSet<>(); private final Timer createTransactionTimer; - private final Set pulsarClusterMetadata = new HashSet<>(); - - private PulsarClient pulsarClient = null; - private Schema pulsarSchema = null; - private final ActivityDef activityDef; - - public PulsarSpace(String name, - PulsarNBClientConf pulsarClientConf, - String pulsarSvcUrl, - String webSvcUrl, - PulsarAdmin pulsarAdmin, - ActivityDef activityDef, - Timer createTransactionTimer) { + public PulsarSpace(String name, PulsarActivity pulsarActivity) { this.spaceName = name; - this.pulsarNBClientConf = pulsarClientConf; - this.pulsarSvcUrl = pulsarSvcUrl; - this.webSvcUrl = webSvcUrl; - this.pulsarAdmin = pulsarAdmin; - this.activityDef = activityDef; - this.createTransactionTimer = createTransactionTimer; + this.pulsarActivity = pulsarActivity; - createPulsarClientFromConf(); - createPulsarSchemaFromConf(); + this.pulsarNBClientConf = pulsarActivity.getPulsarConf(); + this.pulsarSvcUrl = pulsarActivity.getPulsarSvcUrl(); + this.webSvcUrl = pulsarActivity.getWebSvcUrl(); + this.pulsarAdmin = pulsarActivity.getPulsarAdmin(); + this.pulsarClient = pulsarActivity.getPulsarClient(); + this.pulsarSchema = pulsarActivity.getPulsarSchema(); + this.activityDef = pulsarActivity.getActivityDef(); + this.createTransactionTimer = pulsarActivity.getCreateTransactionTimer(); try { Clusters clusters = pulsarAdmin.clusters(); @@ -86,114 +82,111 @@ public class PulsarSpace { } } - private void createPulsarClientFromConf() { - ClientBuilder clientBuilder = PulsarClient.builder(); - - try { - Map clientConf = pulsarNBClientConf.getClientConfMap(); - - // Override "client.serviceUrl" setting in config.properties - clientConf.remove("serviceUrl"); - clientBuilder.loadConf(clientConf).serviceUrl(pulsarSvcUrl); - - String authPluginClassName = - (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.authPulginClassName.label); - String authParams = - (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.authParams.label); - - String useTlsStr = - (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.useTls.label); - boolean useTls = BooleanUtils.toBoolean(useTlsStr); - - String tlsTrustCertsFilePath = - (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsTrustCertsFilePath.label); - - String tlsAllowInsecureConnectionStr = - (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsAllowInsecureConnection.label); - boolean tlsAllowInsecureConnection = BooleanUtils.toBoolean(tlsAllowInsecureConnectionStr); - - String tlsHostnameVerificationEnableStr = - (String) pulsarNBClientConf.getClientConfValue(PulsarActivityUtil.CLNT_CONF_KEY.tlsHostnameVerificationEnable.label); - boolean tlsHostnameVerificationEnable = BooleanUtils.toBoolean(tlsHostnameVerificationEnableStr); - - if ( !StringUtils.isAnyBlank(authPluginClassName, authParams) ) { - clientBuilder.authentication(authPluginClassName, authParams); - } - - if ( useTls ) { - clientBuilder - .useKeyStoreTls(useTls) - .enableTlsHostnameVerification(tlsHostnameVerificationEnable); - - if (!StringUtils.isBlank(tlsTrustCertsFilePath)) - clientBuilder.tlsTrustCertsFilePath(tlsTrustCertsFilePath); - } - - // Put this outside "if (useTls)" block for easier handling of "tlsAllowInsecureConnection" - clientBuilder.allowTlsInsecureConnection(tlsAllowInsecureConnection); - - pulsarClient = clientBuilder.build(); - } - catch (PulsarClientException pce) { - String errMsg = "Fail to create PulsarClient from global configuration: " + pce.getMessage(); - logger.error(errMsg); - throw new RuntimeException(errMsg); - } - } - - private void createPulsarSchemaFromConf() { - Object value = pulsarNBClientConf.getSchemaConfValue("schema.type"); - String schemaType = (value != null) ? value.toString() : ""; - - if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType)) { - value = pulsarNBClientConf.getSchemaConfValue("schema.definition"); - String schemaDefStr = (value != null) ? value.toString() : ""; - pulsarSchema = PulsarActivityUtil.getAvroSchema(schemaType, schemaDefStr); - } else if (PulsarActivityUtil.isPrimitiveSchemaTypeStr(schemaType)) { - pulsarSchema = PulsarActivityUtil.getPrimitiveTypeSchema((schemaType)); - } else { - throw new RuntimeException("Unsupported schema type string: " + schemaType + "; " + - "Only primitive type and Avro type are supported at the moment!"); - } - } - - public PulsarClient getPulsarClient() { return pulsarClient; } - - public PulsarNBClientConf getPulsarClientConf() { - return pulsarNBClientConf; - } - - public Schema getPulsarSchema() { - return pulsarSchema; - } - + public PulsarNBClientConf getPulsarClientConf() { return pulsarNBClientConf; } public PulsarAdmin getPulsarAdmin() { return pulsarAdmin; } + public PulsarClient getPulsarClient() { return pulsarClient; } + public Schema getPulsarSchema() { return pulsarSchema; } + public String getPulsarSvcUrl() { return pulsarSvcUrl;} + public String getWebSvcUrl() { return webSvcUrl; } + public Set getPulsarClusterMetadata() { return pulsarClusterMetadata; } - public String getPulsarSvcUrl() { - return pulsarSvcUrl; + + // Properly shut down all Pulsar objects (producers, consumers, etc.) that are associated with this space + public void shutdownPulsarSpace() { + try { + for (Producer producer : producers.values()) { + if (producer != null) producer.close(); + } + + for (Consumer consumer : consumers.values()) { + if (consumer != null) consumer.close(); + } + + for (Reader reader : readers.values()) { + if (reader != null) reader.close(); + } + + if (pulsarAdmin != null) pulsarAdmin.close(); + + if (pulsarClient != null) pulsarClient.close(); + } + catch (Exception e) { + throw new RuntimeException("Unexpected error when closing Pulsar objects!"); + } } - public String getWebSvcUrl() { return webSvcUrl; } + /** + * Get a proper Pulsar API metrics prefix depending on the API type + * + * @param apiType - Pulsar API type: producer, consumer, reader, etc. + * @param apiObjName - actual name of a producer, a consumer, a reader, etc. + * @param topicName - topic name + * @return String + */ + private String getPulsarAPIMetricsPrefix(String apiType, String apiObjName, String topicName) { + String apiMetricsPrefix; + + if (!PulsarActivityUtil.isValidPulsarApiType(apiType)) { + throw new RuntimeException( + "Incorrect Pulsar API type. Valid type list: " + PulsarActivityUtil.getValidPulsarApiTypeList()); + } + + if (!StringUtils.isBlank(apiObjName)) { + apiMetricsPrefix = apiObjName + "_"; + } + else { + // we want a meaningful name for the API object (producer, consumer, reader, etc.) + // we are not appending the topic name + apiMetricsPrefix = apiType; + + if (apiType.equalsIgnoreCase(PulsarActivityUtil.PULSAR_API_TYPE.PRODUCER.label)) + apiMetricsPrefix += producers.size(); + else if (apiType.equalsIgnoreCase(PulsarActivityUtil.PULSAR_API_TYPE.CONSUMER.label)) + apiMetricsPrefix += consumers.size(); + else if (apiType.equalsIgnoreCase(PulsarActivityUtil.PULSAR_API_TYPE.READER.label)) + apiMetricsPrefix += readers.size(); + + apiMetricsPrefix += "_"; + } + + apiMetricsPrefix += topicName + "_"; + apiMetricsPrefix = apiMetricsPrefix + // default name for tests/demos (in all Pulsar examples) is persistent://public/default/test -> use just the topic name test + .replace("persistent://public/default/", "") + // always remove topic type + .replace("non-persistent://", "") + .replace("persistent://", "") + // persistent://tenant/namespace/topicname -> tenant_namespace_topicname + .replace("/","_"); + + return apiMetricsPrefix; + } - public Set getPulsarClusterMetadata() { return pulsarClusterMetadata; } ////////////////////////////////////// // Producer Processing --> start ////////////////////////////////////// - // Topic name IS mandatory - // - It must be set at either global level or cycle level - // - If set at both levels, cycle level setting takes precedence - private String getEffectiveProducerTopicName(String cycleTopicName) { - if (!StringUtils.isBlank(cycleTopicName)) { - return cycleTopicName; + // + private static class ProducerGaugeImpl implements Gauge { + private final Producer producer; + private final Function valueExtractor; + + ProducerGaugeImpl(Producer producer, Function valueExtractor) { + this.producer = producer; + this.valueExtractor = valueExtractor; } - String globalTopicName = pulsarNBClientConf.getProducerTopicName(); - if (!StringUtils.isBlank(globalTopicName)) { - return globalTopicName; + @Override + public Object getValue() { + // see Pulsar bug https://github.com/apache/pulsar/issues/10100 + // we need to synchronize on producer otherwise we could receive corrupted data + synchronized(producer) { + return valueExtractor.apply(producer.getStats()); + } } - - throw new RuntimeException(" topic name must be set at either global level or cycle level!"); + } + static Gauge producerSafeExtractMetric(Producer producer, Function valueExtractor) { + return new ProducerGaugeImpl(producer, valueExtractor); } // Producer name is NOT mandatory @@ -212,7 +205,6 @@ public class PulsarSpace { return ""; } - public Supplier getTransactionSupplier() { PulsarClient pulsarClient = getPulsarClient(); return () -> { @@ -233,8 +225,20 @@ public class PulsarSpace { }; } - private static String buildCacheKey(String... keyParts) { - return String.join("::", keyParts); + // Topic name IS mandatory + // - It must be set at either global level or cycle level + // - If set at both levels, cycle level setting takes precedence + private String getEffectiveProducerTopicName(String cycleTopicName) { + if (!StringUtils.isBlank(cycleTopicName)) { + return cycleTopicName; + } + + String globalTopicName = pulsarNBClientConf.getProducerTopicName(); + if (!StringUtils.isBlank(globalTopicName)) { + return globalTopicName; + } + + throw new RuntimeException("Producer topic name must be set at either global level or cycle level!"); } public Producer getProducer(String cycleTopicName, String cycleProducerName) { @@ -242,10 +246,10 @@ public class PulsarSpace { String producerName = getEffectiveProducerName(cycleProducerName); if (StringUtils.isBlank(topicName)) { - throw new RuntimeException("Producer:: must specify a topic name either at the global level or the cycle level"); + throw new RuntimeException("Producer:: must specify a topic name"); } - String producerCacheKey = buildCacheKey(producerName, topicName); + String producerCacheKey = PulsarActivityUtil.buildCacheKey(producerName, topicName); Producer producer = producers.get(producerCacheKey); if (producer == null) { @@ -253,37 +257,47 @@ public class PulsarSpace { // Get other possible producer settings that are set at global level Map producerConf = pulsarNBClientConf.getProducerConfMap(); - producerConf.put(PulsarActivityUtil.PRODUCER_CONF_STD_KEY.topicName.label, topicName); - String producerMetricsPrefix; - if (!StringUtils.isBlank(producerName)) { - producerConf.put(PulsarActivityUtil.PRODUCER_CONF_STD_KEY.producerName.label, producerName); - producerMetricsPrefix = producerName + "_"; - } else { - // we want a meaningful name for the producer - // we are not appending the topic name - producerMetricsPrefix = "producer" + producers.size() + "_" ; - } + // Remove global level settings: "topicName" and "producerName" + producerConf.remove(PulsarActivityUtil.PRODUCER_CONF_STD_KEY.topicName.label); + producerConf.remove(PulsarActivityUtil.PRODUCER_CONF_STD_KEY.producerName.label); - producerMetricsPrefix += topicName + "_"; - producerMetricsPrefix = producerMetricsPrefix - .replace("persistent://public/default/", "") // default name for tests/demos (in all Pulsar examples) is persistent://public/default/test -> use just the topic name test - .replace("non-persistent://", "") // always remove topic type - .replace("persistent://", "") - .replace("/","_"); // persistent://tenant/namespace/topicname -> tenant_namespace_topicname + String producerMetricsPrefix = getPulsarAPIMetricsPrefix( + PulsarActivityUtil.PULSAR_API_TYPE.PRODUCER.label, + producerName, + topicName); try { - ProducerBuilder producerBuilder = pulsarClient.newProducer(pulsarSchema); - producerBuilder.loadConf(producerConf); + ProducerBuilder producerBuilder = pulsarClient. + newProducer(pulsarSchema). + loadConf(producerConf). + topic(topicName); + + if (!StringUtils.isAnyBlank(producerName)) { + producerBuilder = producerBuilder.producerName(producerName); + } + producer = producerBuilder.create(); producers.put(producerCacheKey, producer); - ActivityMetrics.gauge(activityDef, producerMetricsPrefix + "totalbytessent", safeExtractMetric(producer, (s -> s.getTotalBytesSent() + s.getNumBytesSent()))); - ActivityMetrics.gauge(activityDef, producerMetricsPrefix + "totalmsgssent", safeExtractMetric(producer, (s -> s.getTotalMsgsSent() + s.getNumMsgsSent()))); - ActivityMetrics.gauge(activityDef, producerMetricsPrefix + "totalsendfailed", safeExtractMetric(producer, (s -> s.getTotalSendFailed() + s.getNumSendFailed()))); - ActivityMetrics.gauge(activityDef, producerMetricsPrefix + "totalacksreceived", safeExtractMetric(producer,(s -> s.getTotalAcksReceived() + s.getNumAcksReceived()))); - ActivityMetrics.gauge(activityDef, producerMetricsPrefix + "sendbytesrate", safeExtractMetric(producer, ProducerStats::getSendBytesRate)); - ActivityMetrics.gauge(activityDef, producerMetricsPrefix + "sendmsgsrate", safeExtractMetric(producer, ProducerStats::getSendMsgsRate)); + ActivityMetrics.gauge(activityDef, + producerMetricsPrefix + "total_bytes_sent", + producerSafeExtractMetric(producer, (s -> s.getTotalBytesSent() + s.getNumBytesSent()))); + ActivityMetrics.gauge(activityDef, + producerMetricsPrefix + "total_msg_sent", + producerSafeExtractMetric(producer, (s -> s.getTotalMsgsSent() + s.getNumMsgsSent()))); + ActivityMetrics.gauge(activityDef, + producerMetricsPrefix + "total_send_failed", + producerSafeExtractMetric(producer, (s -> s.getTotalSendFailed() + s.getNumSendFailed()))); + ActivityMetrics.gauge(activityDef, + producerMetricsPrefix + "total_ack_received", + producerSafeExtractMetric(producer,(s -> s.getTotalAcksReceived() + s.getNumAcksReceived()))); + ActivityMetrics.gauge(activityDef, + producerMetricsPrefix + "send_bytes_rate", + producerSafeExtractMetric(producer, ProducerStats::getSendBytesRate)); + ActivityMetrics.gauge(activityDef, + producerMetricsPrefix + "send_msg_rate", + producerSafeExtractMetric(producer, ProducerStats::getSendMsgsRate)); } catch (PulsarClientException ple) { throw new RuntimeException("Unable to create a Pulsar producer!", ple); @@ -292,30 +306,7 @@ public class PulsarSpace { return producer; } - - static Gauge safeExtractMetric(Producer producer, Function valueExtractor) { - return new GaugeImpl(producer, valueExtractor); - } - - private static class GaugeImpl implements Gauge { - private final Producer producer; - private final Function valueExtractor; - - GaugeImpl(Producer producer, Function valueExtractor) { - this.producer = producer; - this.valueExtractor = valueExtractor; - } - - @Override - public Object getValue() { - // see Pulsar bug https://github.com/apache/pulsar/issues/10100 - // we need to synchronize on producer otherwise we could receive corrupted data - synchronized(producer) { - return valueExtractor.apply(producer.getStats()); - } - } - } - + // ////////////////////////////////////// // Producer Processing <-- end ////////////////////////////////////// @@ -324,59 +315,28 @@ public class PulsarSpace { ////////////////////////////////////// // Consumer Processing --> start ////////////////////////////////////// - private String getEffectiveTopicNamesStr(String cycleTopicNames) { - if (!StringUtils.isBlank(cycleTopicNames)) { - return cycleTopicNames; + // + private static class ConsumerGaugeImpl implements Gauge { + private final Consumer consumer; + private final Function valueExtractor; + + ConsumerGaugeImpl(Consumer consumer, Function valueExtractor) { + this.consumer = consumer; + this.valueExtractor = valueExtractor; } - String globalTopicNames = pulsarNBClientConf.getConsumerTopicNames(); - if (!StringUtils.isBlank(globalTopicNames)) { - return globalTopicNames; + @Override + public Object getValue() { + // see Pulsar bug https://github.com/apache/pulsar/issues/10100 + // - this is a bug report for producer stats. + // - assume this also applies to consumer stats. + synchronized(consumer) { + return valueExtractor.apply(consumer.getStats()); + } } - - return ""; } - - private List getEffectiveTopicNames(String cycleTopicNames) { - String effectiveTopicNamesStr = getEffectiveTopicNamesStr(cycleTopicNames); - - String[] names = effectiveTopicNamesStr.split("[;,]"); - ArrayList effectiveTopicNameList = new ArrayList<>(); - - for (String name : names) { - if (!StringUtils.isBlank(name)) - effectiveTopicNameList.add(name.trim()); - } - - - return effectiveTopicNameList; - } - - private String getEffectiveTopicPatternStr(String cycleTopicsPattern) { - if (!StringUtils.isBlank(cycleTopicsPattern)) { - return cycleTopicsPattern; - } - - String globalTopicsPattern = pulsarNBClientConf.getConsumerTopicPattern(); - if (!StringUtils.isBlank(globalTopicsPattern)) { - return globalTopicsPattern; - } - - return ""; - } - - private Pattern getEffectiveTopicPattern(String cycleTopicsPattern) { - String effectiveTopicsPatternStr = getEffectiveTopicPatternStr(cycleTopicsPattern); - Pattern topicsPattern; - try { - if (!StringUtils.isBlank(effectiveTopicsPatternStr)) - topicsPattern = Pattern.compile(effectiveTopicsPatternStr); - else - topicsPattern = null; - } catch (PatternSyntaxException pse) { - topicsPattern = null; - } - return topicsPattern; + static Gauge consumerSafeExtractMetric(Consumer consumer, Function valueExtractor) { + return new ConsumerGaugeImpl(consumer, valueExtractor); } private String getEffectiveSubscriptionName(String cycleSubscriptionName) { @@ -404,7 +364,6 @@ public class PulsarSpace { return ""; } - private SubscriptionType getEffectiveSubscriptionType(String cycleSubscriptionType) { String effectiveSubscriptionStr = getEffectiveSubscriptionTypeStr(cycleSubscriptionType); SubscriptionType subscriptionType = SubscriptionType.Exclusive; @@ -434,78 +393,79 @@ public class PulsarSpace { return ""; } - public Consumer getConsumer(String cycleTopicUri, - String cycleTopicNames, - String cycleTopicsPattern, + public Consumer getConsumer(String cycleTopicName, String cycleSubscriptionName, String cycleSubscriptionType, String cycleConsumerName) { - - List topicNames = getEffectiveTopicNames(cycleTopicNames); - String topicsPatternStr = getEffectiveTopicPatternStr(cycleTopicsPattern); - Pattern topicsPattern = getEffectiveTopicPattern(cycleTopicsPattern); String subscriptionName = getEffectiveSubscriptionName(cycleSubscriptionName); SubscriptionType subscriptionType = getEffectiveSubscriptionType(cycleSubscriptionType); String consumerName = getEffectiveConsumerName(cycleConsumerName); - if (StringUtils.isBlank(cycleTopicUri) && topicNames.isEmpty() && (topicsPattern == null)) { - throw new RuntimeException("Consumer:: \"topic_uri\", \"topic_names\" and \"topics_pattern\" parameters can't be all empty/invalid!"); + if ( subscriptionType.equals(SubscriptionType.Exclusive) && (activityDef.getThreads() > 1) ) { + throw new RuntimeException("Consumer:: trying to create multiple consumers of " + + "\"Exclusive\" subscription type under the same subscription name to the same topic!"); } - String consumerCacheKey; - // precedence sequence: - // topic_names (consumer statement param) > - // topics_pattern (consumer statement param) > - // topic_uri (document level param) - if (!topicNames.isEmpty()) { - consumerCacheKey = buildCacheKey( - consumerName, - subscriptionName, - String.join("|", topicNames)); - } else if (topicsPattern != null) { - consumerCacheKey = buildCacheKey( - consumerName, - subscriptionName, - topicsPatternStr); - } else { - consumerCacheKey = buildCacheKey( - consumerName, - subscriptionName, - cycleTopicUri); + if (StringUtils.isAnyBlank(cycleTopicName, subscriptionName)) { + throw new RuntimeException("Consumer:: must specify a topic name and a subscription name"); } + String consumerCacheKey = PulsarActivityUtil.buildCacheKey(consumerName, subscriptionName, cycleTopicName); Consumer consumer = consumers.get(consumerCacheKey); if (consumer == null) { PulsarClient pulsarClient = getPulsarClient(); - // Get other possible producer settings that are set at global level + // Get other possible consumer settings that are set at global level Map consumerConf = new HashMap<>(pulsarNBClientConf.getConsumerConfMap()); - consumerConf.remove("timeout"); - // Explicit topic names will take precedence over topics pattern - if (!topicNames.isEmpty()) { - consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicsPattern.label); - consumerConf.put(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicNames.label, topicNames); - } else if (topicsPattern != null) { - consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicNames.label); - consumerConf.put( - PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicsPattern.label, - getEffectiveTopicPattern(cycleTopicsPattern)); - } else { - topicNames.add(cycleTopicUri); - consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicsPattern.label); - consumerConf.put(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicNames.label, topicNames); - } - - consumerConf.put(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.subscriptionName.label, subscriptionName); - consumerConf.put(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.subscriptionType.label, subscriptionType); - if (!StringUtils.isBlank(consumerName)) { - consumerConf.put(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.consumerName.label, consumerName); - } + // Remove global level settings: + // - "topicNames", "topicsPattern", "subscriptionName", "subscriptionType", "consumerName" + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicNames.label); + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicsPattern.label); + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.subscriptionName.label); + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.subscriptionType.label); + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.consumerName.label); + // Remove non-standard consumer configuration properties + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_CUSTOM_KEY.timeout.label); try { - consumer = pulsarClient.newConsumer(pulsarSchema).loadConf(consumerConf).subscribe(); + ConsumerBuilder consumerBuilder = pulsarClient. + newConsumer(pulsarSchema). + loadConf(consumerConf). + topic(cycleTopicName). + subscriptionName(subscriptionName). + subscriptionType(subscriptionType); + + if (!StringUtils.isBlank(consumerName)) { + consumerBuilder = consumerBuilder.consumerName(consumerName); + } + + consumer = consumerBuilder.subscribe(); + + String consumerMetricsPrefix = getPulsarAPIMetricsPrefix( + PulsarActivityUtil.PULSAR_API_TYPE.CONSUMER.label, + consumerName, + cycleTopicName); + + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "total_bytes_recv", + consumerSafeExtractMetric(consumer, (s -> s.getTotalBytesReceived() + s.getNumBytesReceived()))); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "total_msg_recv", + consumerSafeExtractMetric(consumer, (s -> s.getTotalMsgsReceived() + s.getNumMsgsReceived()))); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "total_recv_failed", + consumerSafeExtractMetric(consumer, (s -> s.getTotalReceivedFailed() + s.getNumReceiveFailed()))); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "total_acks_sent", + consumerSafeExtractMetric(consumer,(s -> s.getTotalAcksSent() + s.getNumAcksSent()))); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "recv_bytes_rate", + consumerSafeExtractMetric(consumer, ConsumerStats::getRateBytesReceived)); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "recv_msg_rate", + consumerSafeExtractMetric(consumer, ConsumerStats::getRateMsgsReceived)); } catch (PulsarClientException ple) { ple.printStackTrace(); throw new RuntimeException("Unable to create a Pulsar consumer!"); @@ -516,11 +476,186 @@ public class PulsarSpace { return consumer; } + // ////////////////////////////////////// // Consumer Processing <-- end ////////////////////////////////////// + ////////////////////////////////////// + // Multi-topic Consumer Processing --> start + ////////////////////////////////////// + // + private String getEffectiveConsumerTopicNameListStr(String cycleTopicNames) { + if (!StringUtils.isBlank(cycleTopicNames)) { + return cycleTopicNames; + } + + String globalTopicNames = pulsarNBClientConf.getConsumerTopicNames(); + if (!StringUtils.isBlank(globalTopicNames)) { + return globalTopicNames; + } + + return ""; + } + + private List getEffectiveConsumerTopicNameList(String cycleTopicNames) { + String effectiveTopicNamesStr = getEffectiveConsumerTopicNameListStr(cycleTopicNames); + + String[] names = effectiveTopicNamesStr.split("[;,]"); + ArrayList effectiveTopicNameList = new ArrayList<>(); + + for (String name : names) { + if (!StringUtils.isBlank(name)) + effectiveTopicNameList.add(name.trim()); + } + + return effectiveTopicNameList; + } + + private String getEffectiveConsumerTopicPatternStr(String cycleTopicsPattern) { + if (!StringUtils.isBlank(cycleTopicsPattern)) { + return cycleTopicsPattern; + } + + String globalTopicsPattern = pulsarNBClientConf.getConsumerTopicPattern(); + if (!StringUtils.isBlank(globalTopicsPattern)) { + return globalTopicsPattern; + } + + return ""; + } + + private Pattern getEffectiveConsumerTopicPattern(String cycleTopicsPattern) { + String effectiveTopicsPatternStr = getEffectiveConsumerTopicPatternStr(cycleTopicsPattern); + Pattern topicsPattern; + try { + if (!StringUtils.isBlank(effectiveTopicsPatternStr)) + topicsPattern = Pattern.compile(effectiveTopicsPatternStr); + else + topicsPattern = null; + } catch (PatternSyntaxException pse) { + topicsPattern = null; + } + return topicsPattern; + } + + public Consumer getMultiTopicConsumer( + String cycleTopicUri, + String cycleTopicNameList, + String cycleTopicsPattern, + String cycleSubscriptionName, + String cycleSubscriptionType, + String cycleConsumerName) { + + List topicNameList = getEffectiveConsumerTopicNameList(cycleTopicNameList); + String topicsPatternStr = getEffectiveConsumerTopicPatternStr(cycleTopicsPattern); + Pattern topicsPattern = getEffectiveConsumerTopicPattern(cycleTopicsPattern); + String subscriptionName = getEffectiveSubscriptionName(cycleSubscriptionName); + SubscriptionType subscriptionType = getEffectiveSubscriptionType(cycleSubscriptionType); + String consumerName = getEffectiveConsumerName(cycleConsumerName); + + if ( subscriptionType.equals(SubscriptionType.Exclusive) && (activityDef.getThreads() > 1) ) { + throw new RuntimeException("Consumer:: trying to create multiple consumers of " + + "\"Exclusive\" subscription type under the same subscription name to the same topic!"); + } + + if (StringUtils.isBlank(cycleTopicUri) && topicNameList.isEmpty() && (topicsPattern == null)) { + throw new RuntimeException("Consumer:: \"topic_uri\", \"topic_names\" and \"topics_pattern\" parameters can't be all empty/invalid!"); + } + + // precedence sequence: + // topic_names (consumer statement param) > + // topics_pattern (consumer statement param) > + // topic_uri (document level param) + String consumerTopicListString; + if (!topicNameList.isEmpty()) { + consumerTopicListString = String.join("|", topicNameList); + } else if (topicsPattern != null) { + consumerTopicListString = topicsPatternStr; + } else { + consumerTopicListString = cycleTopicUri; + } + String consumerCacheKey = PulsarActivityUtil.buildCacheKey( + consumerName, + subscriptionName, + consumerTopicListString); + + Consumer consumer = consumers.get(consumerCacheKey); + + if (consumer == null) { + PulsarClient pulsarClient = getPulsarClient(); + + // Get other possible producer settings that are set at global level + Map consumerConf = new HashMap<>(pulsarNBClientConf.getConsumerConfMap()); + + // Remove global level settings: + // - "topicNameList", "topicsPattern", "subscriptionName", "subscriptionType", "consumerName" + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicNames.label); + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicsPattern.label); + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.subscriptionName.label); + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.subscriptionType.label); + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_STD_KEY.consumerName.label); + // Remove non-standard consumer configuration properties + consumerConf.remove(PulsarActivityUtil.CONSUMER_CONF_CUSTOM_KEY.timeout.label); + + try { + ConsumerBuilder consumerBuilder = pulsarClient.newConsumer(pulsarSchema). + loadConf(consumerConf). + subscriptionName(subscriptionName). + subscriptionType(subscriptionType). + consumerName(consumerName); + + if (!topicNameList.isEmpty()) { + consumerBuilder = consumerBuilder.topics(topicNameList); + } else if (topicsPattern != null) { + consumerBuilder = consumerBuilder.topicsPattern(topicsPattern); + } else { + consumerBuilder = consumerBuilder.topic(cycleTopicUri); + } + + consumer = consumerBuilder.subscribe(); + + String consumerMetricsPrefix = getPulsarAPIMetricsPrefix( + PulsarActivityUtil.PULSAR_API_TYPE.PRODUCER.label, + consumerName, + consumerTopicListString); + + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "totalBytesRecvd", + consumerSafeExtractMetric(consumer, (s -> s.getTotalBytesReceived() + s.getNumBytesReceived()))); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "totalMsgsRecvd", + consumerSafeExtractMetric(consumer, (s -> s.getTotalMsgsReceived() + s.getNumMsgsReceived()))); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "totalRecvdFailed", + consumerSafeExtractMetric(consumer, (s -> s.getTotalReceivedFailed() + s.getNumReceiveFailed()))); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "totalAcksSent", + consumerSafeExtractMetric(consumer,(s -> s.getTotalAcksSent() + s.getNumAcksSent()))); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "recvdBytesRate", + consumerSafeExtractMetric(consumer, ConsumerStats::getRateBytesReceived)); + ActivityMetrics.gauge(activityDef, + consumerMetricsPrefix + "recvdMsgsRate", + consumerSafeExtractMetric(consumer, ConsumerStats::getRateMsgsReceived)); + + } catch (PulsarClientException ple) { + ple.printStackTrace(); + throw new RuntimeException("Unable to create a Pulsar consumer!"); + } + + consumers.put(consumerCacheKey, consumer); + } + + return consumer; + } + // + ////////////////////////////////////// + // Multi-topic Consumer Processing <-- end + ////////////////////////////////////// + + ////////////////////////////////////// // Reader Processing --> Start ////////////////////////////////////// @@ -534,7 +669,7 @@ public class PulsarSpace { return globalReaderTopicName; } - throw new RuntimeException("Reader topic name must be set at either global level or cycle level!"); + throw new RuntimeException("Reader:: Reader topic name must be set at either global level or cycle level!"); } private String getEffectiveReaderName(String cycleReaderName) { @@ -568,35 +703,32 @@ public class PulsarSpace { String cycleStartMsgPos) { String topicName = getEffectiveReaderTopicName(cycleTopicName); - if (StringUtils.isBlank(topicName)) { - throw new RuntimeException("Reader:: must specify a topic name either at the global level or the cycle level"); - } - String readerName = getEffectiveReaderName(cycleReaderName); - String startMsgPosStr = getEffectiveStartMsgPosStr(cycleStartMsgPos); if (!PulsarActivityUtil.isValideReaderStartPosition(startMsgPosStr)) { - throw new RuntimeException("Reader:: Invalid value for Reader start message position!"); + throw new RuntimeException("Reader:: Invalid value for reader start message position!"); } - String readerCacheKey = buildCacheKey(topicName, readerName, startMsgPosStr); + String readerCacheKey = PulsarActivityUtil.buildCacheKey(topicName, readerName, startMsgPosStr); Reader reader = readers.get(readerCacheKey); if (reader == null) { PulsarClient pulsarClient = getPulsarClient(); Map readerConf = pulsarNBClientConf.getReaderConfMap(); - readerConf.put(PulsarActivityUtil.READER_CONF_STD_KEY.topicName.toString(), topicName); - if (!StringUtils.isBlank(readerName)) { - readerConf.put(PulsarActivityUtil.READER_CONF_STD_KEY.readerName.toString(), readerName); - } - - // "reader.startMessagePos" is NOT a standard Pulsar reader conf + // Remove global level settings: "topicName" and "readerName" + readerConf.remove(PulsarActivityUtil.READER_CONF_STD_KEY.topicName.label); + readerConf.remove(PulsarActivityUtil.READER_CONF_STD_KEY.readerName.label); + // Remove non-standard reader configuration properties readerConf.remove(PulsarActivityUtil.READER_CONF_CUSTOM_KEY.startMessagePos.label); try { - ReaderBuilder readerBuilder = pulsarClient.newReader(pulsarSchema).loadConf(readerConf); + ReaderBuilder readerBuilder = pulsarClient. + newReader(pulsarSchema). + loadConf(readerConf). + topic(topicName). + readerName(readerName); MessageId startMsgId = MessageId.latest; if (startMsgPosStr.equalsIgnoreCase(PulsarActivityUtil.READER_MSG_POSITION_TYPE.earliest.label)) { @@ -607,11 +739,8 @@ public class PulsarSpace { // startMsgId = MessageId.latest; //} - if (startMsgId != null) { - readerBuilder = readerBuilder.startMessageId(startMsgId); - } + reader = readerBuilder.startMessageId(startMsgId).create(); - reader = readerBuilder.create(); } catch (PulsarClientException ple) { ple.printStackTrace(); throw new RuntimeException("Unable to create a Pulsar reader!"); diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpaceCache.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpaceCache.java index 262384032..62ab366ed 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpaceCache.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpaceCache.java @@ -20,20 +20,17 @@ public class PulsarSpaceCache { this.activity = pulsarActivity; } - public PulsarSpace getPulsarSpace(String name) { - return clientScopes.computeIfAbsent(name, spaceName -> - new PulsarSpace( - spaceName, - activity.getPulsarConf(), - activity.getPulsarSvcUrl(), - activity.getWebSvcUrl(), - activity.getPulsarAdmin(), - activity.getActivityDef(), - activity.getCreateTransactionTimer() - )); + public Iterable getAssociatedPulsarSpace() { + return clientScopes.values(); } - public PulsarActivity getActivity() { + public PulsarActivity getAssociatedPulsarActivity() { return activity; } + + public PulsarSpace getPulsarSpace(String name) { + return clientScopes.computeIfAbsent(name, spaceName -> new PulsarSpace(spaceName, activity)); + } + + public PulsarActivity getActivity() { return activity; } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminMapper.java index ba0cf5140..612f84aff 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminMapper.java @@ -1,5 +1,6 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; @@ -21,9 +22,10 @@ public abstract class PulsarAdminMapper extends PulsarOpMapper { protected PulsarAdminMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, LongFunction adminDelOpFunc) { - super(cmdTpl, clientSpace, asyncApiFunc); + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc); this.adminDelOpFunc = adminDelOpFunc; } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminNamespaceMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminNamespaceMapper.java index c95293072..28872671b 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminNamespaceMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminNamespaceMapper.java @@ -1,5 +1,6 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; @@ -21,11 +22,12 @@ public class PulsarAdminNamespaceMapper extends PulsarAdminMapper { public PulsarAdminNamespaceMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, LongFunction adminDelOpFunc, LongFunction namespaceFunc) { - super(cmdTpl, clientSpace, asyncApiFunc, adminDelOpFunc); + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc, adminDelOpFunc); this.namespaceFunc = namespaceFunc; } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminOp.java index 49273c7ae..ee1f68620 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminOp.java @@ -1,17 +1,8 @@ package io.nosqlbench.driver.pulsar.ops; import io.nosqlbench.driver.pulsar.PulsarSpace; -import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.pulsar.client.admin.Namespaces; -import org.apache.pulsar.client.admin.PulsarAdmin; -import org.apache.pulsar.client.admin.PulsarAdminException; -import org.apache.pulsar.client.admin.Tenants; -import org.apache.pulsar.common.policies.data.TenantInfo; - -import java.util.Set; -import java.util.concurrent.CompletableFuture; public abstract class PulsarAdminOp extends SyncPulsarOp { diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantMapper.java index 78cc441e5..177333184 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantMapper.java @@ -1,5 +1,6 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; @@ -23,13 +24,14 @@ public class PulsarAdminTenantMapper extends PulsarAdminMapper { public PulsarAdminTenantMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, LongFunction adminDelOpFunc, LongFunction> adminRolesFunc, LongFunction> allowedClustersFunc, LongFunction tenantFunc) { - super(cmdTpl, clientSpace, asyncApiFunc, adminDelOpFunc); + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc, adminDelOpFunc); this.adminRolesFunc = adminRolesFunc; this.allowedClustersFunc = allowedClustersFunc; this.tenantFunc = tenantFunc; diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java index 6f0102320..77ad3c8fe 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java @@ -8,8 +8,7 @@ import org.apache.pulsar.client.admin.Namespaces; import org.apache.pulsar.client.admin.PulsarAdmin; import org.apache.pulsar.client.admin.PulsarAdminException; import org.apache.pulsar.client.admin.Tenants; -import org.apache.pulsar.common.policies.data.TenantInfoImpl; - +import org.apache.pulsar.common.policies.data.TenantInfo; import java.util.Set; import java.util.concurrent.CompletableFuture; @@ -45,15 +44,10 @@ public class PulsarAdminTenantOp extends PulsarAdminOp { // Admin API - create tenants and namespaces if (!adminDelOp) { - - TenantInfoImpl tenantInfo = TenantInfoImpl.builder().build(); - tenantInfo.setAdminRoles(adminRoleSet); - - if ( !allowedClusterSet.isEmpty() ) { - tenantInfo.setAllowedClusters(allowedClusterSet); - } else { - tenantInfo.setAllowedClusters(clientSpace.getPulsarClusterMetadata()); - } + TenantInfo tenantInfo = TenantInfo.builder() + .adminRoles(adminRoleSet) + .allowedClusters(!allowedClusterSet.isEmpty() ? allowedClusterSet : clientSpace.getPulsarClusterMetadata()) + .build(); try { if (!asyncApi) { diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTopicMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTopicMapper.java index c9b2512ba..ee906502c 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTopicMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTopicMapper.java @@ -1,5 +1,6 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; import org.apache.commons.lang3.BooleanUtils; @@ -24,13 +25,14 @@ public class PulsarAdminTopicMapper extends PulsarAdminMapper { public PulsarAdminTopicMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, LongFunction adminDelOpFunc, LongFunction topicUriFunc, LongFunction enablePartionFunc, LongFunction partitionNumFunc) { - super(cmdTpl, clientSpace, asyncApiFunc, adminDelOpFunc); + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc, adminDelOpFunc); this.topicUriFunc = topicUriFunc; this.enablePartionFunc = enablePartionFunc; this.partitionNumFunc = partitionNumFunc; diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerEndMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerEndMapper.java index 94ccf27c4..2463ec14d 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerEndMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerEndMapper.java @@ -1,5 +1,6 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; @@ -9,9 +10,10 @@ public class PulsarBatchProducerEndMapper extends PulsarOpMapper { public PulsarBatchProducerEndMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc) { - super(cmdTpl, clientSpace, asyncApiFunc); + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc); } @Override diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerEndOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerEndOp.java index 7d2fe51b0..9aba10001 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerEndOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerEndOp.java @@ -24,7 +24,8 @@ public class PulsarBatchProducerEndOp extends SyncPulsarOp { container.clear(); PulsarBatchProducerStartOp.threadLocalBatchMsgContainer.set(null); - } else { + } + else { throw new BasicError("You tried to end an empty batch message container. This means you" + " did initiate the batch container properly, or there is an error in your" + " pulsar op sequencing and ratios."); diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerMapper.java index 6bbc3a8c6..13605134a 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerMapper.java @@ -1,22 +1,35 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; +import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; import io.nosqlbench.engine.api.templating.CommandTemplate; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.pulsar.client.api.Producer; +import java.util.HashMap; +import java.util.Map; import java.util.function.LongFunction; public class PulsarBatchProducerMapper extends PulsarOpMapper { + + private final static Logger logger = LogManager.getLogger(PulsarBatchProducerMapper.class); + private final LongFunction keyFunc; + private final LongFunction propFunc; private final LongFunction payloadFunc; public PulsarBatchProducerMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, LongFunction keyFunc, + LongFunction propFunc, LongFunction payloadFunc) { - super(cmdTpl, clientSpace, asyncApiFunc); + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc); this.keyFunc = keyFunc; + this.propFunc = propFunc; this.payloadFunc = payloadFunc; } @@ -25,9 +38,24 @@ public class PulsarBatchProducerMapper extends PulsarOpMapper { String msgKey = keyFunc.apply(value); String msgPayload = payloadFunc.apply(value); + // Check if msgPropJonStr is valid JSON string with a collection of key/value pairs + // - if Yes, convert it to a map + // - otherwise, log an error message and ignore message properties without throwing a runtime exception + Map msgProperties = new HashMap<>(); + String msgPropJsonStr = propFunc.apply(value); + try { + msgProperties = PulsarActivityUtil.convertJsonToMap(msgPropJsonStr); + } + catch (Exception e) { + logger.error( + "PulsarProducerMapper:: Error parsing message property JSON string {}, ignore message properties!", + msgPropJsonStr); + } + return new PulsarBatchProducerOp( clientSpace.getPulsarSchema(), msgKey, + msgProperties, msgPayload ); } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerOp.java index 95877493f..8b93c6ffa 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerOp.java @@ -12,23 +12,26 @@ import org.apache.pulsar.common.schema.SchemaType; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Map; import java.util.concurrent.CompletableFuture; public class PulsarBatchProducerOp extends SyncPulsarOp { private final Schema pulsarSchema; private final String msgKey; + private final Map msgProperties; private final String msgPayload; public PulsarBatchProducerOp(Schema schema, String key, + Map msgProperties, String payload) { this.pulsarSchema = schema; this.msgKey = key; + this.msgProperties = msgProperties; this.msgPayload = payload; } - @Override public void run() { if ((msgPayload == null) || msgPayload.isEmpty()) { @@ -43,6 +46,9 @@ public class PulsarBatchProducerOp extends SyncPulsarOp { if ((msgKey != null) && (!msgKey.isEmpty())) { typedMessageBuilder = typedMessageBuilder.key(msgKey); } + if (!msgProperties.isEmpty()) { + typedMessageBuilder = typedMessageBuilder.properties(msgProperties); + } SchemaType schemaType = pulsarSchema.getSchemaInfo().getType(); if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType.name())) { diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerStartMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerStartMapper.java index a1a2405a1..40f0428b3 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerStartMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarBatchProducerStartMapper.java @@ -1,5 +1,6 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; import org.apache.pulsar.client.api.Producer; @@ -12,9 +13,10 @@ public class PulsarBatchProducerStartMapper extends PulsarOpMapper { public PulsarBatchProducerStartMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, LongFunction> batchProducerFunc) { - super(cmdTpl, clientSpace, asyncApiFunc); + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc); this.batchProducerFunc = batchProducerFunc; } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java index 46cc6e2f2..6b610bef4 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java @@ -3,8 +3,11 @@ package io.nosqlbench.driver.pulsar.ops; import com.codahale.metrics.Counter; import com.codahale.metrics.Histogram; import com.codahale.metrics.Timer; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.pulsar.client.api.Consumer; import org.apache.pulsar.client.api.Schema; import org.apache.pulsar.client.api.transaction.Transaction; @@ -22,30 +25,25 @@ import java.util.function.Supplier; * * For additional parameterization, the command template is also provided. */ -public class PulsarConsumerMapper extends PulsarOpMapper { +public class PulsarConsumerMapper extends PulsarTransactOpMapper { + + private final static Logger logger = LogManager.getLogger(PulsarProducerMapper.class); + private final LongFunction> consumerFunc; - private final Counter bytesCounter; - private final Histogram messagesizeHistogram; - private final LongFunction useTransactionFunc; - private final LongFunction> transactionSupplierFunc; - private final Timer transactionCommitTimer; + private final boolean e2eMsProc; public PulsarConsumerMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, - LongFunction> consumerFunc, - Counter bytesCounter, - Histogram messagesizeHistogram, - Timer transactionCommitTimer, LongFunction useTransactionFunc, - LongFunction> transactionSupplierFunc) { - super(cmdTpl, clientSpace, asyncApiFunc); + LongFunction seqTrackingFunc, + LongFunction> transactionSupplierFunc, + LongFunction> consumerFunc, + boolean e2eMsgProc) { + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc, useTransactionFunc, seqTrackingFunc, transactionSupplierFunc); this.consumerFunc = consumerFunc; - this.bytesCounter = bytesCounter; - this.messagesizeHistogram = messagesizeHistogram; - this.transactionCommitTimer = transactionCommitTimer; - this.useTransactionFunc = useTransactionFunc; - this.transactionSupplierFunc = transactionSupplierFunc; + this.e2eMsProc = e2eMsgProc; } @Override @@ -53,18 +51,19 @@ public class PulsarConsumerMapper extends PulsarOpMapper { Consumer consumer = consumerFunc.apply(value); boolean asyncApi = asyncApiFunc.apply(value); boolean useTransaction = useTransactionFunc.apply(value); + boolean seqTracking = seqTrackingFunc.apply(value); Supplier transactionSupplier = transactionSupplierFunc.apply(value); return new PulsarConsumerOp( + pulsarActivity, + asyncApi, + useTransaction, + seqTracking, + transactionSupplier, consumer, clientSpace.getPulsarSchema(), - asyncApi, clientSpace.getPulsarClientConf().getConsumerTimeoutSeconds(), - bytesCounter, - messagesizeHistogram, - useTransaction, - transactionSupplier, - transactionCommitTimer - ); + value, + e2eMsProc); } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java index e8d5138aa..ac994edfc 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java @@ -3,6 +3,7 @@ package io.nosqlbench.driver.pulsar.ops; import com.codahale.metrics.Counter; import com.codahale.metrics.Histogram; import com.codahale.metrics.Timer; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.util.AvroUtil; import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; import org.apache.logging.log4j.LogManager; @@ -11,106 +12,260 @@ import org.apache.pulsar.client.api.*; import org.apache.pulsar.client.api.transaction.Transaction; import org.apache.pulsar.common.schema.SchemaType; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; -import java.util.function.LongFunction; import java.util.function.Supplier; -public class PulsarConsumerOp extends SyncPulsarOp { +public class PulsarConsumerOp implements PulsarOp { private final static Logger logger = LogManager.getLogger(PulsarConsumerOp.class); + private final PulsarActivity pulsarActivity; + + private final boolean asyncPulsarOp; + private final boolean useTransaction; + private final boolean seqTracking; + private final Supplier transactionSupplier; + private final Consumer consumer; private final Schema pulsarSchema; - private final boolean asyncPulsarOp; private final int timeoutSeconds; + private final boolean e2eMsgProc; + private final long curCycleNum; + + private long curMsgSeqId; + private long prevMsgSeqid; + private final Counter bytesCounter; - private final Histogram messagesizeHistogram; - private final boolean useTransaction; - private final Supplier transactionSupplier; + private final Histogram messageSizeHistogram; private final Timer transactionCommitTimer; - public PulsarConsumerOp(Consumer consumer, Schema schema, boolean asyncPulsarOp, int timeoutSeconds, - Counter bytesCounter, - Histogram messagesizeHistogram, - boolean useTransaction, - Supplier transactionSupplier, - Timer transactionCommitTimer) { + // keep track of end-to-end message latency + private final Histogram e2eMsgProcLatencyHistogram; + + public PulsarConsumerOp( + PulsarActivity pulsarActivity, + boolean asyncPulsarOp, + boolean useTransaction, + boolean seqTracking, + Supplier transactionSupplier, + Consumer consumer, + Schema schema, + int timeoutSeconds, + long curCycleNum, + boolean e2eMsgProc) + { + this.pulsarActivity = pulsarActivity; + + this.asyncPulsarOp = asyncPulsarOp; + this.useTransaction = useTransaction; + this.seqTracking = seqTracking; + this.transactionSupplier = transactionSupplier; + this.consumer = consumer; this.pulsarSchema = schema; - this.asyncPulsarOp = asyncPulsarOp; this.timeoutSeconds = timeoutSeconds; - this.bytesCounter = bytesCounter; - this.messagesizeHistogram = messagesizeHistogram; - this.useTransaction = useTransaction; - this.transactionSupplier = transactionSupplier; - this.transactionCommitTimer = transactionCommitTimer; - } + this.curCycleNum = curCycleNum; + this.e2eMsgProc = e2eMsgProc; - public void syncConsume() { - try { - Message message; - if (timeoutSeconds <= 0) { - // wait forever - message = consumer.receive(); - } else { - // we cannot use Consumer#receive(timeout, timeunit) due to - // https://github.com/apache/pulsar/issues/9921 - message = consumer - .receiveAsync() - .get(timeoutSeconds, TimeUnit.SECONDS); - } + this.curMsgSeqId = 0; + this.prevMsgSeqid = 0; - SchemaType schemaType = pulsarSchema.getSchemaInfo().getType(); - if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType.name())) { - if (logger.isDebugEnabled()) { - String avroDefStr = pulsarSchema.getSchemaInfo().getSchemaDefinition(); + this.bytesCounter = pulsarActivity.getBytesCounter(); + this.messageSizeHistogram = pulsarActivity.getMessageSizeHistogram(); + this.transactionCommitTimer = pulsarActivity.getCommitTransactionTimer(); - org.apache.avro.Schema avroSchema = - AvroUtil.GetSchema_ApacheAvro(avroDefStr); - - org.apache.avro.generic.GenericRecord avroGenericRecord = - AvroUtil.GetGenericRecord_ApacheAvro(avroSchema, message.getData()); - - logger.debug("msg-key={} msg-payload={}", message.getKey(), avroGenericRecord.toString()); - } - } else { - if (logger.isDebugEnabled()) { - logger.debug("msg-key={} msg-payload={}", message.getKey(), new String(message.getData())); - } - } - int messagesize = message.getData().length; - bytesCounter.inc(messagesize); - messagesizeHistogram.update(messagesize); - - - if (useTransaction) { - Transaction transaction = transactionSupplier.get(); - consumer.acknowledgeAsync(message.getMessageId(), transaction).get(); - - // little problem: here we are counting the "commit" time - // inside the overall time spent for the execution of the consume operation - // we should refactor this operation as for PulsarProducerOp, and use the passed callback - // to track with precision the time spent for the operation and for the commit - try (Timer.Context ctx = transactionCommitTimer.time()) { - transaction.commit().get(); - } - } else{ - consumer.acknowledge(message.getMessageId()); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public void asyncConsume() { - //TODO: add support for async consume + this.e2eMsgProcLatencyHistogram = pulsarActivity.getE2eMsgProcLatencyHistogram(); } @Override - public void run() { - if (!asyncPulsarOp) - syncConsume(); - else - asyncConsume(); + public void run(Runnable timeTracker) { + + final Transaction transaction; + if (useTransaction) { + // if you are in a transaction you cannot set the schema per-message + transaction = transactionSupplier.get(); + } + else { + transaction = null; + } + + if (!asyncPulsarOp) { + Message message; + + try { + if (timeoutSeconds <= 0) { + // wait forever + message = consumer.receive(); + } + else { + // we cannot use Consumer#receive(timeout, timeunit) due to + // https://github.com/apache/pulsar/issues/9921 + message = consumer + .receiveAsync() + .get(timeoutSeconds, TimeUnit.SECONDS); + } + + if (logger.isDebugEnabled()) { + SchemaType schemaType = pulsarSchema.getSchemaInfo().getType(); + + if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType.name())) { + String avroDefStr = pulsarSchema.getSchemaInfo().getSchemaDefinition(); + org.apache.avro.Schema avroSchema = + AvroUtil.GetSchema_ApacheAvro(avroDefStr); + org.apache.avro.generic.GenericRecord avroGenericRecord = + AvroUtil.GetGenericRecord_ApacheAvro(avroSchema, message.getData()); + + logger.debug("Sync message received: msg-key={}; msg-properties={}; msg-payload={}", + message.getKey(), + message.getProperties(), + avroGenericRecord.toString()); + } + else { + logger.debug("Sync message received: msg-key={}; msg-properties={}; msg-payload={}", + message.getKey(), + message.getProperties(), + new String(message.getData())); + } + } + + // keep track end-to-end message processing latency + long e2eMsgLatency = System.currentTimeMillis() - message.getPublishTime(); + if (e2eMsgProc) { + e2eMsgProcLatencyHistogram.update(e2eMsgLatency); + } + + // keep track of message ordering and message loss + if (seqTracking) { + String msgSeqIdStr = message.getProperties().get(PulsarActivityUtil.MSG_SEQUENCE_ID); + curMsgSeqId = Long.parseLong(msgSeqIdStr); + + // normal case: message sequence id is monotonically increasing by 1 + if ((curMsgSeqId - prevMsgSeqid) == 1) { + prevMsgSeqid = curMsgSeqId; + } + else { + // abnormal case: out of ordering + if (curMsgSeqId < prevMsgSeqid) { + throw new RuntimeException("Detected message ordering is not guaranteed. Older messages are received earlier!"); + } + // abnormal case: message loss + else if ( (curMsgSeqId - prevMsgSeqid) > 1 ) { + throw new RuntimeException("Detected message sequence id gap. Some published messages are not received!"); + } + } + } + + int messageSize = message.getData().length; + bytesCounter.inc(messageSize); + messageSizeHistogram.update(messageSize); + + if (useTransaction) { + consumer.acknowledgeAsync(message.getMessageId(), transaction).get(); + + // little problem: here we are counting the "commit" time + // inside the overall time spent for the execution of the consume operation + // we should refactor this operation as for PulsarProducerOp, and use the passed callback + // to track with precision the time spent for the operation and for the commit + try (Timer.Context ctx = transactionCommitTimer.time()) { + transaction.commit().get(); + } + } + else { + consumer.acknowledge(message.getMessageId()); + } + + } + catch (Exception e) { + logger.error( + "Sync message receiving failed - timeout value: {} seconds ", timeoutSeconds); + throw new RuntimeException(e); + } + } + else { + try { + CompletableFuture> msgRecvFuture = consumer.receiveAsync(); + if (useTransaction) { + // add commit step + msgRecvFuture = msgRecvFuture.thenCompose(msg -> { + Timer.Context ctx = transactionCommitTimer.time(); + return transaction + .commit() + .whenComplete((m,e) -> ctx.close()) + .thenApply(v-> msg); + } + ); + } + + msgRecvFuture.whenComplete((message, error) -> { + int messageSize = message.getData().length; + bytesCounter.inc(messageSize); + messageSizeHistogram.update(messageSize); + + if (logger.isDebugEnabled()) { + SchemaType schemaType = pulsarSchema.getSchemaInfo().getType(); + + if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType.name())) { + String avroDefStr = pulsarSchema.getSchemaInfo().getSchemaDefinition(); + org.apache.avro.Schema avroSchema = + AvroUtil.GetSchema_ApacheAvro(avroDefStr); + org.apache.avro.generic.GenericRecord avroGenericRecord = + AvroUtil.GetGenericRecord_ApacheAvro(avroSchema, message.getData()); + + logger.debug("Async message received: msg-key={}; msg-properties={}; msg-payload={})", + message.getKey(), + message.getProperties(), + avroGenericRecord.toString()); + } + else { + logger.debug("Async message received: msg-key={}; msg-properties={}; msg-payload={})", + message.getKey(), + message.getProperties(), + new String(message.getData())); + } + } + + long e2eMsgLatency = System.currentTimeMillis() - message.getPublishTime(); + if (e2eMsgProc) { + e2eMsgProcLatencyHistogram.update(e2eMsgLatency); + } + + // keep track of message ordering and message loss + if (seqTracking) { + String msgSeqIdStr = message.getProperties().get(PulsarActivityUtil.MSG_SEQUENCE_ID); + curMsgSeqId = Long.parseLong(msgSeqIdStr); + + // normal case: message sequence id is monotonically increasing by 1 + if ((curMsgSeqId - prevMsgSeqid) == 1) { + prevMsgSeqid = curMsgSeqId; + } else { + // abnormal case: out of ordering + if (curMsgSeqId < prevMsgSeqid) { + throw new RuntimeException("Detected message ordering is not guaranteed. Older messages are received earlier!"); + } + // abnormal case: message loss + else if ((curMsgSeqId - prevMsgSeqid) > 1) { + throw new RuntimeException("Detected message sequence id gap. Some published messages are not received!"); + } + } + } + + if (useTransaction) { + consumer.acknowledgeAsync(message.getMessageId(), transaction); + } + else { + consumer.acknowledgeAsync(message); + } + + timeTracker.run(); + }).exceptionally(ex -> { + pulsarActivity.asyncOperationFailed(ex); + return null; + }); + } + catch (Exception e) { + throw new RuntimeException(e); + } + } } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarOpMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarOpMapper.java index 6139243de..12ce0626a 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarOpMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarOpMapper.java @@ -1,23 +1,29 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; import org.apache.pulsar.client.api.Producer; import org.apache.pulsar.client.api.Schema; +import org.apache.pulsar.client.api.transaction.Transaction; import java.util.function.LongFunction; +import java.util.function.Supplier; public abstract class PulsarOpMapper implements LongFunction { protected final CommandTemplate cmdTpl; protected final PulsarSpace clientSpace; + protected final PulsarActivity pulsarActivity; protected final LongFunction asyncApiFunc; public PulsarOpMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc) { this.cmdTpl = cmdTpl; this.clientSpace = clientSpace; + this.pulsarActivity = pulsarActivity; this.asyncApiFunc = asyncApiFunc; } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java index 5c9397881..c6e3f2cbf 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java @@ -1,14 +1,20 @@ package io.nosqlbench.driver.pulsar.ops; -import com.codahale.metrics.Counter; -import com.codahale.metrics.Histogram; +import com.fasterxml.jackson.databind.ObjectMapper; import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; +import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; import io.nosqlbench.engine.api.templating.CommandTemplate; +import org.apache.commons.lang3.RandomUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.pulsar.client.api.Producer; -import org.apache.pulsar.client.api.Schema; import org.apache.pulsar.client.api.transaction.Transaction; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import java.util.function.LongFunction; import java.util.function.Supplier; @@ -22,49 +28,98 @@ import java.util.function.Supplier; * * For additional parameterization, the command template is also provided. */ -public class PulsarProducerMapper extends PulsarOpMapper { +public class PulsarProducerMapper extends PulsarTransactOpMapper { + + private final static Logger logger = LogManager.getLogger(PulsarProducerMapper.class); + private final LongFunction> producerFunc; + private final LongFunction seqErrSimuTypeFunc; private final LongFunction keyFunc; + private final LongFunction propFunc; private final LongFunction payloadFunc; - private final PulsarActivity pulsarActivity; - private final LongFunction useTransactionFunc; - private final LongFunction> transactionSupplierFunc; public PulsarProducerMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, - LongFunction> producerFunc, - LongFunction keyFunc, - LongFunction payloadFunc, LongFunction useTransactionFunc, + LongFunction seqTrackingFunc, LongFunction> transactionSupplierFunc, - PulsarActivity pulsarActivity) { - super(cmdTpl, clientSpace, asyncApiFunc); + LongFunction> producerFunc, + LongFunction seqErrSimuTypeFunc, + LongFunction keyFunc, + LongFunction propFunc, + LongFunction payloadFunc) { + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc, useTransactionFunc, seqTrackingFunc, transactionSupplierFunc); + this.producerFunc = producerFunc; + this.seqErrSimuTypeFunc = seqErrSimuTypeFunc; this.keyFunc = keyFunc; + this.propFunc = propFunc; this.payloadFunc = payloadFunc; - this.pulsarActivity = pulsarActivity; - this.useTransactionFunc = useTransactionFunc; - this.transactionSupplierFunc = transactionSupplierFunc; } @Override public PulsarOp apply(long value) { - Producer producer = producerFunc.apply(value); boolean asyncApi = asyncApiFunc.apply(value); + boolean useTransaction = useTransactionFunc.apply(value); + boolean seqTracking = seqTrackingFunc.apply(value); + Supplier transactionSupplier = transactionSupplierFunc.apply(value); + + Producer producer = producerFunc.apply(value); + + // Simulate error 10% of the time + float rndVal = RandomUtils.nextFloat(0, 1.0f); + boolean simulationError = (rndVal > 0) && (rndVal < 0.1f); + String seqErrSimuType = seqErrSimuTypeFunc.apply(value); + boolean simulateMsgOutofOrder = simulationError && + !StringUtils.isBlank(seqErrSimuType) && + StringUtils.equalsIgnoreCase(seqErrSimuType, PulsarActivityUtil.SEQ_ERROR_SIMU_TYPE.OutOfOrder.label); + boolean simulateMsgLoss = simulationError && + !StringUtils.isBlank(seqErrSimuType) && + StringUtils.equalsIgnoreCase(seqErrSimuType, PulsarActivityUtil.SEQ_ERROR_SIMU_TYPE.DataLoss.label); + String msgKey = keyFunc.apply(value); String msgPayload = payloadFunc.apply(value); - boolean useTransaction = useTransactionFunc.apply(value); - Supplier transactionSupplier = transactionSupplierFunc.apply(value); + + // Check if msgPropJonStr is valid JSON string with a collection of key/value pairs + // - if Yes, convert it to a map + // - otherwise, log an error message and ignore message properties without throwing a runtime exception + Map msgProperties = new HashMap<>(); + String msgPropJsonStr = propFunc.apply(value); + if (!StringUtils.isBlank(msgPropJsonStr)) { + try { + msgProperties = PulsarActivityUtil.convertJsonToMap(msgPropJsonStr); + + } catch (Exception e) { + logger.error( + "Error parsing message property JSON string {}, ignore message properties!", + msgPropJsonStr); + } + } + + // Set message sequence tracking property + if (seqTracking) { + if (!simulateMsgOutofOrder) { + msgProperties.put(PulsarActivityUtil.MSG_SEQUENCE_ID, String.valueOf(value)); + } + else { + int rndmOffset = 2; + if (value > rndmOffset) + msgProperties.put(PulsarActivityUtil.MSG_SEQUENCE_ID, String.valueOf(value-rndmOffset)); + } + } + return new PulsarProducerOp( - producer, - clientSpace.getPulsarSchema(), + pulsarActivity, asyncApi, useTransaction, transactionSupplier, + producer, + clientSpace.getPulsarSchema(), msgKey, + msgProperties, msgPayload, - pulsarActivity - ); + simulateMsgLoss); } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerOp.java index c72102813..47a9e3381 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerOp.java @@ -6,6 +6,7 @@ import com.codahale.metrics.Timer; import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.util.AvroUtil; import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; +import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.pulsar.client.api.*; @@ -15,6 +16,7 @@ import org.apache.pulsar.client.impl.schema.generic.GenericAvroSchema; import org.apache.pulsar.common.schema.SchemaType; import java.nio.charset.StandardCharsets; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.function.Supplier; @@ -23,57 +25,87 @@ public class PulsarProducerOp implements PulsarOp { private final static Logger logger = LogManager.getLogger(PulsarProducerOp.class); - private final Producer producer; - private final Schema pulsarSchema; - private final String msgKey; - private final String msgPayload; - private final boolean asyncPulsarOp; - private final Counter bytesCounter; - private final Histogram messagesizeHistogram; private final PulsarActivity pulsarActivity; + + private final boolean asyncPulsarOp; private final boolean useTransaction; private final Supplier transactionSupplier; - public PulsarProducerOp(Producer producer, - Schema schema, - boolean asyncPulsarOp, - boolean useTransaction, - Supplier transactionSupplier, - String key, - String payload, - PulsarActivity pulsarActivity) { + private final Producer producer; + private final Schema pulsarSchema; + private final String msgKey; + private final Map msgProperties; + private final String msgPayload; + private final boolean simulateMsgLoss; + + private final Counter bytesCounter; + private final Histogram messageSizeHistogram; + private final Timer transactionCommitTimer; + + public PulsarProducerOp( PulsarActivity pulsarActivity, + boolean asyncPulsarOp, + boolean useTransaction, + Supplier transactionSupplier, + Producer producer, + Schema schema, + String key, + Map msgProperties, + String payload, + boolean simulateMsgLoss) { + this.pulsarActivity = pulsarActivity; + + this.asyncPulsarOp = asyncPulsarOp; + this.useTransaction = useTransaction; + this.transactionSupplier = transactionSupplier; + this.producer = producer; this.pulsarSchema = schema; this.msgKey = key; + this.msgProperties = msgProperties; this.msgPayload = payload; - this.asyncPulsarOp = asyncPulsarOp; - this.pulsarActivity = pulsarActivity; + this.simulateMsgLoss = simulateMsgLoss; + this.bytesCounter = pulsarActivity.getBytesCounter(); - this.messagesizeHistogram = pulsarActivity.getMessagesizeHistogram(); - this.useTransaction = useTransaction; - this.transactionSupplier = transactionSupplier; + this.messageSizeHistogram = pulsarActivity.getMessageSizeHistogram(); + this.transactionCommitTimer = pulsarActivity.getCommitTransactionTimer(); } @Override public void run(Runnable timeTracker) { + // Skip this cycle (without sending messages) if we're doing message loss simulation + if (simulateMsgLoss) { + return; + } + if ((msgPayload == null) || msgPayload.isEmpty()) { throw new RuntimeException("Message payload (\"msg-value\") can't be empty!"); } + TypedMessageBuilder typedMessageBuilder; + final Transaction transaction; if (useTransaction) { // if you are in a transaction you cannot set the schema per-message transaction = transactionSupplier.get(); typedMessageBuilder = producer.newMessage(transaction); - } else { + } + else { transaction = null; typedMessageBuilder = producer.newMessage(pulsarSchema); } - if ((msgKey != null) && (!msgKey.isEmpty())) { + + // set message key + if (!StringUtils.isBlank(msgKey)) { typedMessageBuilder = typedMessageBuilder.key(msgKey); } - int messagesize; + // set message properties + if ( !msgProperties.isEmpty() ) { + typedMessageBuilder = typedMessageBuilder.properties(msgProperties); + } + + // set message payload + int messageSize; SchemaType schemaType = pulsarSchema.getSchemaInfo().getType(); if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType.name())) { GenericRecord payload = AvroUtil.GetGenericRecord_PulsarAvro( @@ -83,55 +115,110 @@ public class PulsarProducerOp implements PulsarOp { ); typedMessageBuilder = typedMessageBuilder.value(payload); // TODO: add a way to calculate the message size for AVRO messages - messagesize = msgPayload.length(); + messageSize = msgPayload.length(); } else { byte[] array = msgPayload.getBytes(StandardCharsets.UTF_8); typedMessageBuilder = typedMessageBuilder.value(array); - messagesize = array.length; + messageSize = array.length; } - messagesizeHistogram.update(messagesize); - bytesCounter.inc(messagesize); + messageSizeHistogram.update(messageSize); + bytesCounter.inc(messageSize); //TODO: add error handling with failed message production if (!asyncPulsarOp) { try { - logger.trace("sending message"); + logger.trace("Sending message"); typedMessageBuilder.send(); + if (useTransaction) { - try (Timer.Context ctx = pulsarActivity.getCommitTransactionTimer().time();) { + try (Timer.Context ctx = transactionCommitTimer.time()) { transaction.commit().get(); } } - } catch (PulsarClientException | ExecutionException | InterruptedException pce) { - logger.trace("failed sending message"); + + if (logger.isDebugEnabled()) { + if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType.name())) { + String avroDefStr = pulsarSchema.getSchemaInfo().getSchemaDefinition(); + org.apache.avro.Schema avroSchema = + AvroUtil.GetSchema_ApacheAvro(avroDefStr); + org.apache.avro.generic.GenericRecord avroGenericRecord = + AvroUtil.GetGenericRecord_ApacheAvro(avroSchema, msgPayload); + + logger.debug("Sync message sent: msg-key={}; msg-properties={}; msg-payload={})", + msgKey, + msgProperties, + avroGenericRecord.toString()); + } + else { + logger.debug("Sync message sent: msg-key={}; msg-properties={}; msg-payload={}", + msgKey, + msgProperties, + msgPayload); + } + } + } + catch (PulsarClientException | ExecutionException | InterruptedException pce) { + logger.trace( + "Sync message sending failed: " + + "key - " + msgKey + "; " + + "properties - " + msgProperties + "; " + + "payload - " + msgPayload); throw new RuntimeException(pce); } + timeTracker.run(); - } else { + } + else { try { // we rely on blockIfQueueIsFull in order to throttle the request in this case CompletableFuture future = typedMessageBuilder.sendAsync(); + if (useTransaction) { // add commit step future = future.thenCompose(msg -> { - Timer.Context ctx = pulsarActivity.getCommitTransactionTimer().time();; + Timer.Context ctx = transactionCommitTimer.time(); return transaction .commit() - .whenComplete((m,e) -> { - ctx.close(); - }) + .whenComplete((m,e) -> ctx.close()) .thenApply(v-> msg); } ); } + future.whenComplete((messageId, error) -> { + if (logger.isDebugEnabled()) { + if (PulsarActivityUtil.isAvroSchemaTypeStr(schemaType.name())) { + String avroDefStr = pulsarSchema.getSchemaInfo().getSchemaDefinition(); + org.apache.avro.Schema avroSchema = + AvroUtil.GetSchema_ApacheAvro(avroDefStr); + org.apache.avro.generic.GenericRecord avroGenericRecord = + AvroUtil.GetGenericRecord_ApacheAvro(avroSchema, msgPayload); + + logger.debug("Aysnc message sent: msg-key={}; msg-properties={}; msg-payload={})", + msgKey, + msgProperties, + avroGenericRecord.toString()); + } + else { + logger.debug("Aysnc message sent: msg-key={}; msg-properties={}; msg-payload={}", + msgKey, + msgProperties, + msgPayload); + } + } + timeTracker.run(); }).exceptionally(ex -> { - logger.error("Producing message failed: key - " + msgKey + "; payload - " + msgPayload); + logger.error("Async message sending failed: " + + "key - " + msgKey + "; " + + "properties - " + msgProperties + "; " + + "payload - " + msgPayload); + pulsarActivity.asyncOperationFailed(ex); return null; }); - } catch (Exception e) { + } + catch (Exception e) { throw new RuntimeException(e); } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarReaderMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarReaderMapper.java index 6d8d45ced..4ebbc965f 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarReaderMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarReaderMapper.java @@ -1,5 +1,6 @@ package io.nosqlbench.driver.pulsar.ops; +import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.engine.api.templating.CommandTemplate; import org.apache.pulsar.client.api.Reader; @@ -13,10 +14,11 @@ public class PulsarReaderMapper extends PulsarOpMapper { public PulsarReaderMapper(CommandTemplate cmdTpl, PulsarSpace clientSpace, + PulsarActivity pulsarActivity, LongFunction asyncApiFunc, LongFunction> readerFunc) { - super(cmdTpl, clientSpace, asyncApiFunc); + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc); this.readerFunc = readerFunc; } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarTransactOpMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarTransactOpMapper.java new file mode 100644 index 000000000..343ca9a7a --- /dev/null +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarTransactOpMapper.java @@ -0,0 +1,29 @@ +package io.nosqlbench.driver.pulsar.ops; + +import io.nosqlbench.driver.pulsar.PulsarActivity; +import io.nosqlbench.driver.pulsar.PulsarSpace; +import io.nosqlbench.engine.api.templating.CommandTemplate; +import org.apache.pulsar.client.api.transaction.Transaction; + +import java.util.function.LongFunction; +import java.util.function.Supplier; + +public abstract class PulsarTransactOpMapper extends PulsarOpMapper { + protected final LongFunction useTransactionFunc; + protected final LongFunction seqTrackingFunc; + protected final LongFunction> transactionSupplierFunc; + + public PulsarTransactOpMapper(CommandTemplate cmdTpl, + PulsarSpace clientSpace, + PulsarActivity pulsarActivity, + LongFunction asyncApiFunc, + LongFunction useTransactionFunc, + LongFunction seqTrackingFunc, + LongFunction> transactionSupplierFunc) + { + super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc); + this.useTransactionFunc = useTransactionFunc; + this.seqTrackingFunc = seqTrackingFunc; + this.transactionSupplierFunc = transactionSupplierFunc; + } +} diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java index 44b206132..730ff14dc 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java @@ -21,7 +21,9 @@ import java.util.function.LongFunction; import java.util.function.Supplier; public class ReadyPulsarOp implements OpDispenser { + private final static Logger logger = LogManager.getLogger(ReadyPulsarOp.class); + private final OpTemplate opTpl; private final CommandTemplate cmdTpl; private final PulsarSpace clientSpace; @@ -71,7 +73,7 @@ public class ReadyPulsarOp implements OpDispenser { throw new RuntimeException("topic_url is not valid. Perhaps you mean topic_uri ?"); } - // Global parameter: topic_uri + // Doc-level parameter: topic_uri LongFunction topicUriFunc = (l) -> null; if (cmdTpl.containsKey(PulsarActivityUtil.DOC_LEVEL_PARAMS.TOPIC_URI.label)) { if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.TOPIC_URI.label)) { @@ -80,8 +82,9 @@ public class ReadyPulsarOp implements OpDispenser { topicUriFunc = (l) -> cmdTpl.getDynamic(PulsarActivityUtil.DOC_LEVEL_PARAMS.TOPIC_URI.label, l); } } + logger.info("topic_uri: {}", topicUriFunc.apply(0)); - // Global parameter: async_api + // Doc-level parameter: async_api LongFunction asyncApiFunc = (l) -> false; if (cmdTpl.containsKey(PulsarActivityUtil.DOC_LEVEL_PARAMS.ASYNC_API.label)) { if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.ASYNC_API.label)) { @@ -93,6 +96,7 @@ public class ReadyPulsarOp implements OpDispenser { } logger.info("async_api: {}", asyncApiFunc.apply(0)); + // Doc-level parameter: async_api LongFunction useTransactionFunc = (l) -> false; if (cmdTpl.containsKey(PulsarActivityUtil.DOC_LEVEL_PARAMS.USE_TRANSACTION.label)) { if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.USE_TRANSACTION.label)) { @@ -104,7 +108,7 @@ public class ReadyPulsarOp implements OpDispenser { } logger.info("use_transaction: {}", useTransactionFunc.apply(0)); - // Global parameter: admin_delop + // Doc-level parameter: admin_delop LongFunction adminDelOpFunc = (l) -> false; if (cmdTpl.containsKey(PulsarActivityUtil.DOC_LEVEL_PARAMS.ADMIN_DELOP.label)) { if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.ADMIN_DELOP.label)) @@ -112,27 +116,70 @@ public class ReadyPulsarOp implements OpDispenser { else throw new RuntimeException("\"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.ADMIN_DELOP.label + "\" parameter cannot be dynamic!"); } + logger.info("admin_delop: {}", adminDelOpFunc.apply(0)); + + // Doc-level parameter: seq_tracking + LongFunction seqTrackingFunc = (l) -> false; + if (cmdTpl.containsKey(PulsarActivityUtil.DOC_LEVEL_PARAMS.SEQ_TRACKING.label)) { + if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.SEQ_TRACKING.label)) + seqTrackingFunc = (l) -> BooleanUtils.toBoolean(cmdTpl.getStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.SEQ_TRACKING.label)); + else + throw new RuntimeException("\"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.SEQ_TRACKING.label + "\" parameter cannot be dynamic!"); + } + logger.info("seq_tracking: {}", seqTrackingFunc.apply(0)); + // TODO: Complete implementation for websocket-producer and managed-ledger + // Admin operation: create/delete tenant if ( StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.ADMIN_TENANT.label) ) { return resolveAdminTenant(clientSpace, asyncApiFunc, adminDelOpFunc); - } else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.ADMIN_NAMESPACE.label)) { + } + // Admin operation: create/delete namespace + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.ADMIN_NAMESPACE.label)) { return resolveAdminNamespace(clientSpace, asyncApiFunc, adminDelOpFunc); - } else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.ADMIN_TOPIC.label)) { + } + // Admin operation: create/delete topic + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.ADMIN_TOPIC.label)) { return resolveAdminTopic(clientSpace, topicUriFunc, asyncApiFunc, adminDelOpFunc); - } else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_SEND.label)) { - return resolveMsgSend(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc); - } else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_CONSUME.label)) { - return resolveMsgConsume(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc); - } else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_READ.label)) { + } + // Regular/non-admin operation: single message sending (producer) + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_SEND.label)) { + return resolveMsgSend(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc, seqTrackingFunc); + } + // Regular/non-admin operation: single message consuming from a single topic (consumer) + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_CONSUME.label)) { + return resolveMsgConsume(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc, seqTrackingFunc, false); + } + // Regular/non-admin operation: single message consuming from multiple-topics (consumer) + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_MULTI_CONSUME.label)) { + return resolveMultiTopicMsgConsume(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc, seqTrackingFunc); + } + // Regular/non-admin operation: single message consuming a single topic (reader) + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_READ.label)) { return resolveMsgRead(clientSpace, topicUriFunc, asyncApiFunc); - } else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.BATCH_MSG_SEND_START.label)) { + } + // Regular/non-admin operation: batch message processing - batch start + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.BATCH_MSG_SEND_START.label)) { return resolveMsgBatchSendStart(clientSpace, topicUriFunc, asyncApiFunc); - } else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.BATCH_MSG_SEND.label)) { + } + // Regular/non-admin operation: batch message processing - message sending (producer) + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.BATCH_MSG_SEND.label)) { return resolveMsgBatchSend(clientSpace, asyncApiFunc); - } else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.BATCH_MSG_SEND_END.label)) { + } + // Regular/non-admin operation: batch message processing - batch send + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.BATCH_MSG_SEND_END.label)) { return resolveMsgBatchSendEnd(clientSpace, asyncApiFunc); - } else { + } + // Regular/non-admin operation: end-to-end message processing - sending message + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.E2E_MSG_PROC_SEND.label)) { + return resolveMsgSend(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc, seqTrackingFunc); + } + // Regular/non-admin operation: end-to-end message processing - consuming message + else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.E2E_MSG_PROC_CONSUME.label)) { + return resolveMsgConsume(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc, seqTrackingFunc, true); + } + // Invalid operation type + else { throw new RuntimeException("Unsupported Pulsar operation type"); } } @@ -184,6 +231,7 @@ public class ReadyPulsarOp implements OpDispenser { return new PulsarAdminTenantMapper( cmdTpl, clientSpace, + pulsarActivity, asyncApiFunc, adminDelOpFunc, adminRolesFunc, @@ -209,6 +257,7 @@ public class ReadyPulsarOp implements OpDispenser { return new PulsarAdminNamespaceMapper( cmdTpl, clientSpace, + pulsarActivity, asyncApiFunc, adminDelOpFunc, namespaceFunc); @@ -238,6 +287,7 @@ public class ReadyPulsarOp implements OpDispenser { return new PulsarAdminTopicMapper( cmdTpl, clientSpace, + pulsarActivity, asyncApiFunc, adminDelOpFunc, topic_uri_fun, @@ -249,8 +299,12 @@ public class ReadyPulsarOp implements OpDispenser { PulsarSpace clientSpace, LongFunction topic_uri_func, LongFunction async_api_func, - LongFunction useTransactionFunc + LongFunction useTransactionFunc, + LongFunction seqTrackingFunc ) { + LongFunction> transactionSupplierFunc = + (l) -> clientSpace.getTransactionSupplier(); //TODO make it dependant on current cycle? + LongFunction cycle_producer_name_func; if (cmdTpl.isStatic("producer_name")) { cycle_producer_name_func = (l) -> cmdTpl.getStatic("producer_name"); @@ -263,9 +317,19 @@ public class ReadyPulsarOp implements OpDispenser { LongFunction> producerFunc = (l) -> clientSpace.getProducer(topic_uri_func.apply(l), cycle_producer_name_func.apply(l)); - LongFunction> transactionSupplierFunc = - (l) -> clientSpace.getTransactionSupplier(); //TODO make it dependant on current cycle? + // check if we're going to simulate producer message out-of-sequence error + // - message ordering + // - message loss + LongFunction seqErrSimuTypeFunc = (l) -> null; + if (cmdTpl.containsKey("seqerr_simu")) { + if (cmdTpl.isStatic("seqerr_simu")) { + seqErrSimuTypeFunc = (l) -> cmdTpl.getStatic("seqerr_simu"); + } else { + throw new RuntimeException("\"seqerr_simu\" parameter cannot be dynamic!"); + } + } + // message key LongFunction keyFunc; if (cmdTpl.isStatic("msg_key")) { keyFunc = (l) -> cmdTpl.getStatic("msg_key"); @@ -275,6 +339,16 @@ public class ReadyPulsarOp implements OpDispenser { keyFunc = (l) -> null; } + // message property + LongFunction propFunc; + if (cmdTpl.isStatic("msg_property")) { + propFunc = (l) -> cmdTpl.getStatic("msg_property"); + } else if (cmdTpl.isDynamic("msg_property")) { + propFunc = (l) -> cmdTpl.getDynamic("msg_property", l); + } else { + propFunc = (l) -> null; + } + LongFunction valueFunc; if (cmdTpl.containsKey("msg_value")) { if (cmdTpl.isStatic("msg_value")) { @@ -291,20 +365,82 @@ public class ReadyPulsarOp implements OpDispenser { return new PulsarProducerMapper( cmdTpl, clientSpace, + pulsarActivity, async_api_func, - producerFunc, - keyFunc, - valueFunc, useTransactionFunc, + seqTrackingFunc, transactionSupplierFunc, - pulsarActivity); + producerFunc, + seqErrSimuTypeFunc, + keyFunc, + propFunc, + valueFunc); } private LongFunction resolveMsgConsume( PulsarSpace clientSpace, LongFunction topic_uri_func, LongFunction async_api_func, - LongFunction useTransactionFunc + LongFunction useTransactionFunc, + LongFunction seqTrackingFunc, + boolean e2eMsgProc + ) { + LongFunction subscription_name_func; + if (cmdTpl.isStatic("subscription_name")) { + subscription_name_func = (l) -> cmdTpl.getStatic("subscription_name"); + } else if (cmdTpl.isDynamic("subscription_name")) { + subscription_name_func = (l) -> cmdTpl.getDynamic("subscription_name", l); + } else { + subscription_name_func = (l) -> null; + } + + LongFunction subscription_type_func; + if (cmdTpl.isStatic("subscription_type")) { + subscription_type_func = (l) -> cmdTpl.getStatic("subscription_type"); + } else if (cmdTpl.isDynamic("subscription_type")) { + subscription_type_func = (l) -> cmdTpl.getDynamic("subscription_type", l); + } else { + subscription_type_func = (l) -> null; + } + + LongFunction consumer_name_func; + if (cmdTpl.isStatic("consumer_name")) { + consumer_name_func = (l) -> cmdTpl.getStatic("consumer_name"); + } else if (cmdTpl.isDynamic("consumer_name")) { + consumer_name_func = (l) -> cmdTpl.getDynamic("consumer_name", l); + } else { + consumer_name_func = (l) -> null; + } + + LongFunction> transactionSupplierFunc = + (l) -> clientSpace.getTransactionSupplier(); //TODO make it dependant on current cycle? + + LongFunction> consumerFunc = (l) -> + clientSpace.getConsumer( + topic_uri_func.apply(l), + subscription_name_func.apply(l), + subscription_type_func.apply(l), + consumer_name_func.apply(l) + ); + + return new PulsarConsumerMapper( + cmdTpl, + clientSpace, + pulsarActivity, + async_api_func, + useTransactionFunc, + seqTrackingFunc, + transactionSupplierFunc, + consumerFunc, + e2eMsgProc); + } + + private LongFunction resolveMultiTopicMsgConsume( + PulsarSpace clientSpace, + LongFunction topic_uri_func, + LongFunction async_api_func, + LongFunction useTransactionFunc, + LongFunction seqTrackingFunc ) { // Topic list (multi-topic) LongFunction topic_names_func; @@ -356,8 +492,8 @@ public class ReadyPulsarOp implements OpDispenser { LongFunction> transactionSupplierFunc = (l) -> clientSpace.getTransactionSupplier(); //TODO make it dependant on current cycle? - LongFunction> consumerFunc = (l) -> - clientSpace.getConsumer( + LongFunction> mtConsumerFunc = (l) -> + clientSpace.getMultiTopicConsumer( topic_uri_func.apply(l), topic_names_func.apply(l), topics_pattern_func.apply(l), @@ -366,9 +502,16 @@ public class ReadyPulsarOp implements OpDispenser { consumer_name_func.apply(l) ); - return new PulsarConsumerMapper(cmdTpl, clientSpace, async_api_func, consumerFunc, - pulsarActivity.getBytesCounter(), pulsarActivity.getMessagesizeHistogram(), pulsarActivity.getCommitTransactionTimer(), - useTransactionFunc, transactionSupplierFunc); + return new PulsarConsumerMapper( + cmdTpl, + clientSpace, + pulsarActivity, + async_api_func, + useTransactionFunc, + seqTrackingFunc, + transactionSupplierFunc, + mtConsumerFunc, + false); } private LongFunction resolveMsgRead( @@ -401,7 +544,12 @@ public class ReadyPulsarOp implements OpDispenser { start_msg_pos_str_func.apply(l) ); - return new PulsarReaderMapper(cmdTpl, clientSpace, async_api_func, readerFunc); + return new PulsarReaderMapper( + cmdTpl, + clientSpace, + pulsarActivity, + async_api_func, + readerFunc); } private LongFunction resolveMsgBatchSendStart( @@ -421,7 +569,12 @@ public class ReadyPulsarOp implements OpDispenser { LongFunction> batchProducerFunc = (l) -> clientSpace.getProducer(topic_uri_func.apply(l), cycle_batch_producer_name_func.apply(l)); - return new PulsarBatchProducerStartMapper(cmdTpl, clientSpace, asyncApiFunc, batchProducerFunc); + return new PulsarBatchProducerStartMapper( + cmdTpl, + clientSpace, + pulsarActivity, + asyncApiFunc, + batchProducerFunc); } private LongFunction resolveMsgBatchSend(PulsarSpace clientSpace, @@ -436,6 +589,16 @@ public class ReadyPulsarOp implements OpDispenser { keyFunc = (l) -> null; } + // message property + LongFunction propFunc; + if (cmdTpl.isStatic("msg_property")) { + propFunc = (l) -> cmdTpl.getStatic("msg_property"); + } else if (cmdTpl.isDynamic("msg_property")) { + propFunc = (l) -> cmdTpl.getDynamic("msg_property", l); + } else { + propFunc = (l) -> null; + } + LongFunction valueFunc; if (cmdTpl.containsKey("msg_value")) { if (cmdTpl.isStatic("msg_value")) { @@ -452,14 +615,20 @@ public class ReadyPulsarOp implements OpDispenser { return new PulsarBatchProducerMapper( cmdTpl, clientSpace, + pulsarActivity, asyncApiFunc, keyFunc, + propFunc, valueFunc); } private LongFunction resolveMsgBatchSendEnd(PulsarSpace clientSpace, LongFunction asyncApiFunc) { - return new PulsarBatchProducerEndMapper(cmdTpl, clientSpace, asyncApiFunc); + return new PulsarBatchProducerEndMapper( + cmdTpl, + clientSpace, + pulsarActivity, + asyncApiFunc); } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarActivityUtil.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarActivityUtil.java index 6af629860..40c468474 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarActivityUtil.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarActivityUtil.java @@ -1,5 +1,6 @@ package io.nosqlbench.driver.pulsar.util; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -12,8 +13,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; -import java.util.HashMap; +import java.util.Base64; +import java.util.Map; import java.util.stream.Collectors; +import java.util.stream.Stream; public class PulsarActivityUtil { @@ -25,12 +28,15 @@ public class PulsarActivityUtil { ADMIN_TENANT("admin-tenant"), ADMIN_NAMESPACE("admin-namespace"), ADMIN_TOPIC("admin-topic"), + E2E_MSG_PROC_SEND("ec2-msg-proc-send"), + E2E_MSG_PROC_CONSUME("ec2-msg-proc-consume"), BATCH_MSG_SEND_START("batch-msg-send-start"), BATCH_MSG_SEND("batch-msg-send"), BATCH_MSG_SEND_END("batch-msg-send-end"), MSG_SEND("msg-send"), MSG_CONSUME("msg-consume"), - MSG_READ("msg-read"); + MSG_READ("msg-read"), + MSG_MULTI_CONSUME("msg-mt-consume"); public final String label; @@ -42,11 +48,17 @@ public class PulsarActivityUtil { return Arrays.stream(OP_TYPES.values()).anyMatch(t -> t.label.equals(type)); } + public static final String MSG_SEQUENCE_ID = "sequence_id"; + public static final String MSG_SEQUENCE_TGTMAX = "sequence_tgtmax"; + + /////// + // Valid document level parameters for Pulsar NB yaml file public enum DOC_LEVEL_PARAMS { TOPIC_URI("topic_uri"), ASYNC_API("async_api"), USE_TRANSACTION("use_transaction"), - ADMIN_DELOP("admin_delop"); + ADMIN_DELOP("admin_delop"), + SEQ_TRACKING("seq_tracking"); public final String label; @@ -55,9 +67,28 @@ public class PulsarActivityUtil { } } public static boolean isValidDocLevelParam(String param) { - return Arrays.stream(OP_TYPES.values()).anyMatch(t -> t.label.equals(param)); + return Arrays.stream(DOC_LEVEL_PARAMS.values()).anyMatch(t -> t.label.equals(param)); } + /////// + // Valid Pulsar API type + public enum PULSAR_API_TYPE { + PRODUCER("producer"), + CONSUMER("consumer"), + READER("reader"); + + public final String label; + + PULSAR_API_TYPE(String label) { + this.label = label; + } + } + public static boolean isValidPulsarApiType(String param) { + return Arrays.stream(PULSAR_API_TYPE.values()).anyMatch(t -> t.label.equals(param)); + } + public static String getValidPulsarApiTypeList() { + return Arrays.stream(PULSAR_API_TYPE.values()).map(t -> t.label).collect(Collectors.joining(", ")); + } /////// // Valid persistence type @@ -75,7 +106,6 @@ public class PulsarActivityUtil { return Arrays.stream(PERSISTENT_TYPES.values()).anyMatch(t -> t.label.equals(type)); } - /////// // Valid Pulsar client configuration (activity-level settings) // - https://pulsar.apache.org/docs/en/client-libraries-java/#client @@ -171,11 +201,29 @@ public class PulsarActivityUtil { this.label = label; } } - public static boolean isStandardConsumerConfItem(String item) { return Arrays.stream(CONSUMER_CONF_STD_KEY.values()).anyMatch(t -> t.label.equals(item)); } + /////// + // Custom consumer configuration (activity-level settings) + // - NOT part of https://pulsar.apache.org/docs/en/client-libraries-java/#consumer + // - NB Pulsar driver consumer operation specific + public enum CONSUMER_CONF_CUSTOM_KEY { + timeout("timeout"); + + public final String label; + + CONSUMER_CONF_CUSTOM_KEY(String label) { + this.label = label; + } + } + public static boolean isCustomConsumerConfItem(String item) { + return Arrays.stream(CONSUMER_CONF_CUSTOM_KEY.values()).anyMatch(t -> t.label.equals(item)); + } + + /////// + // Pulsar subscription type public enum SUBSCRIPTION_TYPE { Exclusive("Exclusive"), Failover("Failover"), @@ -188,7 +236,6 @@ public class PulsarActivityUtil { this.label = label; } } - public static boolean isValidSubscriptionType(String item) { return Arrays.stream(SUBSCRIPTION_TYPE.values()).anyMatch(t -> t.label.equals(item)); } @@ -220,6 +267,10 @@ public class PulsarActivityUtil { return Arrays.stream(READER_CONF_STD_KEY.values()).anyMatch(t -> t.label.equals(item)); } + /////// + // Custom reader configuration (activity-level settings) + // - NOT part of https://pulsar.apache.org/docs/en/client-libraries-java/#reader + // - NB Pulsar driver reader operation specific public enum READER_CONF_CUSTOM_KEY { startMessagePos("startMessagePos"); @@ -229,11 +280,12 @@ public class PulsarActivityUtil { this.label = label; } } - public static boolean isCustomReaderConfItem(String item) { return Arrays.stream(READER_CONF_CUSTOM_KEY.values()).anyMatch(t -> t.label.equals(item)); } + /////// + // Valid read positions for a Pulsar reader public enum READER_MSG_POSITION_TYPE { earliest("earliest"), latest("latest"), @@ -245,11 +297,29 @@ public class PulsarActivityUtil { this.label = label; } } - public static boolean isValideReaderStartPosition(String item) { return Arrays.stream(READER_MSG_POSITION_TYPE.values()).anyMatch(t -> t.label.equals(item)); } + /////// + // Pulsar subscription type + public enum SEQ_ERROR_SIMU_TYPE { + OutOfOrder("out_of_order"), + DataLoss("data_loss"); + + public final String label; + + SEQ_ERROR_SIMU_TYPE(String label) { + this.label = label; + } + } + public static boolean isValidSeqErrSimuType(String item) { + return Arrays.stream(SEQ_ERROR_SIMU_TYPE.values()).anyMatch(t -> t.label.equals(item)); + } + public static String getValidSeqErrSimuTypeList() { + return Arrays.stream(SEQ_ERROR_SIMU_TYPE.values()).map(t -> t.label).collect(Collectors.joining(", ")); + } + /////// // Valid websocket-producer configuration (activity-level settings) // TODO: to be added @@ -387,5 +457,24 @@ public class PulsarActivityUtil { return schema; } + + /////// + // Generate effective key string + public static String buildCacheKey(String... keyParts) { + // Ignore blank keyPart + String joinedKeyStr = + Stream.of(keyParts) + .filter(s -> !StringUtils.isBlank(s)) + .collect(Collectors.joining(",")); + + return Base64.getEncoder().encodeToString(joinedKeyStr.getBytes()); + } + + /////// + // Convert JSON string to a key/value map + public static Map convertJsonToMap(String jsonStr) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + return mapper.readValue(jsonStr, Map.class); + } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarNBClientConf.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarNBClientConf.java index 0bbabd8c4..5e5da059e 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarNBClientConf.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarNBClientConf.java @@ -173,14 +173,16 @@ public class PulsarNBClientConf { } // other producer helper functions ... public String getProducerName() { - Object confValue = getProducerConfValue("producer.producerName"); + Object confValue = getProducerConfValue( + "producer." + PulsarActivityUtil.PRODUCER_CONF_STD_KEY.producerName.label); if (confValue == null) return ""; else return confValue.toString(); } public String getProducerTopicName() { - Object confValue = getProducerConfValue("producer.topicName"); + Object confValue = getProducerConfValue( + "producer." + PulsarActivityUtil.PRODUCER_CONF_STD_KEY.topicName); if (confValue == null) return ""; else @@ -213,48 +215,56 @@ public class PulsarNBClientConf { } // Other consumer helper functions ... public String getConsumerTopicNames() { - Object confValue = getConsumerConfValue("consumer.topicNames"); + Object confValue = getConsumerConfValue( + "consumer." + PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicNames.label); if (confValue == null) return ""; else return confValue.toString(); } public String getConsumerTopicPattern() { - Object confValue = getConsumerConfValue("consumer.topicsPattern"); + Object confValue = getConsumerConfValue( + "consumer." + PulsarActivityUtil.CONSUMER_CONF_STD_KEY.topicsPattern.label); if (confValue == null) return ""; else return confValue.toString(); } - public int getConsumerTimeoutSeconds() { - Object confValue = getConsumerConfValue("consumer.timeout"); - if (confValue == null) - return -1; // infinite - else - return Integer.parseInt(confValue.toString()); - } public String getConsumerSubscriptionName() { - Object confValue = getConsumerConfValue("consumer.subscriptionName"); + Object confValue = getConsumerConfValue( + "consumer." + PulsarActivityUtil.CONSUMER_CONF_STD_KEY.subscriptionName.label); if (confValue == null) return ""; else return confValue.toString(); } public String getConsumerSubscriptionType() { - Object confValue = getConsumerConfValue("consumer.subscriptionType"); + Object confValue = getConsumerConfValue( + "consumer." + PulsarActivityUtil.CONSUMER_CONF_STD_KEY.subscriptionType.label); if (confValue == null) return ""; else return confValue.toString(); } public String getConsumerName() { - Object confValue = getConsumerConfValue("consumer.consumerName"); + Object confValue = getConsumerConfValue( + "consumer." + PulsarActivityUtil.CONSUMER_CONF_STD_KEY.consumerName.label); if (confValue == null) return ""; else return confValue.toString(); } - + // NOTE: Below are not a standard Pulsar consumer configuration parameter as + // listed in "https://pulsar.apache.org/docs/en/client-libraries-java/#configure-consumer" + // They're custom-made configuration properties for NB pulsar driver consumer. + public int getConsumerTimeoutSeconds() { + Object confValue = getConsumerConfValue( + "consumer." + PulsarActivityUtil.CONSUMER_CONF_CUSTOM_KEY.timeout.label); + if (confValue == null) + return -1; // infinite + else + return Integer.parseInt(confValue.toString()); + } ////////////////// // Get Pulsar reader related config @@ -279,23 +289,29 @@ public class PulsarNBClientConf { else readerConfMap.put(key, value); } - // Other consumer helper functions ... + // Other reader helper functions ... public String getReaderTopicName() { - Object confValue = getReaderConfValue("reader.topicName"); + Object confValue = getReaderConfValue( + "reader." + PulsarActivityUtil.READER_CONF_STD_KEY.topicName.label); if (confValue == null) return ""; else return confValue.toString(); } public String getReaderName() { - Object confValue = getReaderConfValue("reader.readerName"); + Object confValue = getReaderConfValue( + "reader." + PulsarActivityUtil.READER_CONF_STD_KEY.readerName.label); if (confValue == null) return ""; else return confValue.toString(); } + // NOTE: Below are not a standard Pulsar reader configuration parameter as + // listed in "https://pulsar.apache.org/docs/en/client-libraries-java/#reader" + // They're custom-made configuration properties for NB pulsar driver reader. public String getStartMsgPosStr() { - Object confValue = getReaderConfValue("reader.startMessagePos"); + Object confValue = getReaderConfValue( + "reader." + PulsarActivityUtil.READER_CONF_CUSTOM_KEY.startMessagePos.label); if (confValue == null) return ""; else diff --git a/driver-pulsar/src/main/resources/activities/config.properties b/driver-pulsar/src/main/resources/activities/config.properties index 92842b9c2..37be64384 100644 --- a/driver-pulsar/src/main/resources/activities/config.properties +++ b/driver-pulsar/src/main/resources/activities/config.properties @@ -8,6 +8,8 @@ # TODO: as a starting point, only supports the following types # 1) primitive types, including bytearray (byte[]) which is default, for messages without schema # 2) Avro for messages with schema +#schema.type=avro +#schema.definition=file:///Users/yabinmeng/DataStax/MyNoSQLBench/nosqlbench/driver-pulsar/src/main/resources/activities/iot-example.avsc schema.type= schema.definition= diff --git a/driver-pulsar/src/main/resources/activities/pulsar_client_avro.yaml b/driver-pulsar/src/main/resources/activities/pulsar_client_avro.yaml index 6fe4b147e..709cd6256 100644 --- a/driver-pulsar/src/main/resources/activities/pulsar_client_avro.yaml +++ b/driver-pulsar/src/main/resources/activities/pulsar_client_avro.yaml @@ -49,6 +49,7 @@ blocks: optype: msg-send # producer_name: {producer_name} msg_key: "{mykey}" + msg_property: "{myprop}" msg_value: | { "SensorID": "{sensor_id}", diff --git a/driver-pulsar/src/main/resources/activities/pulsar_client_kv.yaml b/driver-pulsar/src/main/resources/activities/pulsar_client_kv.yaml index 834efda79..a15a7a58e 100644 --- a/driver-pulsar/src/main/resources/activities/pulsar_client_kv.yaml +++ b/driver-pulsar/src/main/resources/activities/pulsar_client_kv.yaml @@ -1,7 +1,10 @@ bindings: - # message key and value + # message key, property and value mykey: + int_prop_val: ToString(); Prefix("IntProp_") + text_prop_val: AlphaNumericString(10); Prefix("TextProp_") myvalue: NumberNameToString() #AlphaNumericString(20) + # tenant, namespace, and core topic name (without tenant and namespace) tenant: Mod(100); Div(10L); ToString(); Prefix("tnt") namespace: Mod(10); Div(5L); ToString(); Prefix("ns") core_topic_name: Mod(5); ToString(); Prefix("t") @@ -25,6 +28,11 @@ blocks: - name: s2 optype: batch-msg-send msg_key: "{mykey}" + msg_property: | + { + "prop1": "{int_prop_val}", + "prop2": "{text_prop_val}}" + } msg_value: "{myvalue}" ratio: 100 - name: s3 @@ -49,8 +57,6 @@ blocks: statements: - name: s1 optype: msg-consume - topic_names: - topics_pattern: subscription_name: "mysub" subscription_type: consumer_name: @@ -64,6 +70,19 @@ blocks: optype: msg-read reader_name: + - name: multi-topic-consumer-block + tags: + phase: multi-topic-consumer + admin_task: false + statements: + - name: s1 + optype: msg-mt-consume + topic_names: + topics_pattern: + subscription_name: "mysub" + subscription_type: + consumer_name: + # - websocket-producer: # tags: # type: websocket-produer diff --git a/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_e2e.yaml b/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_e2e.yaml new file mode 100644 index 000000000..50ac9dd4a --- /dev/null +++ b/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_e2e.yaml @@ -0,0 +1,30 @@ +bindings: + # message key, property and value + myprop1: AlphaNumericString(10); Prefix("PropVal_") + myvalue: NumberNameToString() #AlphaNumericString(20) + +# document level parameters that apply to all Pulsar client types: +params: + topic_uri: "persistent://public/default/sanity_e2e_2" + async_api: "true" + +blocks: + - name: e2e-msg-proc-block + tags: + phase: e2e-msg-proc + admin_task: false + statements: + - name: s1 + optype: ec2-msg-proc-send + msg_key: + msg_property: | + { + "prop1": "{myprop1}" + } + msg_value: "{myvalue}" + ratio: 1 + - name: s2 + optype: ec2-msg-proc-consume + ratio: 1 + subscription_name: "mysub" + subscription_type: diff --git a/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_seqloss.yaml b/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_seqloss.yaml new file mode 100644 index 000000000..7eccdd68e --- /dev/null +++ b/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_seqloss.yaml @@ -0,0 +1,36 @@ +bindings: + # message key, property and value + myprop1: AlphaNumericString(10) + myvalue: NumberNameToString() + +# document level parameters that apply to all Pulsar client types: +params: + topic_uri: "persistent://public/default/sanity_seqloss2" + # Only applicable to producer and consumer + # - used for message ordering and message loss check + seq_tracking: "false" + +blocks: + - name: producer-block + tags: + phase: producer + admin_task: false + statements: + - name: s1 + optype: msg-send + #seqerr_simu: "out_of_order" + seqerr_simu: "data_loass" + msg_key: + msg_property: + msg_value: "{myvalue}" + + - name: consumer-block + tags: + phase: consumer + admin_task: false + statements: + - name: s1 + optype: msg-consume + subscription_name: "mysub" + subscription_type: + consumer_name: From 55d5c450511123bcde56c0414554910006cc4ccd Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Thu, 23 Sep 2021 15:11:41 -0500 Subject: [PATCH 34/58] fix test method for single value --- .../test/java/io/virtdata/IntegratedComposerLogicTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/virtdata-userlibs/src/test/java/io/virtdata/IntegratedComposerLogicTest.java b/virtdata-userlibs/src/test/java/io/virtdata/IntegratedComposerLogicTest.java index b973420c7..4988a14dd 100644 --- a/virtdata-userlibs/src/test/java/io/virtdata/IntegratedComposerLogicTest.java +++ b/virtdata-userlibs/src/test/java/io/virtdata/IntegratedComposerLogicTest.java @@ -69,10 +69,10 @@ public class IntegratedComposerLogicTest { public void testResourceLoader() { Optional> dataMapper = VirtData.getOptionalMapper(" ModuloLineToString('data/variable_words.txt') -> String"); assertThat(dataMapper).isPresent(); - assertThat(dataMapper.get().get(1)).isEqualToComparingFieldByField("completion_count"); + assertThat(dataMapper.get().get(1)).isEqualTo("completion_count"); dataMapper = VirtData.getOptionalMapper("compose ModuloLineToString('variable_words.txt') -> String"); assertThat(dataMapper).isPresent(); - assertThat(dataMapper.get().get(1)).isEqualToComparingFieldByField("completion_count"); + assertThat(dataMapper.get().get(1)).isEqualTo("completion_count"); } @Test From bc0fb04fbd3131d91c0aef4fc926eeb676a8e9ce Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Thu, 23 Sep 2021 15:11:51 -0500 Subject: [PATCH 35/58] standardize formatting of rate limiter diagnostics --- .../ratelimits/HybridRateLimiter.java | 12 +++++++----- .../api/activityapi/ratelimits/RateSpec.java | 5 +++-- .../ratelimits/ThreadDrivenTokenPool.java | 16 +++++++++------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/HybridRateLimiter.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/HybridRateLimiter.java index e72b533e3..719a044a5 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/HybridRateLimiter.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/HybridRateLimiter.java @@ -218,15 +218,17 @@ public class HybridRateLimiter implements Startable, RateLimiter { @Override public String toString() { StringBuilder sb = new StringBuilder(HybridRateLimiter.class.getSimpleName()); + sb.append("{\n"); if (this.getRateSpec() != null) { - sb.append(" spec=").append(this.getRateSpec().toString()); - } - if (this.state != null) { - sb.append(" state=").append(this.state); + sb.append(" spec:").append(this.getRateSpec().toString()); } if (this.tokens != null) { - sb.append(" tokens=").append(this.tokens.toString()); + sb.append(",\n tokenpool:").append(this.tokens.toString()); } + if (this.state != null) { + sb.append(",\n state:'").append(this.state).append("'"); + } + sb.append("\n}"); return sb.toString(); } diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/RateSpec.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/RateSpec.java index 1d6fe72f6..6ef1675ff 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/RateSpec.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/RateSpec.java @@ -119,7 +119,8 @@ public class RateSpec { * Specify that a rate limiter should only be configured without affecting its running state. * If the rate limiter is already running, then the configuration should take effect immediately. * A rate limiter will be created automatically if needed. Configurations that do not effectively - * change the rate limiter are ignored. + * change the rate limiter are ignored. This does not automatically start the rate limiter. It + * will need to be started explicitly before it is used. */ configure, /** @@ -185,7 +186,7 @@ public class RateSpec { double burstPortion = Math.abs(br - ((long) br)); String burstfmt = (burstPortion > 0.001D) ? String.format("%,.3f", br) : String.format("%,d", (long) br); - return String.format("rate=%s burstRatio=%.3f (%s SOPSS %s BOPSS) [%s]", ratefmt, burstRatio, ratefmt, burstfmt, verb); + return String.format("{ rate:'%s', burstRatio:'%.3f', SOPSS:'%s', BOPSS:'%s', verb:'%s' }", ratefmt, burstRatio, ratefmt, burstfmt, verb); } public RateSpec withOpsPerSecond(double rate) { diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java index b3882f575..d185924fd 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java @@ -239,13 +239,15 @@ public class ThreadDrivenTokenPool implements TokenPool { @Override public String toString() { - return "Tokens: active=" + activePool + "/" + maxActivePool - + String.format( - " (%3.1f%%)A (%3.1f%%)B ", - (((double) activePool / (double) maxActivePool) * 100.0), - (((double) activePool / (double) maxOverActivePool) * 100.0)) + " waiting=" + waitingPool + - " blocks=" + blocks + - " rateSpec:" + ((rateSpec != null) ? rateSpec.toString() : "NULL"); + return String.format( + "{ active:%d, max:%d, fill:'(%,3.1f%%)A (%,3.1f%%)B', wait_ns:%,d, blocks:%,d, notifies:%,d}", + activePool, maxActivePool, + (((double) activePool / (double) maxActivePool) * 100.0), + (((double) activePool / (double) maxOverActivePool) * 100.0), + waitingPool, + blocks, + notifies + ); } @Override From ce73fca6ba980e2f35792426b4f62750a8db9423 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Thu, 23 Sep 2021 15:11:59 -0500 Subject: [PATCH 36/58] improve rate limiter tests --- .../RateLimiterPerfTestMethods.java | 60 ++++++++------- .../ratelimits/TestRateLimiterPerf1E8.java | 74 +++++++++++++++++-- .../nosqlbench/nb/api/testutils/Result.java | 13 ++-- 3 files changed, 104 insertions(+), 43 deletions(-) diff --git a/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/ratelimits/RateLimiterPerfTestMethods.java b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/ratelimits/RateLimiterPerfTestMethods.java index d5d32e00e..c7387257a 100644 --- a/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/ratelimits/RateLimiterPerfTestMethods.java +++ b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/ratelimits/RateLimiterPerfTestMethods.java @@ -62,7 +62,7 @@ public class RateLimiterPerfTestMethods { return perf.getLastResult(); } - public Result rateLimiterSingleThreadedConvergence(Function rlf, RateSpec rs, long startingCycles, double margin) { + public Result rateLimiterSingleThreadedConvergence(Function rlf, RateSpec rs, long startingCycles, double margin) { //rl.applyRateSpec(rl.getRateSpec().withOpsPerSecond(1E9)); Bounds bounds = new Bounds(startingCycles, 2); Perf perf = new Perf("nanotime"); @@ -139,21 +139,21 @@ public class RateLimiterPerfTestMethods { double duration = (endAt - startAt) / 1000000000.0d; double acqops = (count / duration); - System.out.println(rl.toString()); + System.out.println(rl); System.out.println(ANSI_Blue + - String.format( - "spec: %s\n count: %9d, duration %.5fS, acquires/s %.3f, nanos/op: %f\n delay: %d (%.5fS)", - rl.getRateSpec(), - count, duration, acqops, (1_000_000_000.0d / acqops), divDelay, (divDelay / 1_000_000_000.0d)) + - ANSI_Reset); + String.format( + "spec: %s\n count: %9d, duration %.5fS, acquires/s %.3f, nanos/op: %f\n delay: %d (%.5fS)", + rl.getRateSpec(), + count, duration, acqops, (1_000_000_000.0d / acqops), divDelay, (divDelay / 1_000_000_000.0d)) + + ANSI_Reset); } long[] delays = results.stream().mapToLong(Long::longValue).toArray(); String delaySummary = Arrays.stream(delays).mapToDouble(d -> (double) d / 1_000_000_000.0D).mapToObj(d -> String.format("%.3f", d)) - .collect(Collectors.joining(",")); + .collect(Collectors.joining(",")); System.out.println("delays in seconds:\n" + delaySummary); System.out.println("delays in ns:\n" + Arrays.toString(delays)); @@ -176,7 +176,7 @@ public class RateLimiterPerfTestMethods { * This a low-overhead test for multi-threaded access to the same getOpsPerSec limiter. It calculates the * effective concurrent getOpsPerSec under atomic contention. */ - public Perf testRateLimiterMultiThreadedContention(Function rlFunc, RateSpec spec, long iterations, int threadCount) { + public Perf testRateLimiterMultiThreadedContention(Function rlFunc, RateSpec spec, long iterations, int threadCount) { System.out.println("Running " + Thread.currentThread().getStackTrace()[1].getMethodName()); RateLimiter rl = rlFunc.apply(spec); @@ -187,24 +187,24 @@ public class RateLimiterPerfTestMethods { } RateLimiterPerfTestMethods.TestExceptionHandler errorhandler = new RateLimiterPerfTestMethods.TestExceptionHandler(); RateLimiterPerfTestMethods.TestThreadFactory threadFactory = new RateLimiterPerfTestMethods.TestThreadFactory(errorhandler); - ExecutorService tp = Executors.newFixedThreadPool(threadCount+1, threadFactory); + ExecutorService tp = Executors.newFixedThreadPool(threadCount + 1, threadFactory); - System.out.format("Running %d iterations split over %d threads (%d) at getOpsPerSec %.3f\n", iterations, threadCount, (iterations / threadCount), rate); + System.out.format("Running %,d iterations split over %,d threads (%,d per) at %,.3f ops/s\n", iterations, threadCount, (iterations / threadCount), rate); RateLimiterPerfTestMethods.Acquirer[] threads = new RateLimiterPerfTestMethods.Acquirer[threadCount]; DeltaHdrHistogramReservoir stats = new DeltaHdrHistogramReservoir("times", 5); - CyclicBarrier barrier = new CyclicBarrier(threadCount+1); + CyclicBarrier barrier = new CyclicBarrier(threadCount + 1); RateLimiterStarter starter = new RateLimiterStarter(barrier, rl); for (int i = 0; i < threadCount; i++) { - threads[i] = new RateLimiterPerfTestMethods.Acquirer(i, rl, (int) (iterationsPerThread), stats, barrier); + threads[i] = new RateLimiterPerfTestMethods.Acquirer(i, rl, iterationsPerThread, stats, barrier); // threads[i] = new RateLimiterPerfTestMethods.Acquirer(i, rl, (int) (iterations / threadCount), stats, barrier); } tp.execute(starter); - System.out.println("limiter stats:" + rl); + System.out.println(rl); System.out.format("submitting (%d threads)...\n", threads.length); List> futures = new ArrayList<>(); for (int i = 0; i < threadCount; i++) { @@ -223,7 +223,7 @@ public class RateLimiterPerfTestMethods { errorhandler.throwIfAny(); - System.out.println("limiter stats:" + rl); + System.out.println(rl); Perf aggregatePerf = new Perf("contended with " + threadCount + " threads for " + iterations + " iterations for " + rl.getRateSpec().toString()); futures.stream().map(f -> { @@ -234,7 +234,7 @@ public class RateLimiterPerfTestMethods { } }).forEachOrdered(aggregatePerf::add); - System.out.println(aggregatePerf); +// System.out.println(aggregatePerf); // if (rl instanceof HybridRateLimiter) { // String refillLog = ((HybridRateLimiter) rl).getRefillLog(); @@ -246,8 +246,8 @@ public class RateLimiterPerfTestMethods { } private static class RateLimiterStarter implements Runnable { - private CyclicBarrier barrier; - private RateLimiter rl; + private final CyclicBarrier barrier; + private final RateLimiter rl; public RateLimiterStarter(CyclicBarrier barrier, RateLimiter rl) { this.barrier = barrier; @@ -257,9 +257,9 @@ public class RateLimiterPerfTestMethods { @Override public void run() { try { - System.out.println("awaiting barrier (starter) (" + barrier.getNumberWaiting() + " awaiting)"); +// System.out.println("awaiting barrier (starter) (" + barrier.getNumberWaiting() + " awaiting)"); barrier.await(60, TimeUnit.SECONDS); - System.out.println("started the rate limiter (starter) (" + barrier.getNumberWaiting() + " awaiting)"); +// System.out.println("started the rate limiter (starter) (" + barrier.getNumberWaiting() + " awaiting)"); } catch (Exception e) { throw new RuntimeException(e); @@ -291,7 +291,7 @@ public class RateLimiterPerfTestMethods { private final int threadIdx; private final DeltaHdrHistogramReservoir reservoir; private final CyclicBarrier barrier; - private long iterations; + private final long iterations; public Acquirer(int i, RateLimiter limiter, int iterations, DeltaHdrHistogramReservoir reservoir, CyclicBarrier barrier) { this.threadIdx = i; @@ -304,14 +304,18 @@ public class RateLimiterPerfTestMethods { @Override public Result call() { // synchronized (barrier) { - try { - System.out.println("awaiting barrier " + this.threadIdx + " (" + barrier.getNumberWaiting() + " awaiting)"); - barrier.await(60, TimeUnit.SECONDS); - -// System.out.println("starting " + this.threadIdx); - } catch (Exception be) { - throw new RuntimeException(be); // This should not happen unless the test is broken + try { + if (this.threadIdx == 0) { + System.out.println("awaiting barrier"); } + barrier.await(60, TimeUnit.SECONDS); + if (this.threadIdx == 0) { + System.out.println("starting all threads"); + } + + } catch (Exception be) { + throw new RuntimeException(be); // This should not happen unless the test is broken + } // } long startTime = System.nanoTime(); for (int i = 0; i < iterations; i++) { diff --git a/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/ratelimits/TestRateLimiterPerf1E8.java b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/ratelimits/TestRateLimiterPerf1E8.java index 6c7e13e4f..bb146c864 100644 --- a/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/ratelimits/TestRateLimiterPerf1E8.java +++ b/engine-api/src/test/java/io/nosqlbench/engine/api/activityapi/ratelimits/TestRateLimiterPerf1E8.java @@ -33,8 +33,61 @@ import java.util.function.Function; */ public class TestRateLimiterPerf1E8 { - private Function rlFunction = rs -> new HybridRateLimiter(ActivityDef.parseActivityDef("alias=tokenrl"),"hybrid", rs.withVerb(RateSpec.Verb.configure)); - private RateLimiterPerfTestMethods methods = new RateLimiterPerfTestMethods(); + private final Function rlFunction = + rs -> new HybridRateLimiter( + ActivityDef.parseActivityDef("alias=tokenrl"), + "hybrid", + rs.withVerb(RateSpec.Verb.configure) + ); + private final RateLimiterPerfTestMethods methods = new RateLimiterPerfTestMethods(); + + @Test + @Disabled + public void test100Mops_4000threads() { + Perf perf = methods.testRateLimiterMultiThreadedContention( + rlFunction, + new RateSpec(1E8, 1.1), + 100_000_000, + 4000 + ); + System.out.println(perf.getLastResult()); + } + + @Test + @Disabled + public void test100Mops_2000threads() { + Perf perf = methods.testRateLimiterMultiThreadedContention( + rlFunction, + new RateSpec(1E8, 1.1), + 100_000_000, + 2000 + ); + System.out.println(perf.getLastResult()); + } + + @Test + @Disabled + public void test100Mops_1000threads() { + Perf perf = methods.testRateLimiterMultiThreadedContention( + rlFunction, + new RateSpec(1E8, 1.1), + 100_000_000, + 1000 + ); + System.out.println(perf.getLastResult()); + } + + @Test + @Disabled + public void test100Mops_320threads() { + Perf perf = methods.testRateLimiterMultiThreadedContention( + rlFunction, + new RateSpec(1E8, 1.1), + 100_000_000, + 320 + ); + System.out.println(perf.getLastResult()); + } // 160 threads at 100_000_000 ops/s // 1600000000_ops 149.351811_S 10712960.186_ops_s, 93_ns_op @@ -46,7 +99,12 @@ public class TestRateLimiterPerf1E8 { @Test @Disabled public void test100Mops_160threads() { - Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000,160); + Perf perf = methods.testRateLimiterMultiThreadedContention( + rlFunction, + new RateSpec(1E8, 1.1), + 100_000_000, + 160 + ); System.out.println(perf.getLastResult()); } @@ -57,7 +115,7 @@ public class TestRateLimiterPerf1E8 { @Test @Disabled public void test100Mops_80threads() { - Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000,80); + Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000, 80); System.out.println(perf.getLastResult()); } @@ -70,7 +128,7 @@ public class TestRateLimiterPerf1E8 { @Test @Disabled public void test100Mops_40threads() { - Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000,40); + Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000, 40); System.out.println(perf.getLastResult()); } @@ -90,7 +148,7 @@ public class TestRateLimiterPerf1E8 { @Test @Disabled public void test100Mops_20threads() { - Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000,20); + Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000, 20); System.out.println(perf.getLastResult()); } @@ -106,7 +164,7 @@ public class TestRateLimiterPerf1E8 { @Test @Disabled public void test100Mops_10threads() { - Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000,10); + Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000, 10); System.out.println(perf.getLastResult()); } @@ -123,7 +181,7 @@ public class TestRateLimiterPerf1E8 { @Test @Disabled public void test100Mops_5threads() { - Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000,5); + Perf perf = methods.testRateLimiterMultiThreadedContention(rlFunction, new RateSpec(1E8, 1.1), 100_000_000, 5); System.out.println(perf.getLastResult()); } diff --git a/nb-api/src/main/java/io/nosqlbench/nb/api/testutils/Result.java b/nb-api/src/main/java/io/nosqlbench/nb/api/testutils/Result.java index 4a48acf02..fa9d0d418 100644 --- a/nb-api/src/main/java/io/nosqlbench/nb/api/testutils/Result.java +++ b/nb-api/src/main/java/io/nosqlbench/nb/api/testutils/Result.java @@ -26,7 +26,7 @@ public class Result { private final long start; private final long end; private final long ops; - private String description; + private final String description; public Result(String description, long start, long end, long ops) { this.description = description; @@ -58,15 +58,15 @@ public class Result { @Override public String toString() { long time_ns = end - start; - return String.format("'%s': %d_ops %f_S %.3f_ops_s, %.0f_ns_op", description, ops, getTimeSeconds(), getOpsPerSec(), getNsPerOp()); + return String.format("'%s': %d_ops %,f_S %,.3f_ops_s, %,.0f_ns_op", description, ops, getTimeSeconds(), getOpsPerSec(), getNsPerOp()); } public static List toString(List results) { List ldesc = results.stream().map(Result::getDescription).collect(Collectors.toList()); - List lops = results.stream().map(r -> String.format("%d_ops",r.getTotalOps())).collect(Collectors.toList()); - List ltime_s = results.stream().map(r -> String.format("%f_S",r.getTimeSeconds())).collect(Collectors.toList()); - List lops_s = results.stream().map(r -> String.format("%.3f_ops_s",r.getOpsPerSec())).collect(Collectors.toList()); - List lns_op = results.stream().map(r -> String.format("%.0f_ns_op",r.getNsPerOp())).collect(Collectors.toList()); + List lops = results.stream().map(r -> String.format("%,d_ops",r.getTotalOps())).collect(Collectors.toList()); + List ltime_s = results.stream().map(r -> String.format("%,f_S",r.getTimeSeconds())).collect(Collectors.toList()); + List lops_s = results.stream().map(r -> String.format("%,.3f_ops_s",r.getOpsPerSec())).collect(Collectors.toList()); + List lns_op = results.stream().map(r -> String.format("%,.0f_ns_op",r.getNsPerOp())).collect(Collectors.toList()); int sizeof_ldesc = ldesc.stream().mapToInt(String::length).max().orElse(0); int sizeof_lops = lops.stream().mapToInt(String::length).max().orElse(0); @@ -83,7 +83,6 @@ public class Result { return rows; } - public long getStartNanos() { return this.start; } From 14859b09cb3a4a0282138659c30134544b45db02 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Fri, 24 Sep 2021 05:05:18 -0500 Subject: [PATCH 37/58] fix high-centered changes after merge --- .../api/activityapi/ratelimits/ThreadDrivenTokenPool.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java index d185924fd..0d700c15f 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityapi/ratelimits/ThreadDrivenTokenPool.java @@ -240,13 +240,12 @@ public class ThreadDrivenTokenPool implements TokenPool { @Override public String toString() { return String.format( - "{ active:%d, max:%d, fill:'(%,3.1f%%)A (%,3.1f%%)B', wait_ns:%,d, blocks:%,d, notifies:%,d}", + "{ active:%d, max:%d, fill:'(%,3.1f%%)A (%,3.1f%%)B', wait_ns:%,d, blocks:%,d }", activePool, maxActivePool, (((double) activePool / (double) maxActivePool) * 100.0), (((double) activePool / (double) maxOverActivePool) * 100.0), waitingPool, - blocks, - notifies + blocks ); } From cdf1f1e7641e5c565cf589831222afefafaef718 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Fri, 24 Sep 2021 05:06:51 -0500 Subject: [PATCH 38/58] minor fixes and new workloads --- RELEASENOTES.md | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 579196e6f..bcfaa0367 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,15 +1,12 @@ -- 4e746491 (HEAD -> main) ignore cache files -- 94ffe1c1 (origin/main) release: bug fixes and minor enhancements to http driver -- 7ffc0cd2 improve http console formats -- cdfee8eb http: explain http status codes in diagnostic output -- 58e79bcd http: make body output truncation more obvious -- ea0eae3d http: always print body if present and requested -- d3b1e074 Merge branch 'main' of github.com:nosqlbench/nosqlbench -- df1764f5 fix for #352 progress indicator on console -- 29601396 remove erroneous interface -- 7e70a89c Merge pull request #353 from MMirelli/fix/docker-image-alpine-slim -- 17096ebb fix broken tests for ScenarioParser -- 61691fc0 add initial version of stepup analysis -- 9d96131b unify name of CsvOutptPlugin impl -- 668f9f35 synchronize start of token pool -- 29aa1440 Dockerfile: openjdk:15-alpine -> adoptopenjdk/openjdk15:alpine-slim +- 14859b09 (HEAD -> main) fix high-centered changes after merge +- 98ad9780 Merge branch 'main' of github.com:nosqlbench/nosqlbench +- ce73fca6 improve rate limiter tests +- bc0fb04f standardize formatting of rate limiter diagnostics +- 55d5c450 fix test method for single value +- 99982ce7 (origin/main) Merge pull request #358 from ivansenic/ise-mongodb-crud +- 3b7bf42f added mongoDB CRUD scenarios +- e33e999e Merge pull request #357 from ivansenic/ise-documents-crud +- 3c1405d6 Merge pull request #356 from ivansenic/ise-fix-uszips +- 4c7e0bd8 added Documents API CRUD dataset scenario +- c9613bea fixing the path to the uszips realdata +- 9248c915 Fix markdown typos introduced by auto formatting From 55bf54402be23f5d50110101684e4c7dfbaa9a75 Mon Sep 17 00:00:00 2001 From: nb-droid Date: Fri, 24 Sep 2021 10:18:37 +0000 Subject: [PATCH 39/58] [maven-release-plugin] prepare release nosqlbench-4.15.54 --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 9a93a7f93..690c615bc 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.54-SNAPSHOT + 4.15.54 @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index c44ee482a..8e35a23e3 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.54-SNAPSHOT + 4.15.54 org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index b485d636b..98126d343 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index 5e1525928..c8f11f1e8 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 31fb6110b..78a222f32 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index b38c6eec4..7de15cc5c 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index 063bf7370..6712f1080 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-http/pom.xml b/driver-http/pom.xml index 1f67a439f..17f366449 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 41066bfb5..0c3fd6bab 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index dcd657867..7a9f038ff 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-stdout - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index 5ecf723cc..dcf8c2f48 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index 58d974ab3..9a6671bf1 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-stdout - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index 0affca7f2..604194346 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index d1f54f35e..33893f740 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-stdout - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index cdb0b2001..0ef9db141 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index c215a5c7c..7d7fc5c3f 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-stdout - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/driver-web/pom.xml b/driver-web/pom.xml index e5039af27..5c2035e2f 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index c0826981a..ea61025cb 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench virtdata-userlibs - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 845b4ba1f..318a11525 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench nb-annotations - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench virtdata-userlibs - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 191ac2190..a6f261e75 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench engine-docker - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index 413244169..4bd7a8089 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/engine-core/pom.xml b/engine-core/pom.xml index 5debbfded..7c9619c42 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench drivers-api - 4.15.54-SNAPSHOT + 4.15.54 @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.54-SNAPSHOT + 4.15.54 compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 14543c139..6a25f3519 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index 74fc33c1d..a0e963c06 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index 33658c126..a6a331371 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index a28189441..6a0557556 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 581da4ad8..38bfb7881 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.54-SNAPSHOT + 4.15.54 pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.54 diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 35ff1de37..46278d70c 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 6fec97065..35926505b 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/nb/pom.xml b/nb/pom.xml index 6ba3902ad..2f0519ff2 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench engine-cli - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench engine-docs - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench engine-core - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench engine-extensions - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-web - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-kafka - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-stdout - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-diag - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-tcp - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-http - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-jmx - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-dsegraph-shaded - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-cql-shaded - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-cqld3-shaded - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-cqlverify - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-mongodb - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-pulsar - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-cockroachdb - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench driver-jms - 4.15.54-SNAPSHOT + 4.15.54 @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/pom.xml b/pom.xml index 828c652ed..cbedb3e70 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.54 diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 9e11ab4e0..6c6a86733 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 nb-api io.nosqlbench virtdata-lang - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index f543a4a02..d762e6132 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 45ffbcdd6..0ca92e554 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 17d16dffc..49a2d9caf 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench virtdata-lib-basics - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 913bdb024..db9540684 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench virtdata-lib-basics - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index 2eb07571b..45a8d2332 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index 4bfbaafd5..9fc9a5e72 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.54-SNAPSHOT + 4.15.54 diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index dc37aee86..71c4f1adf 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench virtdata-lib-realer - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench virtdata-api - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench virtdata-lib-random - 4.15.54-SNAPSHOT + 4.15.54 io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 virtdata-lib-basics io.nosqlbench - 4.15.54-SNAPSHOT + 4.15.54 virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.54-SNAPSHOT + 4.15.54 From d9de9cb83aded2bceb86bac0b3f22515a8e38d8a Mon Sep 17 00:00:00 2001 From: nb-droid Date: Fri, 24 Sep 2021 10:18:39 +0000 Subject: [PATCH 40/58] [maven-release-plugin] prepare for next development iteration --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 690c615bc..8180b7a00 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.54 + 4.15.55-SNAPSHOT @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index 8e35a23e3..cb35a9531 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.54 + 4.15.55-SNAPSHOT org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 98126d343..74ccd3f3c 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index c8f11f1e8..16245c1ff 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 78a222f32..6e175277a 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index 7de15cc5c..7abc0f5a0 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index 6712f1080..f9bc1120a 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-http/pom.xml b/driver-http/pom.xml index 17f366449..cb294cbba 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 0c3fd6bab..cc5c281f1 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index 7a9f038ff..b9e7ed6e3 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-stdout - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index dcf8c2f48..c360ab9b9 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index 9a6671bf1..1f28d4b30 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-stdout - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index 604194346..1ff5c3c92 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index 33893f740..7748cfd9d 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-stdout - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index 0ef9db141..c010a342a 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 7d7fc5c3f..1f8458ea5 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-stdout - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/driver-web/pom.xml b/driver-web/pom.xml index 5c2035e2f..774ded2c1 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index ea61025cb..5a3c19729 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 318a11525..18d8cf817 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench nb-annotations - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index a6f261e75..9af5ed48d 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench engine-docker - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index 4bd7a8089..97c816359 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/engine-core/pom.xml b/engine-core/pom.xml index 7c9619c42..b809d662f 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench drivers-api - 4.15.54 + 4.15.55-SNAPSHOT @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.54 + 4.15.55-SNAPSHOT compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 6a25f3519..4e2d64bb5 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index a0e963c06..10b6987b3 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index a6a331371..e8b45207f 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index 6a0557556..6f272a9d4 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 38bfb7881..912db1591 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.54 + 4.15.55-SNAPSHOT pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - nosqlbench-4.15.54 + HEAD diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 46278d70c..35fe125e7 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 35926505b..9900a71c9 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/nb/pom.xml b/nb/pom.xml index 2f0519ff2..4d6fb491a 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench engine-cli - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench engine-docs - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench engine-core - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench engine-extensions - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-web - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-kafka - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-stdout - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-diag - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-tcp - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-http - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-jmx - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-dsegraph-shaded - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-cql-shaded - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-cqld3-shaded - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-cqlverify - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-mongodb - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-pulsar - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-cockroachdb - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench driver-jms - 4.15.54 + 4.15.55-SNAPSHOT @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/pom.xml b/pom.xml index cbedb3e70..92282daee 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - nosqlbench-4.15.54 + HEAD diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 6c6a86733..5ee4d95fa 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT nb-api io.nosqlbench virtdata-lang - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index d762e6132..9b516b45c 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 0ca92e554..2c1efe7cf 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 49a2d9caf..2d9642f12 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index db9540684..9ccd03421 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index 45a8d2332..c797618ca 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index 9fc9a5e72..bb58b0de2 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.54 + 4.15.55-SNAPSHOT diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index 71c4f1adf..9adc75314 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench virtdata-lib-realer - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench virtdata-api - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench virtdata-lib-random - 4.15.54 + 4.15.55-SNAPSHOT io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT virtdata-lib-basics io.nosqlbench - 4.15.54 + 4.15.55-SNAPSHOT virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.54 + 4.15.55-SNAPSHOT From 6903a230496d8c652ffe12bfc5dca1c9a5f7d0a5 Mon Sep 17 00:00:00 2001 From: Yabin Meng Date: Fri, 24 Sep 2021 09:27:43 -0500 Subject: [PATCH 41/58] README update --- .../pulsar/ops/PulsarAdminTenantOp.java | 30 +- .../activities/pulsar_admin_tenant.yaml | 4 +- driver-pulsar/src/main/resources/pulsar.md | 387 +++++++++++++----- 3 files changed, 304 insertions(+), 117 deletions(-) diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java index 77ad3c8fe..5d0bd3508 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java @@ -52,13 +52,17 @@ public class PulsarAdminTenantOp extends PulsarAdminOp { try { if (!asyncApi) { tenants.createTenant(tenant, tenantInfo); - logger.trace("Successfully created tenant \"" + tenant + "\" synchronously!"); + if (logger.isDebugEnabled()) { + logger.debug("Successful sync creation of tenant {}", tenant); + } } else { CompletableFuture future = tenants.createTenantAsync(tenant, tenantInfo); - future.whenComplete((unused, throwable) -> - logger.trace("Successfully created tenant \"" + tenant + "\" asynchronously!")) - .exceptionally(ex -> { - logger.error("Failed to create tenant \"" + tenant + "\" asynchronously!"); + future.whenComplete((unused, throwable) -> { + if (logger.isDebugEnabled()) { + logger.debug("Successful async creation of tenant {}", tenant); + } + }).exceptionally(ex -> { + logger.error("Failed async creation of tenant {}", tenant); return null; }); } @@ -80,13 +84,19 @@ public class PulsarAdminTenantOp extends PulsarAdminOp { if ( nsNum == 0 ) { if (!asyncApi) { tenants.deleteTenant(tenant); - logger.trace("Successfully deleted tenant \"" + tenant + "\" synchronously!"); + if (logger.isDebugEnabled()) { + logger.debug("Successful sync deletion of tenant {}", tenant); + } } else { CompletableFuture future = tenants.deleteTenantAsync(tenant); - future.whenComplete((unused, throwable) - -> logger.trace("Successfully deleted tenant \"" + tenant + "\" asynchronously!")) - .exceptionally(ex -> { - logger.error("Failed to delete tenant \"" + tenant + "\" asynchronously!"); + future.whenComplete((unused, throwable) -> { + if (logger.isDebugEnabled()) { + logger.debug("Successful async deletion of tenant {}", tenant); + } + }).exceptionally(ex -> { + if (logger.isDebugEnabled()) { + logger.error("Failed async deletion of tenant {}", tenant); + } return null; }); } diff --git a/driver-pulsar/src/main/resources/activities/pulsar_admin_tenant.yaml b/driver-pulsar/src/main/resources/activities/pulsar_admin_tenant.yaml index fa579a31a..90a697ba6 100644 --- a/driver-pulsar/src/main/resources/activities/pulsar_admin_tenant.yaml +++ b/driver-pulsar/src/main/resources/activities/pulsar_admin_tenant.yaml @@ -5,10 +5,10 @@ bindings: params: # "true" - asynchronous Pulsar Admin API # "false" - synchronous Pulsar Admin API - async_api: "true" + async_api: "false" # "true" - delete tenant # "false" - create tenant - admin_delop: "false" + admin_delop: "true" blocks: - name: create-tenant-block diff --git a/driver-pulsar/src/main/resources/pulsar.md b/driver-pulsar/src/main/resources/pulsar.md index 9355cc0b0..799c8656c 100644 --- a/driver-pulsar/src/main/resources/pulsar.md +++ b/driver-pulsar/src/main/resources/pulsar.md @@ -1,24 +1,29 @@ - [1. NoSQLBench (NB) Pulsar Driver Overview](#1-nosqlbench-nb-pulsar-driver-overview) - - [1.1. Issues Tracker](#11-issues-tracker) - - [1.2. Global Level Pulsar Configuration Settings](#12-global-level-pulsar-configuration-settings) - - [1.3. NB Pulsar Driver Yaml File - High Level Structure](#13-nb-pulsar-driver-yaml-file---high-level-structure) - - [1.3.1. NB Cycle Level Parameters vs. Global Level Parameters](#131-nb-cycle-level-parameters-vs-global-level-parameters) - - [1.4. Pulsar Driver Yaml File - Command Block Details](#14-pulsar-driver-yaml-file---command-block-details) - - [1.4.1. Pulsar Admin API Command Block - Create Tenants](#141-pulsar-admin-api-command-block---create-tenants) - - [1.4.2. Pulsar Admin API Command Block - Create Namespaces](#142-pulsar-admin-api-command-block---create-namespaces) - - [1.4.3. Pulsar Admin API Command Block - Create Topics (Partitioned or Regular)](#143-pulsar-admin-api-command-block---create-topics-partitioned-or-regular) - - [1.4.4. Batch Producer Command Block](#144-batch-producer-command-block) - - [1.4.5. Producer Command Block](#145-producer-command-block) - - [1.4.6. Consumer Command Block](#146-consumer-command-block) - - [1.4.7. Reader Command Block](#147-reader-command-block) - - [1.5. Schema Support](#15-schema-support) - - [1.6. NB Activity Execution Parameters](#16-nb-activity-execution-parameters) - - [1.7. NB Pulsar Driver Execution Example](#17-nb-pulsar-driver-execution-example) - - [1.8. Appendix A. Template Global Setting File (config.properties)](#18-appendix-a-template-global-setting-file-configproperties) + - [1.1. Issues Tracker](#11-issues-tracker) + - [1.2. Global Level Pulsar Configuration Settings](#12-global-level-pulsar-configuration-settings) + - [1.3. NB Pulsar Driver Yaml File - High Level Structure](#13-nb-pulsar-driver-yaml-file---high-level-structure) + - [1.3.1. Configuration Parameter Levels](#131-configuration-parameter-levels) + - [1.4. Pulsar Driver Yaml File - Command Blocks](#14-pulsar-driver-yaml-file---command-blocks) + - [1.4.1. Pulsar Admin API Command Block - Create Tenants](#141-pulsar-admin-api-command-block---create-tenants) + - [1.4.2. Pulsar Admin API Command Block - Create Namespaces](#142-pulsar-admin-api-command-block---create-namespaces) + - [1.4.3. Pulsar Admin API Command Block - Create Topics (Partitioned or Regular)](#143-pulsar-admin-api-command-block---create-topics-partitioned-or-regular) + - [1.4.4. Batch Producer Command Block](#144-batch-producer-command-block) + - [1.4.5. Producer Command Block](#145-producer-command-block) + - [1.4.6. (Single-Topic) Consumer Command Block](#146-single-topic-consumer-command-block) + - [1.4.7. Reader Command Block](#147-reader-command-block) + - [1.4.8. Multi-topic Consumer Command Block](#148-multi-topic-consumer-command-block) + - [1.4.9. End-to-end Message Processing Command Block](#149-end-to-end-message-processing-command-block) + - [1.5. Message Properties](#15-message-properties) + - [1.6. Schema Support](#16-schema-support) + - [1.7. Measure End-to-end Message Processing Latency](#17-measure-end-to-end-message-processing-latency) + - [1.8. Detect Message Out-of-order Error and Message Loss](#18-detect-message-out-of-order-error-and-message-loss) + - [1.9. NB Activity Execution Parameters](#19-nb-activity-execution-parameters) + - [1.10. NB Pulsar Driver Execution Example](#110-nb-pulsar-driver-execution-example) + - [1.11. Appendix A. Template Global Setting File (config.properties)](#111-appendix-a-template-global-setting-file-configproperties) - [2. TODO : Design Revisit -- Advanced Driver Features](#2-todo--design-revisit----advanced-driver-features) - - [2.1. Other Activity Parameters](#21-other-activity-parameters) - - [2.2. API Caching](#22-api-caching) - - [2.2.1. Instancing Controls](#221-instancing-controls) + - [2.1. Other Activity Parameters](#21-other-activity-parameters) + - [2.2. API Caching](#22-api-caching) + - [2.2.1. Instancing Controls](#221-instancing-controls) # 1. NoSQLBench (NB) Pulsar Driver Overview @@ -38,7 +43,7 @@ If you have issues or new requirements for this driver, please add them at the [ ## 1.2. Global Level Pulsar Configuration Settings -The NB Pulsar driver relies on Pulsar's [Java Client API](https://pulsar.apache.org/docs/en/client-libraries-java/) to publish and consume messages from the Pulsar cluster. In order to do so, a [PulsarClient](https://pulsar.incubator.apache.org/api/client/2.7.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient) object needs to be created first in order to establish the connection to the Pulsar cluster; then a workload-specific object (e.g. [Producer](https://pulsar.incubator.apache.org/api/client/2.7.0-SNAPSHOT/org/apache/pulsar/client/api/Producer) or [Consumer](https://pulsar.incubator.apache.org/api/client/2.7.0-SNAPSHOT/org/apache/pulsar/client/api/Consumer)) is required in order to execute workload-specific actions (e.g. publishing or consuming messages). +The NB Pulsar driver relies on Pulsar's [Java Client API](https://pulsar.apache.org/docs/en/client-libraries-java/) to publish messages to and consume messages from a Pulsar cluster. In order to do so, a [PulsarClient](https://pulsar.incubator.apache.org/api/client/2.7.0-SNAPSHOT/org/apache/pulsar/client/api/PulsarClient) object needs to be created first in order to establish the connection to the Pulsar cluster; then a workload-specific object (e.g. [Producer](https://pulsar.incubator.apache.org/api/client/2.7.0-SNAPSHOT/org/apache/pulsar/client/api/Producer) or [Consumer](https://pulsar.incubator.apache.org/api/client/2.7.0-SNAPSHOT/org/apache/pulsar/client/api/Consumer)) is required in order to execute workload-specific actions (e.g. publishing or consuming messages). When creating these objects (e.g. PulsarClient, Producer), there are different configuration options that can be used. For example, [this document](https://pulsar.apache.org/docs/en/client-libraries-java/#configure-producer) lists all possible configuration options when creating a Pulsar Producer object. @@ -70,32 +75,28 @@ There are multiple sections in this file that correspond to different groups of format. The other valid option is **avro** which the Pulsar message will follow a specific Avro format. * *schema.definition*: This only applies when an Avro schema type - is specified and the value is the (full) file path that contains - the Avro schema definition. + is specified. The value of this configuration is the (full) file + path that contains the Avro schema definition. * **Pulsar Client related settings**: * All settings under this section starts with **client.** prefix. * This section defines all configuration settings that are related with defining a PulsarClient object. - * - See [Pulsar Doc Reference](https://pulsar.apache.org/docs/en/client-libraries-java/#default-broker-urls-for-standalone-clusters) + * See [Pulsar Doc Reference](https://pulsar.apache.org/docs/en/client-libraries-java/#default-broker-urls-for-standalone-clusters) * **Pulsar Producer related settings**: * All settings under this section starts with **producer** prefix. * This section defines all configuration settings that are related with defining a Pulsar Producer object. - * - See [Pulsar Doc Reference](https://pulsar.apache.org/docs/en/client-libraries-java/#configure-producer) + * See [Pulsar Doc Reference](https://pulsar.apache.org/docs/en/client-libraries-java/#configure-producer) * **Pulsar Consumer related settings**: * All settings under this section starts with **consumer** prefix. * This section defines all configuration settings that are related with defining a Pulsar Consumer object. - * - See [Pulsar Doc Reference](http://pulsar.apache.org/docs/en/client-libraries-java/#configure-consumer) + * See [Pulsar Doc Reference](http://pulsar.apache.org/docs/en/client-libraries-java/#configure-consumer) * **Pulsar Reader related settings**: * All settings under this section starts with **reader** prefix. * This section defines all configuration settings that are related with defining a Pulsar Reader object. - * - See [Pulsar Doc Reference](https://pulsar.apache.org/docs/en/client-libraries-java/#reader) + * See [Pulsar Doc Reference](https://pulsar.apache.org/docs/en/client-libraries-java/#reader) In the future, when the support for other types of Pulsar workloads is added in NB Pulsar driver, there will be corresponding configuration @@ -104,7 +105,7 @@ sections in this file as well. ## 1.3. NB Pulsar Driver Yaml File - High Level Structure Just like other NB driver types, the actual Pulsar workload generation is -determined by the statement blocks in the NB driver Yaml file. Depending +determined by the statement blocks in an NB driver Yaml file. Depending on the Pulsar workload type, the corresponding statement block may have different contents. @@ -113,12 +114,19 @@ At high level, Pulsar driver yaml file has the following structure: * **description**: (optional) general description of the yaml file * **bindings**: defines NB bindings * **params**: document level Pulsar driver parameters that apply to all - command blocks. Currently there are two valid parameters: + command blocks. Currently, the following parameters are valid at this + level: * **topic_url**: Pulsar topic uri ([persistent|non-persistent]: ////). This can be statically assigned or dynamically generated via NB bindings. * **async_api**: Whether to use asynchronous Pulsar API (**note**: more on this later) + * **use_transaction**: Whether to simulate Pulsar transaction + * **admin_delop**: For Admin tasks, whether to execute delete operation + instead of the default create operation. + * **seq_tracking**: Whether to do message sequence tracking. This is + used for message out-of-order and message loss detection (more on + this later). * **blocks**: includes a series of command blocks. Each command block defines one major Pulsar operation such as *producer*, *consumer*, etc. Right now, the following command blocks are already supported or will be @@ -129,8 +137,12 @@ At high level, Pulsar driver yaml file has the following structure: * (Pulsar Admin API) **create-topic-block**: create/delete topics * (Pulsar Client API) **batch-producer-block**: batch producer * (Pulsar Client API) **producer-block**: producer - * (Pulsar Client API) **consumer-block**: consumer + * (Pulsar Client API) **consumer-block**: consumer (single topic) * (Pulsar Client API) **reader-block**: reader + * (Pulsar Client API) **e2e-msg-proc-block**: keep track of end-to-end + message latency (histogram) + * (Pulsar Client API) **multi-topic-consumer-block**: consumer (multi- + topic) ```yaml description: | @@ -186,66 +198,43 @@ multiple Pulsar operations in one run! But if we want to focus the testing on one particular operation, we can use the tag to filter the command block as listed above! -### 1.3.1. NB Cycle Level Parameters vs. Global Level Parameters +### 1.3.1. Configuration Parameter Levels -Some parameters, especially topic name and producer/consumer/reader/etc. -name, can be set at the global level in **config.properties** file, or at -NB cycle level via **pulsar.yaml** file. An example of setting a topic -name in both levels is as below: +The NB Pulsar driver configuration parameters can be set at 3 different +levels: -```bash -# Global level setting (config.properties): -producer.topicName = ... - -# Cycle level setting (pulsar.yaml) +* **global level**: parameters that are set in ***config.properties*** file +``` +schema.type= +``` +* **document level**: parameters that are set within NB yaml file and under + the ***params*** section +``` params: topic_uri: ... ``` +* **statement level**: parameters that are set within NB yaml file, but +under different block statements +``` +- name: producer-block + statements: + - name: s1 + msg_key: +``` -In theory, all Pulsar client settings can be made as cycle level settings -for maximum flexibility. But practically speaking (and also for simplicity -purposes), only the following parameters are made to be configurable at -both levels, listed by cycle level setting names with their corresponding -global level setting names: -* topic_uri (Mandatory) - * producer.topicName - * consumer.topicNames - * reader.topicName -* topic_names (Optional for Consumer) - * consumer.topicNames -* subscription_name (Mandatory for Consumer) - * consumer.subscriptionName -* subscription_type (Mandatory for Consumer, default to **exclusive** - type) - * consumer.subscriptionType -* topics_pattern (Optional for Consumer) - * consumer.topicsPattern -* producer_name (Optional) - * producer.producerName -* consumer_name (Optional) - * consumer.consumerName -* reader_name (Optional) - * reader.readerName +**NOTE**: If one parameter is set at multiple levels (e.g. producer name), +the parameter at lower level will take precedence. -One key difference between setting a parameter at the global level vs. at -the cycle level is that the global level setting is always static and -stays the same for all NB cycle execution. The cycle level setting, on the -other side, can be dynamically bound and can be different from cycle to -cycle. - -Because of this, setting these parameters at the NB cycle level allows us -to run Pulsar testing against multiple topics and/or multiple -producers/consumers/readers/etc all at once within one NB activity. This -makes the testing more flexible and effective. - -**NOTE**: when a configuration is set at both the global level and the -cycle level, **the cycle level setting will take priority!** - -## 1.4. Pulsar Driver Yaml File - Command Block Details +## 1.4. Pulsar Driver Yaml File - Command Blocks ### 1.4.1. Pulsar Admin API Command Block - Create Tenants -This Pulsar Admin API Block is used to create Pulsar tenants. It has the following format: +This Pulsar Admin API Block is used to create or delete Pulsar tenants. It +has the following format. + +Please note that when document level parameter **admin_delop** is set to be +true, then this command block will delete Pulsar tenants instead. Similarly +this applies to other Admin API blocks for namespace and topic management. ```yaml - name: create-tenant-block @@ -265,10 +254,10 @@ In this command block, there is only 1 statement (s1): * Statement **s1** is used for creating a Pulsar tenant * (Mandatory) **optype (admin-tenant)** is the statement identifier for this statement - * (Optional) **allowed_clusters** must be statically bound and it + * (Optional) **allowed_clusters** must be statically bound, and it specifies the cluster list that is allowed for a tenant. - * (Optional) **admin_roles** must be statically bound and it specifies - the super user role that is associated with a tenant. + * (Optional) **admin_roles** must be statically bound, and it specifies + the superuser role that is associated with a tenant. * (Mandatory) **tenant** is the Pulsar tenant name to be created. It can either be dynamically or statically bound. @@ -293,7 +282,7 @@ In this command block, there is only 1 statement (s1): * (Mandatory) **optype (admin-namespace)** is the statement identifier for this statement * (Mandatory) **namespace** is the Pulsar namespace name to be created - under the above tenant. It also can be dynamically or statically bound. + under a tenant. It can be either statically or dynamically bound. ### 1.4.3. Pulsar Admin API Command Block - Create Topics (Partitioned or Regular) @@ -322,7 +311,7 @@ In this command block, there is only 1 statement (s1): a partitioned topic is to be created. It also can be dynamically or statically bound. -**NOTE**: The topic name is bounded by the document level parameter "topic_uri". +**NOTE**: The topic name is bound by the document level parameter "topic_uri". ### 1.4.4. Batch Producer Command Block @@ -331,7 +320,7 @@ once by one NB cycle execution. A typical format of this command block is as below: ```yaml -- name: batch-producer-block + - name: batch-producer-block tags: phase: batch-producer statements: @@ -343,6 +332,11 @@ as below: - name: s2 optype: batch-msg-send msg_key: "{mykey}" + msg_property: | + { + "prop1": "{myprop1}", + "prop2": "{myprop2}" + } msg_value: | { "SensorID": "{sensor_id}", @@ -374,6 +368,9 @@ ratios: 1, , 1. for this statement * (Optional) **msg_key**, when provided, specifies the key of the generated message + * (Optional) **msg_property**, when provided, specifies the properties + of the generated message. It must be a JSON string that contains a + series of key-value pairs. * (Mandatory) **msg_payload** specifies the payload of the generated message * (Optional) **ratio**, when provided, specifies the batch size (how @@ -385,6 +382,9 @@ ratios: 1, , 1. * (Optional) **ratio**, when provided, MUST be 1. If not provided, it is default to 1. +**NOTE**: the topic that the producer needs to publish messages to is +specified by the document level parameter ***topic_uri***. + ### 1.4.5. Producer Command Block This is the regular Pulsar producer command block that produces one Pulsar @@ -400,6 +400,11 @@ as below: optype: msg-send # producer_name: {producer_name} msg_key: "{mykey}" + msg_property: | + { + "prop1": "{myprop1}", + "prop2": "{myprop2}" + } msg_value: | { "SensorID": "{sensor_id}", @@ -418,14 +423,20 @@ This command block only has 1 statements (s1): producer name that is associated with the message production. * (Optional) **msg_key**, when provided, specifies the key of the generated message + * (Optional) **msg_property**, when provided, specifies the properties + of the generated message. It must be a JSON string that contains a + series of key-value pairs. * (Mandatory) **msg_payload** specifies the payload of the generated message -### 1.4.6. Consumer Command Block +**NOTE**: the topic that the producer needs to publish messages to is +specified by the document level parameter ***topic_uri***. + +### 1.4.6. (Single-Topic) Consumer Command Block This is the regular Pulsar consumer command block that consumes one Pulsar -message per NB cycle execution. A typical format of this command block is -as below: +message from one single Pulsar topic per NB cycle execution. A typical +format of this command block is as below: ```yaml - name: consumer-block @@ -434,8 +445,6 @@ as below: statements: - name: s1 optype: msg-consume - topic_names: ", " - # topics_pattern: "" subscription_name: subscription_type: consumer_name: @@ -447,19 +456,14 @@ This command block only has 1 statements (s1): and acknowledge it. * (Mandatory) **optype (msg-consume)** is the statement identifier for this statement - * (Optional) **topic_names**, when provided, specifies multiple topic - names from which to consume messages for multi-topic message consumption. - * (Optional) **topics_pattern**, when provided, specifies pulsar - topic regex pattern for multi-topic message consumption * (Mandatory) **subscription_name** specifies subscription name. * (Optional) **subscription_type**, when provided, specifies subscription type. Default to **exclusive** subscription type. * (Optional) **consumer_name**, when provided, specifies the associated consumer name. -**NOTE 1**: when both **topic_names** and **topics_pattern** are provided, **topic_names** takes precedence over **topics_pattern**. - -**NOTE 2**: if both **topic_names** and **topics_pattern** are not provided, consumer topic name is default to the document level parameter **topic_uri**. +**NOTE**: the single topic that the consumer needs to consume messages from +is specified by the document level parameter ***topic_uri***. ### 1.4.7. Reader Command Block @@ -486,6 +490,9 @@ This command block only has 1 statements (s1): * (Optional) **reader_name**, when provided, specifies the associated consumer name. +**NOTE**: the single topic that the reader needs to read messages from +is specified by the document level parameter ***topic_uri***. + **TBD**: at the moment, the NB Pulsar driver Reader API only supports reading from the following positions: * MessageId.earliest @@ -501,7 +508,121 @@ Reader reader = pulsarClient.newReader() .create(); ``` -## 1.5. Schema Support +### 1.4.8. Multi-topic Consumer Command Block + +This is the regular Pulsar consumer command block that consumes one Pulsar +message from multiple Pulsar topics per NB cycle execution. A typical format +of this command block is as below: + +```yaml + - name: consumer-block + tags: + phase: consumer + statements: + - name: s1 + optype: msg-consume + subscription_name: + subscription_type: + consumer_name: +``` + +This command block only has 1 statements (s1): + +* Statement **s1** is used to consume one message from the Pulsar cluster + and acknowledge it. + * (Mandatory) **optype (msg-consume)** is the statement identifier for + this statement + * (Optional) **topic_names**, when provided, specifies multiple topic + names from which to consume messages for multi-topic message consumption. + * (Optional) **topics_pattern**, when provided, specifies pulsar + topic regex pattern for multi-topic message consumption + * (Mandatory) **subscription_name** specifies subscription name. + * (Optional) **subscription_type**, when provided, specifies + subscription type. Default to **exclusive** subscription type. + * (Optional) **consumer_name**, when provided, specifies the + associated consumer name. + +**NOTE 1**: when both **topic_names** and **topics_pattern** are provided, +**topic_names** takes precedence over **topics_pattern**. + +**NOTE 2**: if both **topic_names** and **topics_pattern** are not provided, +consumer topic name is default to the document level parameter **topic_uri**. + +### 1.4.9. End-to-end Message Processing Command Block + +End-to-end message processing command block is used to simplify measuring +the end-to-end message processing (from being published to being consumed) +latency. A typical format of this command block is as below: + +```yaml + - name: e2e-msg-proc-block + tags: + phase: e2e-msg-proc + admin_task: false + statements: + - name: s1 + optype: ec2-msg-proc-send + msg_key: + msg_property: | + { + "prop1": "{myprop1}" + } + msg_value: "{myvalue}" + ratio: 1 + - name: s2 + optype: ec2-msg-proc-consume + subscription_name: "mysub" + subscription_type: + ratio: 1 +``` + +This command block has 2 statements (s1 and s2) with the following +ratios: 1, 1. + +* Statement **s1** is used to publish a message to a topic + * (Mandatory) **optype (ec2-msg-proc-send)** is the statement + identifier for this statement + * (Optional) **msg_key**, when provided, specifies the key of the + generated message + * (Optional) **msg_property**, when provided, specifies the properties + of the generated message. It must be a JSON string that contains a + series of key-value pairs. + * (Mandatory) **msg_payload** specifies the payload of the generated + message + * (Optional) **ratio**, must be 1 when provided. + Otherwise, default to 1. +* Statement **s2** is used to consume the message that just got published +from the same topic + * (Mandatory) **optype (ec2-msg-proc-consume)** is the statement + identifier for this statement + * (Mandatory) **subscription_name** specifies subscription name. + * (Optional) **subscription_type**, when provided, specifies + subscription type. Default to **exclusive** subscription type. + * (Optional) **ratio**, must be 1 when provided. + Otherwise, default to 1. + +**NOTE**: the topic that the producer needs to publish messages to is +specified by the document level parameter ***topic_uri***. + +## 1.5. Message Properties + +In the producer command block, it is optional to specify message properties: +``` + statements: + - name: s1 + msg_property: | + { + "prop1": "{myprop1}", + "prop2": "{myprop2}" + } +``` + +The provided message property string must be a valid JSON string that +contains a list of key value pairs. Otherwise, if it is not a valid +JSON string as expected, the driver will ignore it and treat the +message as having no properties. + +## 1.6. Schema Support Pulsar has built-in schema support. Other than primitive types, Pulsar also supports complex types like **Avro**, etc. At the moment, the NB @@ -535,7 +656,63 @@ schema definition: } ``` -## 1.6. NB Activity Execution Parameters +## 1.7. Measure End-to-end Message Processing Latency + +**e2e-msg-proc-block** measures the end-to-end message latency metrics. It +contains one message producing statement and one message consuming statement. +When the message that is published by the producer is received by the consumer, +the consumer calculates the time difference between when the time is received +and when the time is published. + +The measured end-to-end message processing latency is captured as a histogram +metrics name "e2e_msg_latency". + +This command block uses one single machine to act as both a producer and a +consumer. We do so just for convenience purposes. In reality, we can use +**producer-block** and **consumer-block** command blocks on separate machines +to achieve the same goal, which is probably closer to the actual use case and +probably more accurate measurement (to avoid the situation of always reading +messages from the managed ledger cache). + +One thing to remember though if we're using multiple machines to measure the +end-to-end message processing latency, we need to make sure: +1) The time of the two machines are synced up with each other, e.g. through +NTP protocol. +2) If there is some time lag of starting the consumer, we need to count that +into consideration when interpreting the end-to-end message processing latency. + +## 1.8. Detect Message Out-of-order Error and Message Loss + +In order to detect errors like message out-of-order and message loss through +the NB Pulsar driver, we need to set the following document level parameter +to be true. +``` +params: + # Only applicable to producer and consumer + # - used for message ordering and message loss check + seq_tracking: "true" +``` + +The logic of how this works is based on the fact that NB execution cycle number +is monotonically increasing by 1 for every cycle moving forward. When publishing +a series of messages, we use the current NB cycle number as one message property +which is also monotonically increasing by 1. + +When receiving the messages, if the message sequence number stored in the message +property is not monotonically increasing or if there is a gap larger than 1, then +it means the messages are either delivered out of the order or there are some message +loss. Either way, the consumer NB execution will throw runtime exceptions, with the +following messages respectively: + +```text + "Detected message ordering is not guaranteed. Older messages are received earlier!" +``` + +```text + "Detected message sequence id gap. Some published messages are not received!" +``` + +## 1.9. NB Activity Execution Parameters At the moment, the following NB Pulsar driver **specific** activity parameters are supported: @@ -553,7 +730,7 @@ reference to NB documentation for more parameters * cycles= * --report-csv-to -## 1.7. NB Pulsar Driver Execution Example +## 1.10. NB Pulsar Driver Execution Example **NOTE**: in the following examples, the Pulsar service URL is **pulsar: //localhost:6650**, please change it accordingly for your own Pulsar @@ -578,7 +755,7 @@ environment. ``` -## 1.8. Appendix A. Template Global Setting File (config.properties) +## 1.11. Appendix A. Template Global Setting File (config.properties) ```properties schema.type = schema.definition = From d8bc8ce4fdd339248790e9cdf4ec471a96314566 Mon Sep 17 00:00:00 2001 From: Yabin Meng Date: Fri, 24 Sep 2021 09:46:45 -0500 Subject: [PATCH 42/58] README update --- driver-pulsar/src/main/resources/pulsar.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/driver-pulsar/src/main/resources/pulsar.md b/driver-pulsar/src/main/resources/pulsar.md index 799c8656c..55a994f58 100644 --- a/driver-pulsar/src/main/resources/pulsar.md +++ b/driver-pulsar/src/main/resources/pulsar.md @@ -515,15 +515,18 @@ message from multiple Pulsar topics per NB cycle execution. A typical format of this command block is as below: ```yaml - - name: consumer-block + - name: multi-topic-consumer-block tags: - phase: consumer + phase: multi-topic-consumer + admin_task: false statements: - - name: s1 - optype: msg-consume - subscription_name: - subscription_type: - consumer_name: + - name: s1 + optype: msg-mt-consume + topic_names: + topics_pattern: + subscription_name: "mysub" + subscription_type: + consumer_name: ``` This command block only has 1 statements (s1): From 689199f09cf90ff36d3e0052d44f0a928722c16e Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Fri, 24 Sep 2021 14:27:33 -0500 Subject: [PATCH 43/58] Pulsar driver update release --- RELEASENOTES.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index bcfaa0367..9a62defa7 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,12 +1,6 @@ -- 14859b09 (HEAD -> main) fix high-centered changes after merge -- 98ad9780 Merge branch 'main' of github.com:nosqlbench/nosqlbench -- ce73fca6 improve rate limiter tests -- bc0fb04f standardize formatting of rate limiter diagnostics -- 55d5c450 fix test method for single value -- 99982ce7 (origin/main) Merge pull request #358 from ivansenic/ise-mongodb-crud -- 3b7bf42f added mongoDB CRUD scenarios -- e33e999e Merge pull request #357 from ivansenic/ise-documents-crud -- 3c1405d6 Merge pull request #356 from ivansenic/ise-fix-uszips -- 4c7e0bd8 added Documents API CRUD dataset scenario -- c9613bea fixing the path to the uszips realdata -- 9248c915 Fix markdown typos introduced by auto formatting +- 6db90cdf (HEAD -> main, origin/main) Merge pull request #359 from yabinmeng/main +- 3ed1e7f6 Merge branch 'main' of https://github.com/yabinmeng/nosqlbench +- d8bc8ce4 README update +- aff249fe Merge branch 'nosqlbench:main' into main +- da7fd894 Merge remote-tracking branch 'upstream/main' +- 6903a230 README update From 8a46ff132a01f89539503fb3222d9cb212447016 Mon Sep 17 00:00:00 2001 From: nb-droid Date: Fri, 24 Sep 2021 21:03:22 +0000 Subject: [PATCH 44/58] [maven-release-plugin] prepare release nosqlbench-4.15.55 --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 8180b7a00..75abce8db 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.55-SNAPSHOT + 4.15.55 @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index cb35a9531..70cadb5e3 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.55-SNAPSHOT + 4.15.55 org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 74ccd3f3c..122085889 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index 16245c1ff..2880b7e2e 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 6e175277a..dd7e824e6 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index 7abc0f5a0..02e31c3c3 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index f9bc1120a..a3b464b72 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-http/pom.xml b/driver-http/pom.xml index cb294cbba..3463c24c6 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index cc5c281f1..3859bc09a 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index b9e7ed6e3..d93b90c7b 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-stdout - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index c360ab9b9..85623afba 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index 1f28d4b30..f12ef4aee 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-stdout - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index 1ff5c3c92..c4ed60bda 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index 7748cfd9d..ba9d60618 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-stdout - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index c010a342a..6462d6400 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 1f8458ea5..5392d8d8a 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-stdout - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/driver-web/pom.xml b/driver-web/pom.xml index 774ded2c1..f742c08c5 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index 5a3c19729..f419f028e 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench virtdata-userlibs - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 18d8cf817..12520798a 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench nb-annotations - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench virtdata-userlibs - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 9af5ed48d..376ae4f34 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench engine-docker - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index 97c816359..0e4a8627b 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/engine-core/pom.xml b/engine-core/pom.xml index b809d662f..9ca5bc92f 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench drivers-api - 4.15.55-SNAPSHOT + 4.15.55 @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.55-SNAPSHOT + 4.15.55 compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 4e2d64bb5..35ac24abe 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index 10b6987b3..eb6bf706d 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index e8b45207f..b125d5399 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index 6f272a9d4..5131554ae 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 912db1591..588e395fe 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.55-SNAPSHOT + 4.15.55 pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.55 diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 35fe125e7..facaeeef7 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 9900a71c9..305e32400 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/nb/pom.xml b/nb/pom.xml index 4d6fb491a..cef8c09f3 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench engine-cli - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench engine-docs - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench engine-core - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench engine-extensions - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-web - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-kafka - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-stdout - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-diag - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-tcp - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-http - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-jmx - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-dsegraph-shaded - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-cql-shaded - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-cqld3-shaded - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-cqlverify - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-mongodb - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-pulsar - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-cockroachdb - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench driver-jms - 4.15.55-SNAPSHOT + 4.15.55 @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/pom.xml b/pom.xml index 92282daee..36b50c5be 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.55 diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 5ee4d95fa..44541d8f0 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 nb-api io.nosqlbench virtdata-lang - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index 9b516b45c..b73392170 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 2c1efe7cf..5d7cba5cd 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 2d9642f12..a5fae757e 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench virtdata-lib-basics - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 9ccd03421..0141a2e84 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench virtdata-lib-basics - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index c797618ca..c1fe3ef34 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index bb58b0de2..d86c10e08 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.55-SNAPSHOT + 4.15.55 diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index 9adc75314..c4c635851 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench virtdata-lib-realer - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench virtdata-api - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench virtdata-lib-random - 4.15.55-SNAPSHOT + 4.15.55 io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 virtdata-lib-basics io.nosqlbench - 4.15.55-SNAPSHOT + 4.15.55 virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.55-SNAPSHOT + 4.15.55 From fd7a6176dd43bb8a22a1afdc8cce07f13c9ed46a Mon Sep 17 00:00:00 2001 From: nb-droid Date: Fri, 24 Sep 2021 21:03:24 +0000 Subject: [PATCH 45/58] [maven-release-plugin] prepare for next development iteration --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 75abce8db..37f1b0cef 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.55 + 4.15.56-SNAPSHOT @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index 70cadb5e3..f9f370f82 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.55 + 4.15.56-SNAPSHOT org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 122085889..7d5c4c2b2 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index 2880b7e2e..7743b3324 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index dd7e824e6..5c38b7cf8 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index 02e31c3c3..03126286f 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index a3b464b72..91fe26e6e 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-http/pom.xml b/driver-http/pom.xml index 3463c24c6..d2c4931d0 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 3859bc09a..330e0be11 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index d93b90c7b..08b2605f4 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-stdout - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index 85623afba..4d6dfa872 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index f12ef4aee..ed52c5417 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-stdout - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index c4ed60bda..275657e0a 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index ba9d60618..fab0c216f 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-stdout - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index 6462d6400..25d331d25 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 5392d8d8a..7a8b1bbf6 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-stdout - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/driver-web/pom.xml b/driver-web/pom.xml index f742c08c5..126edda44 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index f419f028e..58886cb1c 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 12520798a..44a1926ef 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench nb-annotations - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 376ae4f34..79a53f4b7 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench engine-docker - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index 0e4a8627b..50efeb402 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/engine-core/pom.xml b/engine-core/pom.xml index 9ca5bc92f..12e36365a 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench drivers-api - 4.15.55 + 4.15.56-SNAPSHOT @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.55 + 4.15.56-SNAPSHOT compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 35ac24abe..66b0deddf 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index eb6bf706d..7ffbb60ef 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index b125d5399..928024c3b 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index 5131554ae..65c4cbefa 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 588e395fe..c0663437c 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.55 + 4.15.56-SNAPSHOT pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - nosqlbench-4.15.55 + HEAD diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index facaeeef7..01e9cad5c 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 305e32400..c69102447 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/nb/pom.xml b/nb/pom.xml index cef8c09f3..398db952e 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench engine-cli - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench engine-docs - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench engine-core - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench engine-extensions - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-web - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-kafka - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-stdout - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-diag - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-tcp - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-http - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-jmx - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-dsegraph-shaded - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-cql-shaded - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-cqld3-shaded - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-cqlverify - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-mongodb - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-pulsar - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-cockroachdb - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench driver-jms - 4.15.55 + 4.15.56-SNAPSHOT @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/pom.xml b/pom.xml index 36b50c5be..c186b3eb0 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - nosqlbench-4.15.55 + HEAD diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 44541d8f0..827c0ab75 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT nb-api io.nosqlbench virtdata-lang - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index b73392170..76481847d 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 5d7cba5cd..c49242577 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index a5fae757e..9237b7c2e 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 0141a2e84..9c6722ebc 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index c1fe3ef34..f6ebd1a4e 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index d86c10e08..0d4c53869 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.55 + 4.15.56-SNAPSHOT diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index c4c635851..107b85d5d 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench virtdata-lib-realer - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench virtdata-api - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench virtdata-lib-random - 4.15.55 + 4.15.56-SNAPSHOT io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT virtdata-lib-basics io.nosqlbench - 4.15.55 + 4.15.56-SNAPSHOT virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.55 + 4.15.56-SNAPSHOT From e9e7e951138ac49e9043d443087281ff028119a6 Mon Sep 17 00:00:00 2001 From: Yabin Meng Date: Tue, 28 Sep 2021 23:04:46 -0500 Subject: [PATCH 46/58] Add support for message duplication check (if message de-duplication is enabled, either at broker-level, namespace-level, or topic-level) --- .../pulsar/ops/PulsarAdminTenantOp.java | 6 +- .../driver/pulsar/ops/PulsarAdminTopicOp.java | 9 +- .../pulsar/ops/PulsarConsumerMapper.java | 5 ++ .../driver/pulsar/ops/PulsarConsumerOp.java | 85 ++++++++++++------- .../pulsar/ops/PulsarProducerMapper.java | 21 +++-- .../driver/pulsar/ops/ReadyPulsarOp.java | 81 +++++++++++++++++- .../pulsar/util/PulsarActivityUtil.java | 18 +++- .../pulsar_client_sanity_seqloss.yaml | 7 +- driver-pulsar/src/main/resources/pulsar.md | 42 ++++++--- 9 files changed, 208 insertions(+), 66 deletions(-) diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java index 5d0bd3508..4f5472a21 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTenantOp.java @@ -4,11 +4,9 @@ import io.nosqlbench.driver.pulsar.PulsarSpace; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.pulsar.client.admin.Namespaces; -import org.apache.pulsar.client.admin.PulsarAdmin; -import org.apache.pulsar.client.admin.PulsarAdminException; -import org.apache.pulsar.client.admin.Tenants; +import org.apache.pulsar.client.admin.*; import org.apache.pulsar.common.policies.data.TenantInfo; + import java.util.Set; import java.util.concurrent.CompletableFuture; diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTopicOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTopicOp.java index 189c7f970..0a00a17f3 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTopicOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarAdminTopicOp.java @@ -1,6 +1,7 @@ package io.nosqlbench.driver.pulsar.ops; import io.nosqlbench.driver.pulsar.PulsarSpace; +import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -33,13 +34,7 @@ public class PulsarAdminTopicOp extends PulsarAdminOp { this.topicUri = topicUri; this.partitionTopic = partitionTopic; this.partitionNum = partitionNum; - - // Get tenant/namespace string - // - topicUri : persistent://// - // - tmpStr : // - // - fullNsName : / - String tmpStr = StringUtils.substringAfter(this.topicUri,"://"); - this.fullNsName = StringUtils.substringBeforeLast(tmpStr, "/"); + this.fullNsName = PulsarActivityUtil.getFullNamespaceName(this.topicUri); } // Check whether the specified topic already exists diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java index 6b610bef4..4177f5cd2 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java @@ -30,6 +30,7 @@ public class PulsarConsumerMapper extends PulsarTransactOpMapper { private final static Logger logger = LogManager.getLogger(PulsarProducerMapper.class); private final LongFunction> consumerFunc; + private final LongFunction topicMsgDedupFunc; private final boolean e2eMsProc; public PulsarConsumerMapper(CommandTemplate cmdTpl, @@ -39,10 +40,12 @@ public class PulsarConsumerMapper extends PulsarTransactOpMapper { LongFunction useTransactionFunc, LongFunction seqTrackingFunc, LongFunction> transactionSupplierFunc, + LongFunction topicMsgDedupFunc, LongFunction> consumerFunc, boolean e2eMsgProc) { super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc, useTransactionFunc, seqTrackingFunc, transactionSupplierFunc); this.consumerFunc = consumerFunc; + this.topicMsgDedupFunc = topicMsgDedupFunc; this.e2eMsProc = e2eMsgProc; } @@ -53,6 +56,7 @@ public class PulsarConsumerMapper extends PulsarTransactOpMapper { boolean useTransaction = useTransactionFunc.apply(value); boolean seqTracking = seqTrackingFunc.apply(value); Supplier transactionSupplier = transactionSupplierFunc.apply(value); + boolean topicMsgDedup = topicMsgDedupFunc.apply(value); return new PulsarConsumerOp( pulsarActivity, @@ -60,6 +64,7 @@ public class PulsarConsumerMapper extends PulsarTransactOpMapper { useTransaction, seqTracking, transactionSupplier, + topicMsgDedup, consumer, clientSpace.getPulsarSchema(), clientSpace.getPulsarClientConf().getConsumerTimeoutSeconds(), diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java index ac994edfc..ca47d9530 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java @@ -6,6 +6,7 @@ import com.codahale.metrics.Timer; import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.util.AvroUtil; import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; +import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.pulsar.client.api.*; @@ -27,6 +28,7 @@ public class PulsarConsumerOp implements PulsarOp { private final boolean seqTracking; private final Supplier transactionSupplier; + private final boolean topicMsgDedup; private final Consumer consumer; private final Schema pulsarSchema; private final int timeoutSeconds; @@ -34,7 +36,7 @@ public class PulsarConsumerOp implements PulsarOp { private final long curCycleNum; private long curMsgSeqId; - private long prevMsgSeqid; + private long prevMsgSeqId; private final Counter bytesCounter; private final Histogram messageSizeHistogram; @@ -49,6 +51,7 @@ public class PulsarConsumerOp implements PulsarOp { boolean useTransaction, boolean seqTracking, Supplier transactionSupplier, + boolean topicMsgDedup, Consumer consumer, Schema schema, int timeoutSeconds, @@ -62,6 +65,7 @@ public class PulsarConsumerOp implements PulsarOp { this.seqTracking = seqTracking; this.transactionSupplier = transactionSupplier; + this.topicMsgDedup = topicMsgDedup; this.consumer = consumer; this.pulsarSchema = schema; this.timeoutSeconds = timeoutSeconds; @@ -69,7 +73,7 @@ public class PulsarConsumerOp implements PulsarOp { this.e2eMsgProc = e2eMsgProc; this.curMsgSeqId = 0; - this.prevMsgSeqid = 0; + this.prevMsgSeqId = (curCycleNum - 1); this.bytesCounter = pulsarActivity.getBytesCounter(); this.messageSizeHistogram = pulsarActivity.getMessageSizeHistogram(); @@ -136,22 +140,32 @@ public class PulsarConsumerOp implements PulsarOp { } // keep track of message ordering and message loss - if (seqTracking) { - String msgSeqIdStr = message.getProperties().get(PulsarActivityUtil.MSG_SEQUENCE_ID); + String msgSeqIdStr = message.getProperties().get(PulsarActivityUtil.MSG_SEQUENCE_ID); + if ( (seqTracking) && !StringUtils.isBlank(msgSeqIdStr) ) { curMsgSeqId = Long.parseLong(msgSeqIdStr); - // normal case: message sequence id is monotonically increasing by 1 - if ((curMsgSeqId - prevMsgSeqid) == 1) { - prevMsgSeqid = curMsgSeqId; - } - else { - // abnormal case: out of ordering - if (curMsgSeqId < prevMsgSeqid) { - throw new RuntimeException("Detected message ordering is not guaranteed. Older messages are received earlier!"); - } - // abnormal case: message loss - else if ( (curMsgSeqId - prevMsgSeqid) > 1 ) { - throw new RuntimeException("Detected message sequence id gap. Some published messages are not received!"); + if ( prevMsgSeqId > -1) { + // normal case: message sequence id is monotonically increasing by 1 + if ((curMsgSeqId - prevMsgSeqId) != 1) { + // abnormal case: out of ordering + if (curMsgSeqId < prevMsgSeqId) { + throw new RuntimeException("" + + "[SyncAPI] Detected message ordering is not guaranteed (curCycleNum=" + curCycleNum + + ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + + "Older messages are received earlier!"); + } + // abnormal case: message loss + else if ((curMsgSeqId - prevMsgSeqId) > 1) { + throw new RuntimeException("" + + "[SyncAPI] Detected message sequence id gap (curCycleNum=" + curCycleNum + + ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + + "Some published messages are not received!"); + } else if (topicMsgDedup && (curMsgSeqId == prevMsgSeqId)) { + throw new RuntimeException("" + + "[SyncAPI] Detected duplicate message when message deduplication is enabled " + + "(curCycleNum=" + curCycleNum + ", curMsgSeqId=" + curMsgSeqId + + ", prevMsgSeqId=" + prevMsgSeqId + ")!"); + } } } } @@ -230,22 +244,33 @@ public class PulsarConsumerOp implements PulsarOp { e2eMsgProcLatencyHistogram.update(e2eMsgLatency); } - // keep track of message ordering and message loss - if (seqTracking) { - String msgSeqIdStr = message.getProperties().get(PulsarActivityUtil.MSG_SEQUENCE_ID); + // keep track of message ordering, message loss, and message duplication + String msgSeqIdStr = message.getProperties().get(PulsarActivityUtil.MSG_SEQUENCE_ID); + if ( (seqTracking) && !StringUtils.isBlank(msgSeqIdStr) ) { curMsgSeqId = Long.parseLong(msgSeqIdStr); - // normal case: message sequence id is monotonically increasing by 1 - if ((curMsgSeqId - prevMsgSeqid) == 1) { - prevMsgSeqid = curMsgSeqId; - } else { - // abnormal case: out of ordering - if (curMsgSeqId < prevMsgSeqid) { - throw new RuntimeException("Detected message ordering is not guaranteed. Older messages are received earlier!"); - } - // abnormal case: message loss - else if ((curMsgSeqId - prevMsgSeqid) > 1) { - throw new RuntimeException("Detected message sequence id gap. Some published messages are not received!"); + if (prevMsgSeqId > -1) { + // normal case: message sequence id is monotonically increasing by 1 + if ((curMsgSeqId - prevMsgSeqId) != 1) { + // abnormal case: out of ordering + if (curMsgSeqId < prevMsgSeqId) { + throw new RuntimeException("" + + "[AsyncAPI] Detected message ordering is not guaranteed (curCycleNum=" + curCycleNum + + ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + + "Older messages are received earlier!"); + } + // abnormal case: message loss + else if ((curMsgSeqId - prevMsgSeqId) > 1) { + throw new RuntimeException("" + + "[AsyncAPI] Detected message sequence id gap (curCycleNum=" + curCycleNum + + ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + + "Some published messages are not received!"); + } else if (topicMsgDedup && (curMsgSeqId == prevMsgSeqId)) { + throw new RuntimeException("" + + "[AsyncAPI] Detected duplicate message when message deduplication is enabled " + + "(curCycleNum=" + curCycleNum + ", curMsgSeqId=" + curMsgSeqId + + ", prevMsgSeqId=" + prevMsgSeqId + ")!"); + } } } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java index c6e3f2cbf..85b998162 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java @@ -1,6 +1,5 @@ package io.nosqlbench.driver.pulsar.ops; -import com.fasterxml.jackson.databind.ObjectMapper; import io.nosqlbench.driver.pulsar.PulsarActivity; import io.nosqlbench.driver.pulsar.PulsarSpace; import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; @@ -12,7 +11,6 @@ import org.apache.logging.log4j.Logger; import org.apache.pulsar.client.api.Producer; import org.apache.pulsar.client.api.transaction.Transaction; -import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.function.LongFunction; @@ -70,14 +68,17 @@ public class PulsarProducerMapper extends PulsarTransactOpMapper { // Simulate error 10% of the time float rndVal = RandomUtils.nextFloat(0, 1.0f); - boolean simulationError = (rndVal > 0) && (rndVal < 0.1f); + boolean simulationError = (rndVal >= 0) && (rndVal < 0.1f); String seqErrSimuType = seqErrSimuTypeFunc.apply(value); boolean simulateMsgOutofOrder = simulationError && !StringUtils.isBlank(seqErrSimuType) && StringUtils.equalsIgnoreCase(seqErrSimuType, PulsarActivityUtil.SEQ_ERROR_SIMU_TYPE.OutOfOrder.label); boolean simulateMsgLoss = simulationError && !StringUtils.isBlank(seqErrSimuType) && - StringUtils.equalsIgnoreCase(seqErrSimuType, PulsarActivityUtil.SEQ_ERROR_SIMU_TYPE.DataLoss.label); + StringUtils.equalsIgnoreCase(seqErrSimuType, PulsarActivityUtil.SEQ_ERROR_SIMU_TYPE.MsgLoss.label); + boolean simulateMsgDup = simulationError && + !StringUtils.isBlank(seqErrSimuType) && + StringUtils.equalsIgnoreCase(seqErrSimuType, PulsarActivityUtil.SEQ_ERROR_SIMU_TYPE.MsgDup.label); String msgKey = keyFunc.apply(value); String msgPayload = payloadFunc.apply(value); @@ -100,14 +101,22 @@ public class PulsarProducerMapper extends PulsarTransactOpMapper { // Set message sequence tracking property if (seqTracking) { - if (!simulateMsgOutofOrder) { + // normal case + if (!simulateMsgOutofOrder && !simulateMsgDup) { msgProperties.put(PulsarActivityUtil.MSG_SEQUENCE_ID, String.valueOf(value)); } - else { + // simulate message out of order + else if ( simulateMsgOutofOrder ) { int rndmOffset = 2; if (value > rndmOffset) msgProperties.put(PulsarActivityUtil.MSG_SEQUENCE_ID, String.valueOf(value-rndmOffset)); } + // simulate message duplication + else { + msgProperties.put(PulsarActivityUtil.MSG_SEQUENCE_ID, String.valueOf(value-1)); + } + // message loss simulation is not done by message property + // we simply skip sending message in the current NB cycle } return new PulsarProducerOp( diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java index 730ff14dc..d83f3e682 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java @@ -9,6 +9,8 @@ import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.pulsar.client.admin.PulsarAdmin; +import org.apache.pulsar.client.admin.PulsarAdminException; import org.apache.pulsar.client.api.Producer; import org.apache.pulsar.client.api.Consumer; import org.apache.pulsar.client.api.Reader; @@ -128,6 +130,16 @@ public class ReadyPulsarOp implements OpDispenser { } logger.info("seq_tracking: {}", seqTrackingFunc.apply(0)); + // Doc-level parameter: msg_dedup_broker + LongFunction brokerMsgDedupFunc = (l) -> false; + if (cmdTpl.containsKey(PulsarActivityUtil.DOC_LEVEL_PARAMS.MSG_DEDUP_BROKER.label)) { + if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.MSG_DEDUP_BROKER.label)) + brokerMsgDedupFunc = (l) -> BooleanUtils.toBoolean(cmdTpl.getStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.MSG_DEDUP_BROKER.label)); + else + throw new RuntimeException("\"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.MSG_DEDUP_BROKER.label + "\" parameter cannot be dynamic!"); + } + logger.info("msg_dedup_broker: {}", seqTrackingFunc.apply(0)); + // TODO: Complete implementation for websocket-producer and managed-ledger // Admin operation: create/delete tenant @@ -148,11 +160,24 @@ public class ReadyPulsarOp implements OpDispenser { } // Regular/non-admin operation: single message consuming from a single topic (consumer) else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_CONSUME.label)) { - return resolveMsgConsume(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc, seqTrackingFunc, false); + return resolveMsgConsume( + clientSpace, + topicUriFunc, + asyncApiFunc, + useTransactionFunc, + seqTrackingFunc, + brokerMsgDedupFunc, + false); } // Regular/non-admin operation: single message consuming from multiple-topics (consumer) else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_MULTI_CONSUME.label)) { - return resolveMultiTopicMsgConsume(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc, seqTrackingFunc); + return resolveMultiTopicMsgConsume( + clientSpace, + topicUriFunc, + asyncApiFunc, + useTransactionFunc, + seqTrackingFunc, + brokerMsgDedupFunc); } // Regular/non-admin operation: single message consuming a single topic (reader) else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.MSG_READ.label)) { @@ -176,7 +201,14 @@ public class ReadyPulsarOp implements OpDispenser { } // Regular/non-admin operation: end-to-end message processing - consuming message else if (StringUtils.equalsIgnoreCase(stmtOpType, PulsarActivityUtil.OP_TYPES.E2E_MSG_PROC_CONSUME.label)) { - return resolveMsgConsume(clientSpace, topicUriFunc, asyncApiFunc, useTransactionFunc, seqTrackingFunc, true); + return resolveMsgConsume( + clientSpace, + topicUriFunc, + asyncApiFunc, + useTransactionFunc, + seqTrackingFunc, + brokerMsgDedupFunc, + true); } // Invalid operation type else { @@ -383,6 +415,7 @@ public class ReadyPulsarOp implements OpDispenser { LongFunction async_api_func, LongFunction useTransactionFunc, LongFunction seqTrackingFunc, + LongFunction brokerMsgDupFunc, boolean e2eMsgProc ) { LongFunction subscription_name_func; @@ -415,6 +448,35 @@ public class ReadyPulsarOp implements OpDispenser { LongFunction> transactionSupplierFunc = (l) -> clientSpace.getTransactionSupplier(); //TODO make it dependant on current cycle? + LongFunction topicMsgDedupFunc = (l) -> { + String topic = topic_uri_func.apply(l); + String namespace = PulsarActivityUtil.getFullNamespaceName(topic); + PulsarAdmin pulsarAdmin = pulsarActivity.getPulsarAdmin(); + + // Check namespace-level deduplication setting + // - default to broker level deduplication setting + boolean nsMsgDedup = brokerMsgDupFunc.apply(l); + try { + nsMsgDedup = pulsarAdmin.namespaces().getDeduplicationStatus(namespace); + } + catch (PulsarAdminException pae) { + // it is fine if we're unable to check namespace level setting; use default + } + + // Check topic-level deduplication setting + // - default to namespace level deduplication setting + boolean topicMsgDedup = nsMsgDedup; + try { + topicMsgDedup = pulsarAdmin.topics().getDeduplicationStatus(topic); + } + catch (PulsarAdminException pae) { + // it is fine if we're unable to check topic level setting; use default + } + + return topicMsgDedup; + }; + + LongFunction> consumerFunc = (l) -> clientSpace.getConsumer( topic_uri_func.apply(l), @@ -431,6 +493,7 @@ public class ReadyPulsarOp implements OpDispenser { useTransactionFunc, seqTrackingFunc, transactionSupplierFunc, + topicMsgDedupFunc, consumerFunc, e2eMsgProc); } @@ -440,7 +503,8 @@ public class ReadyPulsarOp implements OpDispenser { LongFunction topic_uri_func, LongFunction async_api_func, LongFunction useTransactionFunc, - LongFunction seqTrackingFunc + LongFunction seqTrackingFunc, + LongFunction brokerMsgDupFunc ) { // Topic list (multi-topic) LongFunction topic_names_func; @@ -510,6 +574,15 @@ public class ReadyPulsarOp implements OpDispenser { useTransactionFunc, seqTrackingFunc, transactionSupplierFunc, + // For multi-topic subscription message consumption, + // - Only consider broker-level message deduplication setting + // - Ignore namespace- and topic-level message deduplication setting + // + // This is because Pulsar is able to specify a list of topics from + // different namespaces. In theory, we can get topic deduplication + // status from each message, but this will be too much overhead. + // e.g. pulsarAdmin.getPulsarAdmin().topics().getDeduplicationStatus(message.getTopicName()) + brokerMsgDupFunc, mtConsumerFunc, false); } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarActivityUtil.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarActivityUtil.java index 40c468474..56b0e5f64 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarActivityUtil.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/util/PulsarActivityUtil.java @@ -58,7 +58,8 @@ public class PulsarActivityUtil { ASYNC_API("async_api"), USE_TRANSACTION("use_transaction"), ADMIN_DELOP("admin_delop"), - SEQ_TRACKING("seq_tracking"); + SEQ_TRACKING("seq_tracking"), + MSG_DEDUP_BROKER("msg_dedup_broker"); public final String label; @@ -305,7 +306,8 @@ public class PulsarActivityUtil { // Pulsar subscription type public enum SEQ_ERROR_SIMU_TYPE { OutOfOrder("out_of_order"), - DataLoss("data_loss"); + MsgLoss("msg_loss"), + MsgDup("msg_dup"); public final String label; @@ -476,5 +478,17 @@ public class PulsarActivityUtil { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(jsonStr, Map.class); } + + /////// + // Get full namespace name (/) from a Pulsar topic URI + public static String getFullNamespaceName(String topicUri) { + // Get tenant/namespace string + // - topicUri : persistent://// + // - tmpStr : // + // - fullNsName : / + + String tmpStr = StringUtils.substringAfter(topicUri,"://"); + return StringUtils.substringBeforeLast(tmpStr, "/"); + } } diff --git a/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_seqloss.yaml b/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_seqloss.yaml index 7eccdd68e..49a139f05 100644 --- a/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_seqloss.yaml +++ b/driver-pulsar/src/main/resources/activities/pulsar_client_sanity_seqloss.yaml @@ -8,7 +8,9 @@ params: topic_uri: "persistent://public/default/sanity_seqloss2" # Only applicable to producer and consumer # - used for message ordering and message loss check - seq_tracking: "false" + async_api: "true" + seq_tracking: "true" + msg_dedup_broker: "true" blocks: - name: producer-block @@ -19,7 +21,8 @@ blocks: - name: s1 optype: msg-send #seqerr_simu: "out_of_order" - seqerr_simu: "data_loass" + #seqerr_simu: "msg_loss" + #seqerr_simu: "msg_dup" msg_key: msg_property: msg_value: "{myvalue}" diff --git a/driver-pulsar/src/main/resources/pulsar.md b/driver-pulsar/src/main/resources/pulsar.md index 55a994f58..6262e79d4 100644 --- a/driver-pulsar/src/main/resources/pulsar.md +++ b/driver-pulsar/src/main/resources/pulsar.md @@ -127,6 +127,8 @@ At high level, Pulsar driver yaml file has the following structure: * **seq_tracking**: Whether to do message sequence tracking. This is used for message out-of-order and message loss detection (more on this later). + * **msg_dedup_broker**: Whether or not broker level message deduplication + is enabled. * **blocks**: includes a series of command blocks. Each command block defines one major Pulsar operation such as *producer*, *consumer*, etc. Right now, the following command blocks are already supported or will be @@ -154,7 +156,10 @@ bindings: params: topic_uri: "" async_api: "false" + use_transaction: "false" admin_delop: "false" + seq_transaction: "false" + msg_dedup_broker: "false" blocks: - name: @@ -684,7 +689,7 @@ NTP protocol. 2) If there is some time lag of starting the consumer, we need to count that into consideration when interpreting the end-to-end message processing latency. -## 1.8. Detect Message Out-of-order Error and Message Loss +## 1.8. Detect Message Out-of-order, Message Loss, and Message Duplication In order to detect errors like message out-of-order and message loss through the NB Pulsar driver, we need to set the following document level parameter @@ -696,6 +701,24 @@ params: seq_tracking: "true" ``` +For message duplication detection, if broker level message dedup configuration +is enabled ("brokerDeduplicationEnabled=true" in broker.conf), we also need to +enable this document level parameter: +``` +params: + msg_dedup_broker: "true" +``` + +However, since message dedup. can be also enabled or disabled at namespace level +or topic level, the NB Pulsar driver will also check the settings at these layers +through API. Basically, the final message dedup setting for a topic is determined +by the following rules: +* if topic level message dedup is not set, check namespace level setting +* if namespace level message dedup is not set, check broker level setting which + in turn is determined by the document level NB parameter **msg_dedup_broker** +* if message dedup is enabled at multiple levels, the priority sequence follows: + * topic level > namespace level > broker level + The logic of how this works is based on the fact that NB execution cycle number is monotonically increasing by 1 for every cycle moving forward. When publishing a series of messages, we use the current NB cycle number as one message property @@ -703,17 +726,14 @@ which is also monotonically increasing by 1. When receiving the messages, if the message sequence number stored in the message property is not monotonically increasing or if there is a gap larger than 1, then -it means the messages are either delivered out of the order or there are some message -loss. Either way, the consumer NB execution will throw runtime exceptions, with the -following messages respectively: +it must be one of the following errors: +* if the current message sequence ID is less than the previous message sequence ID, then + it is message out-of-order error +* if the current message sequence ID is more than 1 bigger than the previous message sequence + ID, then it is message loss error +* if message dedup is enabled and the current message sequence ID is equal to the previous message sequence ID, then it is message duplication error -```text - "Detected message ordering is not guaranteed. Older messages are received earlier!" -``` - -```text - "Detected message sequence id gap. Some published messages are not received!" -``` +In either case, a runtime error will be thrown out with corresponding error messages. ## 1.9. NB Activity Execution Parameters From f72bdb6b95863c7f157fc3ed41e153fcd0155760 Mon Sep 17 00:00:00 2001 From: Yabin Meng Date: Tue, 28 Sep 2021 23:19:49 -0500 Subject: [PATCH 47/58] Readme TOC update --- driver-pulsar/src/main/resources/pulsar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver-pulsar/src/main/resources/pulsar.md b/driver-pulsar/src/main/resources/pulsar.md index 6262e79d4..876e1fdec 100644 --- a/driver-pulsar/src/main/resources/pulsar.md +++ b/driver-pulsar/src/main/resources/pulsar.md @@ -16,7 +16,7 @@ - [1.5. Message Properties](#15-message-properties) - [1.6. Schema Support](#16-schema-support) - [1.7. Measure End-to-end Message Processing Latency](#17-measure-end-to-end-message-processing-latency) - - [1.8. Detect Message Out-of-order Error and Message Loss](#18-detect-message-out-of-order-error-and-message-loss) + - [1.8. Detect Message Out-of-order, Message Loss, and Message Duplication](#18-detect-message-out-of-order-message-loss-and-message-duplication) - [1.9. NB Activity Execution Parameters](#19-nb-activity-execution-parameters) - [1.10. NB Pulsar Driver Execution Example](#110-nb-pulsar-driver-execution-example) - [1.11. Appendix A. Template Global Setting File (config.properties)](#111-appendix-a-template-global-setting-file-configproperties) From 949790b797d2d24f22c9f02e7c1a7f013718357c Mon Sep 17 00:00:00 2001 From: Yabin Meng Date: Wed, 29 Sep 2021 11:27:24 -0500 Subject: [PATCH 48/58] Add customized Pulsar driver exceptions --- .../exception/PulsarDriverParamException.java | 8 ++++ .../PulsarDriverUnexpectedException.java | 9 ++++ .../PulsarDriverUnsupportedOpException.java | 7 ++++ .../PulsarMsgDuplicateException.java | 10 +++++ .../exception/PulsarMsgLossException.java | 11 +++++ .../PulsarMsgOutOfOrderException.java | 11 +++++ .../driver/pulsar/ops/PulsarConsumerOp.java | 42 +++++++------------ .../driver/pulsar/ops/PulsarProducerOp.java | 17 +++++--- .../driver/pulsar/ops/ReadyPulsarOp.java | 30 ++++++------- 9 files changed, 99 insertions(+), 46 deletions(-) create mode 100644 driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverParamException.java create mode 100644 driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverUnexpectedException.java create mode 100644 driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverUnsupportedOpException.java create mode 100644 driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgDuplicateException.java create mode 100644 driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgLossException.java create mode 100644 driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgOutOfOrderException.java diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverParamException.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverParamException.java new file mode 100644 index 000000000..f50d35d75 --- /dev/null +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverParamException.java @@ -0,0 +1,8 @@ +package io.nosqlbench.driver.pulsar.exception; + +public class PulsarDriverParamException extends RuntimeException { + + public PulsarDriverParamException(String message) { + super(message); + } +} diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverUnexpectedException.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverUnexpectedException.java new file mode 100644 index 000000000..ddc88fc7e --- /dev/null +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverUnexpectedException.java @@ -0,0 +1,9 @@ +package io.nosqlbench.driver.pulsar.exception; + +public class PulsarDriverUnexpectedException extends RuntimeException { + + public PulsarDriverUnexpectedException(String message) { + super(message); + } + public PulsarDriverUnexpectedException(Exception e) { super(e); } +} diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverUnsupportedOpException.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverUnsupportedOpException.java new file mode 100644 index 000000000..ec2a3349b --- /dev/null +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarDriverUnsupportedOpException.java @@ -0,0 +1,7 @@ +package io.nosqlbench.driver.pulsar.exception; + +public class PulsarDriverUnsupportedOpException extends RuntimeException { + + public PulsarDriverUnsupportedOpException() { super("Unsupported Pulsar driver operation type"); } + +} diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgDuplicateException.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgDuplicateException.java new file mode 100644 index 000000000..8847ee6a4 --- /dev/null +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgDuplicateException.java @@ -0,0 +1,10 @@ +package io.nosqlbench.driver.pulsar.exception; + +public class PulsarMsgDuplicateException extends RuntimeException { + + public PulsarMsgDuplicateException(boolean asyncPulsarOp, long nbCycleNum, long curMsgSeqId, long prevMsgSeqId) { + super("" + (asyncPulsarOp ? "[AsyncAPI]" : "[SyncAPI]") + + " Detected duplicate message when message deduplication is enabled (curCycleNum=" + nbCycleNum + + ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + ")."); + } +} diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgLossException.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgLossException.java new file mode 100644 index 000000000..268d0651f --- /dev/null +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgLossException.java @@ -0,0 +1,11 @@ +package io.nosqlbench.driver.pulsar.exception; + +public class PulsarMsgLossException extends RuntimeException { + + public PulsarMsgLossException(boolean asyncPulsarOp, long nbCycleNum, long curMsgSeqId, long prevMsgSeqId) { + super("" + (asyncPulsarOp ? "[AsyncAPI]" : "[SyncAPI]") + + " Detected message sequence id gap (curCycleNum=" + nbCycleNum + + ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + + "Some published messages are not received!"); + } +} diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgOutOfOrderException.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgOutOfOrderException.java new file mode 100644 index 000000000..88812b493 --- /dev/null +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/exception/PulsarMsgOutOfOrderException.java @@ -0,0 +1,11 @@ +package io.nosqlbench.driver.pulsar.exception; + +public class PulsarMsgOutOfOrderException extends RuntimeException { + + public PulsarMsgOutOfOrderException(boolean asyncPulsarOp, long nbCycleNum, long curMsgSeqId, long prevMsgSeqId) { + super("" + (asyncPulsarOp ? "[AsyncAPI]" : "[SyncAPI]" ) + + " Detected message ordering is not guaranteed (curCycleNum=" + nbCycleNum + + ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + + "Older messages are received earlier!"); + } +} diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java index ca47d9530..cdf929b96 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java @@ -4,6 +4,7 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Histogram; import com.codahale.metrics.Timer; import io.nosqlbench.driver.pulsar.PulsarActivity; +import io.nosqlbench.driver.pulsar.exception.*; import io.nosqlbench.driver.pulsar.util.AvroUtil; import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; import org.apache.commons.lang3.StringUtils; @@ -149,22 +150,16 @@ public class PulsarConsumerOp implements PulsarOp { if ((curMsgSeqId - prevMsgSeqId) != 1) { // abnormal case: out of ordering if (curMsgSeqId < prevMsgSeqId) { - throw new RuntimeException("" + - "[SyncAPI] Detected message ordering is not guaranteed (curCycleNum=" + curCycleNum + - ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + - "Older messages are received earlier!"); + throw new PulsarMsgOutOfOrderException( + false, curCycleNum, curMsgSeqId, prevMsgSeqId); } // abnormal case: message loss else if ((curMsgSeqId - prevMsgSeqId) > 1) { - throw new RuntimeException("" + - "[SyncAPI] Detected message sequence id gap (curCycleNum=" + curCycleNum + - ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + - "Some published messages are not received!"); + throw new PulsarMsgLossException( + false, curCycleNum, curMsgSeqId, prevMsgSeqId); } else if (topicMsgDedup && (curMsgSeqId == prevMsgSeqId)) { - throw new RuntimeException("" + - "[SyncAPI] Detected duplicate message when message deduplication is enabled " + - "(curCycleNum=" + curCycleNum + ", curMsgSeqId=" + curMsgSeqId + - ", prevMsgSeqId=" + prevMsgSeqId + ")!"); + throw new PulsarMsgDuplicateException( + false, curCycleNum, curMsgSeqId, prevMsgSeqId); } } } @@ -193,7 +188,8 @@ public class PulsarConsumerOp implements PulsarOp { catch (Exception e) { logger.error( "Sync message receiving failed - timeout value: {} seconds ", timeoutSeconds); - throw new RuntimeException(e); + throw new PulsarDriverUnexpectedException("" + + "Sync message receiving failed - timeout value: " + timeoutSeconds + " seconds "); } } else { @@ -254,22 +250,16 @@ public class PulsarConsumerOp implements PulsarOp { if ((curMsgSeqId - prevMsgSeqId) != 1) { // abnormal case: out of ordering if (curMsgSeqId < prevMsgSeqId) { - throw new RuntimeException("" + - "[AsyncAPI] Detected message ordering is not guaranteed (curCycleNum=" + curCycleNum + - ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + - "Older messages are received earlier!"); + throw new PulsarMsgOutOfOrderException( + true, curCycleNum, curMsgSeqId, prevMsgSeqId); } // abnormal case: message loss else if ((curMsgSeqId - prevMsgSeqId) > 1) { - throw new RuntimeException("" + - "[AsyncAPI] Detected message sequence id gap (curCycleNum=" + curCycleNum + - ", curMsgSeqId=" + curMsgSeqId + ", prevMsgSeqId=" + prevMsgSeqId + "). " + - "Some published messages are not received!"); + throw new PulsarMsgLossException( + true, curCycleNum, curMsgSeqId, prevMsgSeqId); } else if (topicMsgDedup && (curMsgSeqId == prevMsgSeqId)) { - throw new RuntimeException("" + - "[AsyncAPI] Detected duplicate message when message deduplication is enabled " + - "(curCycleNum=" + curCycleNum + ", curMsgSeqId=" + curMsgSeqId + - ", prevMsgSeqId=" + prevMsgSeqId + ")!"); + throw new PulsarMsgDuplicateException( + true, curCycleNum, curMsgSeqId, prevMsgSeqId); } } } @@ -289,7 +279,7 @@ public class PulsarConsumerOp implements PulsarOp { }); } catch (Exception e) { - throw new RuntimeException(e); + throw new PulsarDriverUnexpectedException("Async message receiving failed"); } } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerOp.java index 47a9e3381..51c1336b2 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerOp.java @@ -4,6 +4,8 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Histogram; import com.codahale.metrics.Timer; import io.nosqlbench.driver.pulsar.PulsarActivity; +import io.nosqlbench.driver.pulsar.exception.PulsarDriverParamException; +import io.nosqlbench.driver.pulsar.exception.PulsarDriverUnexpectedException; import io.nosqlbench.driver.pulsar.util.AvroUtil; import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; import org.apache.commons.lang3.StringUtils; @@ -77,8 +79,8 @@ public class PulsarProducerOp implements PulsarOp { return; } - if ((msgPayload == null) || msgPayload.isEmpty()) { - throw new RuntimeException("Message payload (\"msg-value\") can't be empty!"); + if ( StringUtils.isBlank(msgPayload)) { + throw new PulsarDriverParamException("Message payload (\"msg-value\") can't be empty!"); } TypedMessageBuilder typedMessageBuilder; @@ -158,12 +160,15 @@ public class PulsarProducerOp implements PulsarOp { } } catch (PulsarClientException | ExecutionException | InterruptedException pce) { - logger.trace( + String errMsg = "Sync message sending failed: " + "key - " + msgKey + "; " + "properties - " + msgProperties + "; " + - "payload - " + msgPayload); - throw new RuntimeException(pce); + "payload - " + msgPayload; + + logger.trace(errMsg); + + throw new PulsarDriverUnexpectedException(errMsg); } timeTracker.run(); @@ -219,7 +224,7 @@ public class PulsarProducerOp implements PulsarOp { }); } catch (Exception e) { - throw new RuntimeException(e); + throw new PulsarDriverUnexpectedException(e); } } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java index d83f3e682..226f44f49 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java @@ -1,6 +1,8 @@ package io.nosqlbench.driver.pulsar.ops; import io.nosqlbench.driver.pulsar.*; +import io.nosqlbench.driver.pulsar.exception.PulsarDriverParamException; +import io.nosqlbench.driver.pulsar.exception.PulsarDriverUnsupportedOpException; import io.nosqlbench.driver.pulsar.util.PulsarActivityUtil; import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate; import io.nosqlbench.engine.api.activityimpl.OpDispenser; @@ -41,13 +43,13 @@ public class ReadyPulsarOp implements OpDispenser { this.cmdTpl = new CommandTemplate(opTemplate); if (cmdTpl.isDynamic("op_scope")) { - throw new RuntimeException("op_scope must be static"); + throw new PulsarDriverParamException("\"op_scope\" parameter must be static"); } // TODO: At the moment, only supports static "client" if (cmdTpl.containsKey("client")) { if (cmdTpl.isDynamic("client")) { - throw new RuntimeException("\"client\" can't be made dynamic!"); + throw new PulsarDriverParamException("\"client\" parameter can't be made dynamic!"); } else { String client_name = cmdTpl.getStatic("client"); this.clientSpace = pcache.getPulsarSpace(client_name); @@ -67,12 +69,12 @@ public class ReadyPulsarOp implements OpDispenser { private LongFunction resolve() { if (!cmdTpl.containsKey("optype") || !cmdTpl.isStatic("optype")) { - throw new RuntimeException("Statement parameter \"optype\" must be static and have a valid value!"); + throw new PulsarDriverParamException("[resolve()] \"optype\" parameter must be static and have a valid value!"); } String stmtOpType = cmdTpl.getStatic("optype"); if (cmdTpl.containsKey("topic_url")) { - throw new RuntimeException("topic_url is not valid. Perhaps you mean topic_uri ?"); + throw new PulsarDriverParamException("[resolve()] \"topic_url\" parameter is not valid. Perhaps you mean \"topic_uri\"?"); } // Doc-level parameter: topic_uri @@ -93,7 +95,7 @@ public class ReadyPulsarOp implements OpDispenser { boolean value = BooleanUtils.toBoolean(cmdTpl.getStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.ASYNC_API.label)); asyncApiFunc = (l) -> value; } else { - throw new RuntimeException("\"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.ASYNC_API.label + "\" parameter cannot be dynamic!"); + throw new PulsarDriverParamException("[resolve()] \"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.ASYNC_API.label + "\" parameter cannot be dynamic!"); } } logger.info("async_api: {}", asyncApiFunc.apply(0)); @@ -105,7 +107,7 @@ public class ReadyPulsarOp implements OpDispenser { boolean value = BooleanUtils.toBoolean(cmdTpl.getStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.USE_TRANSACTION.label)); useTransactionFunc = (l) -> value; } else { - throw new RuntimeException("\"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.USE_TRANSACTION.label + "\" parameter cannot be dynamic!"); + throw new PulsarDriverParamException("[resolve()] \"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.USE_TRANSACTION.label + "\" parameter cannot be dynamic!"); } } logger.info("use_transaction: {}", useTransactionFunc.apply(0)); @@ -116,7 +118,7 @@ public class ReadyPulsarOp implements OpDispenser { if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.ADMIN_DELOP.label)) adminDelOpFunc = (l) -> BooleanUtils.toBoolean(cmdTpl.getStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.ADMIN_DELOP.label)); else - throw new RuntimeException("\"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.ADMIN_DELOP.label + "\" parameter cannot be dynamic!"); + throw new PulsarDriverParamException("[resolve()] \"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.ADMIN_DELOP.label + "\" parameter cannot be dynamic!"); } logger.info("admin_delop: {}", adminDelOpFunc.apply(0)); @@ -126,7 +128,7 @@ public class ReadyPulsarOp implements OpDispenser { if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.SEQ_TRACKING.label)) seqTrackingFunc = (l) -> BooleanUtils.toBoolean(cmdTpl.getStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.SEQ_TRACKING.label)); else - throw new RuntimeException("\"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.SEQ_TRACKING.label + "\" parameter cannot be dynamic!"); + throw new PulsarDriverParamException("[resolve()] \"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.SEQ_TRACKING.label + "\" parameter cannot be dynamic!"); } logger.info("seq_tracking: {}", seqTrackingFunc.apply(0)); @@ -136,7 +138,7 @@ public class ReadyPulsarOp implements OpDispenser { if (cmdTpl.isStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.MSG_DEDUP_BROKER.label)) brokerMsgDedupFunc = (l) -> BooleanUtils.toBoolean(cmdTpl.getStatic(PulsarActivityUtil.DOC_LEVEL_PARAMS.MSG_DEDUP_BROKER.label)); else - throw new RuntimeException("\"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.MSG_DEDUP_BROKER.label + "\" parameter cannot be dynamic!"); + throw new PulsarDriverParamException("[resolve()] \"" + PulsarActivityUtil.DOC_LEVEL_PARAMS.MSG_DEDUP_BROKER.label + "\" parameter cannot be dynamic!"); } logger.info("msg_dedup_broker: {}", seqTrackingFunc.apply(0)); @@ -212,7 +214,7 @@ public class ReadyPulsarOp implements OpDispenser { } // Invalid operation type else { - throw new RuntimeException("Unsupported Pulsar operation type"); + throw new PulsarDriverUnsupportedOpException(); } } @@ -224,7 +226,7 @@ public class ReadyPulsarOp implements OpDispenser { { if ( cmdTpl.isDynamic("admin_roles") || cmdTpl.isDynamic("allowed_clusters") ) { - throw new RuntimeException("\"admin_roles\" or \"allowed_clusters\" parameter must NOT be dynamic!"); + throw new PulsarDriverParamException("\"admin_roles\" or \"allowed_clusters\" parameter must NOT be dynamic!"); } LongFunction> adminRolesFunc; @@ -357,7 +359,7 @@ public class ReadyPulsarOp implements OpDispenser { if (cmdTpl.isStatic("seqerr_simu")) { seqErrSimuTypeFunc = (l) -> cmdTpl.getStatic("seqerr_simu"); } else { - throw new RuntimeException("\"seqerr_simu\" parameter cannot be dynamic!"); + throw new PulsarDriverParamException("[resolveMsgSend()] \"seqerr_simu\" parameter cannot be dynamic!"); } } @@ -391,7 +393,7 @@ public class ReadyPulsarOp implements OpDispenser { valueFunc = (l) -> null; } } else { - throw new RuntimeException("Producer:: \"msg_value\" field must be specified!"); + throw new PulsarDriverParamException("[resolveMsgSend()] \"msg_value\" field must be specified!"); } return new PulsarProducerMapper( @@ -682,7 +684,7 @@ public class ReadyPulsarOp implements OpDispenser { valueFunc = (l) -> null; } } else { - throw new RuntimeException("Batch Producer:: \"msg_value\" field must be specified!"); + throw new PulsarDriverParamException("[resolveMsgBatchSend()] \"msg_value\" field must be specified!"); } return new PulsarBatchProducerMapper( From d781e1ac22df7b00bab1b148609f7e51c7a1e9da Mon Sep 17 00:00:00 2001 From: Yabin Meng Date: Wed, 29 Sep 2021 11:37:07 -0500 Subject: [PATCH 49/58] README update about customized Pular driver exception --- driver-pulsar/src/main/resources/pulsar.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/driver-pulsar/src/main/resources/pulsar.md b/driver-pulsar/src/main/resources/pulsar.md index 876e1fdec..f8d50602f 100644 --- a/driver-pulsar/src/main/resources/pulsar.md +++ b/driver-pulsar/src/main/resources/pulsar.md @@ -727,11 +727,14 @@ which is also monotonically increasing by 1. When receiving the messages, if the message sequence number stored in the message property is not monotonically increasing or if there is a gap larger than 1, then it must be one of the following errors: -* if the current message sequence ID is less than the previous message sequence ID, then - it is message out-of-order error -* if the current message sequence ID is more than 1 bigger than the previous message sequence - ID, then it is message loss error -* if message dedup is enabled and the current message sequence ID is equal to the previous message sequence ID, then it is message duplication error +* If the current message sequence ID is less than the previous message sequence ID, + then it is message out-of-order error. Exception **PulsarMsgOutOfOrderException** + will be thrown out. +* if the current message sequence ID is more than 1 bigger than the previous message + sequence ID, then it is message loss error. Exception **PulsarMsgLossException** + will be thrown out. +* if message dedup is enabled and the current message sequence ID is equal to the + previous message sequence ID, then it is message duplication error. Exception **PulsarMsgDuplicateException** will be thrown out. In either case, a runtime error will be thrown out with corresponding error messages. From 4b1ebc76f8da03c3243f4cf53e1412a66b0a4a20 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Wed, 29 Sep 2021 16:01:41 -0500 Subject: [PATCH 50/58] pulsar driver update release --- RELEASENOTES.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 9a62defa7..f84e9a0b2 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,6 +1,5 @@ -- 6db90cdf (HEAD -> main, origin/main) Merge pull request #359 from yabinmeng/main -- 3ed1e7f6 Merge branch 'main' of https://github.com/yabinmeng/nosqlbench -- d8bc8ce4 README update -- aff249fe Merge branch 'nosqlbench:main' into main -- da7fd894 Merge remote-tracking branch 'upstream/main' -- 6903a230 README update +- 16a502d4 (HEAD -> main, origin/main) Merge pull request #360 from yabinmeng/main +- d781e1ac README update about customized Pular driver exception +- 949790b7 Add customized Pulsar driver exceptions +- f72bdb6b Readme TOC update +- e9e7e951 Add support for message duplication check (if message de-duplication is enabled, either at broker-level, namespace-level, or topic-level) From dfefdd91f047f44376714c2484f25beff324a877 Mon Sep 17 00:00:00 2001 From: nb-droid Date: Wed, 29 Sep 2021 21:13:41 +0000 Subject: [PATCH 51/58] [maven-release-plugin] prepare release nosqlbench-4.15.56 --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 37f1b0cef..1540095f2 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.56-SNAPSHOT + 4.15.56 @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index f9f370f82..0e0994926 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.56-SNAPSHOT + 4.15.56 org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 7d5c4c2b2..57bd8a8af 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index 7743b3324..ad155b0f8 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 5c38b7cf8..8c2792a2a 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index 03126286f..6adf653f2 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index 91fe26e6e..7bceb9fb1 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-http/pom.xml b/driver-http/pom.xml index d2c4931d0..a20470546 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 330e0be11..5ffab2055 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index 08b2605f4..1926a5a9f 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-stdout - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index 4d6dfa872..d51170e66 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index ed52c5417..1fc6ef2f6 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-stdout - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index 275657e0a..bdfa20a02 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index fab0c216f..6d78b031d 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-stdout - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index 25d331d25..14e686673 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 7a8b1bbf6..7f42963f5 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-stdout - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/driver-web/pom.xml b/driver-web/pom.xml index 126edda44..0c03ffb42 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index 58886cb1c..4139c2fea 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench virtdata-userlibs - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 44a1926ef..c347cdf8d 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench nb-annotations - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench virtdata-userlibs - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 79a53f4b7..8da628dd4 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench engine-docker - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index 50efeb402..875ecadec 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/engine-core/pom.xml b/engine-core/pom.xml index 12e36365a..122eaf5dd 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench drivers-api - 4.15.56-SNAPSHOT + 4.15.56 @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.56-SNAPSHOT + 4.15.56 compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 66b0deddf..d2d693332 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index 7ffbb60ef..15b344cd9 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index 928024c3b..58e3d79fe 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index 65c4cbefa..79c17fce5 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index c0663437c..6200e3423 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.56-SNAPSHOT + 4.15.56 pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.56 diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 01e9cad5c..486d04b21 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index c69102447..349540ea3 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/nb/pom.xml b/nb/pom.xml index 398db952e..2ae7cf69b 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench engine-cli - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench engine-docs - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench engine-core - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench engine-extensions - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-web - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-kafka - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-stdout - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-diag - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-tcp - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-http - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-jmx - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-dsegraph-shaded - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-cql-shaded - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-cqld3-shaded - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-cqlverify - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-mongodb - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-pulsar - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-cockroachdb - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench driver-jms - 4.15.56-SNAPSHOT + 4.15.56 @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/pom.xml b/pom.xml index c186b3eb0..c8868627a 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.56 diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 827c0ab75..1bb56decc 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 nb-api io.nosqlbench virtdata-lang - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index 76481847d..4471700d9 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index c49242577..17e39afde 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 9237b7c2e..8931da2f1 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench virtdata-lib-basics - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 9c6722ebc..0fa3c2c5a 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench virtdata-lib-basics - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index f6ebd1a4e..10e9a65cd 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index 0d4c53869..741b28c71 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.56-SNAPSHOT + 4.15.56 diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index 107b85d5d..6fb5e0555 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench virtdata-lib-realer - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench virtdata-api - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench virtdata-lib-random - 4.15.56-SNAPSHOT + 4.15.56 io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 virtdata-lib-basics io.nosqlbench - 4.15.56-SNAPSHOT + 4.15.56 virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.56-SNAPSHOT + 4.15.56 From 35779298a452699160f7075ae6cf8827349275d0 Mon Sep 17 00:00:00 2001 From: nb-droid Date: Wed, 29 Sep 2021 21:13:43 +0000 Subject: [PATCH 52/58] [maven-release-plugin] prepare for next development iteration --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 1540095f2..578502c69 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.56 + 4.15.57-SNAPSHOT @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index 0e0994926..3154feba2 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.56 + 4.15.57-SNAPSHOT org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 57bd8a8af..8d62b0813 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index ad155b0f8..c4c985da4 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 8c2792a2a..3c867c190 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index 6adf653f2..12c81a4c1 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index 7bceb9fb1..4ba9a98f2 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-http/pom.xml b/driver-http/pom.xml index a20470546..f7e691d23 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 5ffab2055..5efc9e728 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index 1926a5a9f..7d48d3e1a 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-stdout - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index d51170e66..72f245079 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index 1fc6ef2f6..9fd98046c 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-stdout - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index bdfa20a02..d9bb1db2c 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index 6d78b031d..b78f3e0a7 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-stdout - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index 14e686673..666a7d95f 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 7f42963f5..04b0fcc8a 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-stdout - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/driver-web/pom.xml b/driver-web/pom.xml index 0c03ffb42..156d2546a 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index 4139c2fea..42edf5200 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/engine-api/pom.xml b/engine-api/pom.xml index c347cdf8d..8d2a80108 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench nb-annotations - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 8da628dd4..0fb03fa98 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench engine-docker - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index 875ecadec..9ab4fa42c 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/engine-core/pom.xml b/engine-core/pom.xml index 122eaf5dd..e9eb20433 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench drivers-api - 4.15.56 + 4.15.57-SNAPSHOT @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.56 + 4.15.57-SNAPSHOT compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index d2d693332..888fb1fdb 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index 15b344cd9..fbd270172 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index 58e3d79fe..b54b9b866 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index 79c17fce5..7659e6d7d 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 6200e3423..1095c18cf 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.56 + 4.15.57-SNAPSHOT pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - nosqlbench-4.15.56 + HEAD diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 486d04b21..dca0a2dd4 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 349540ea3..d89c13586 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/nb/pom.xml b/nb/pom.xml index 2ae7cf69b..27abbdaf6 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench engine-cli - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench engine-docs - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench engine-core - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench engine-extensions - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-web - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-kafka - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-stdout - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-diag - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-tcp - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-http - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-jmx - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-dsegraph-shaded - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-cql-shaded - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-cqld3-shaded - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-cqlverify - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-mongodb - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-pulsar - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-cockroachdb - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench driver-jms - 4.15.56 + 4.15.57-SNAPSHOT @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/pom.xml b/pom.xml index c8868627a..9298c33f3 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - nosqlbench-4.15.56 + HEAD diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 1bb56decc..4881fd073 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT nb-api io.nosqlbench virtdata-lang - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index 4471700d9..f0bb7d295 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 17e39afde..dc1822ed5 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 8931da2f1..49c02e168 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 0fa3c2c5a..0fe83ac60 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index 10e9a65cd..5b1c2d18c 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index 741b28c71..b32a2a54f 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.56 + 4.15.57-SNAPSHOT diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index 6fb5e0555..8cea7fca5 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench virtdata-lib-realer - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench virtdata-api - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench virtdata-lib-random - 4.15.56 + 4.15.57-SNAPSHOT io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT virtdata-lib-basics io.nosqlbench - 4.15.56 + 4.15.57-SNAPSHOT virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.56 + 4.15.57-SNAPSHOT From e8b32584d689a6aa666a7fcec8d09e16f6b7d656 Mon Sep 17 00:00:00 2001 From: Ivan Senic Date: Thu, 30 Sep 2021 13:14:20 +0200 Subject: [PATCH 53/58] add writeConcern to the mongodb crud workflows --- .../src/main/resources/activities/mongodb-crud-basic.yaml | 2 ++ .../src/main/resources/activities/mongodb-crud-dataset.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.yaml b/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.yaml index de7196042..c3de4b6d7 100644 --- a/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.yaml +++ b/driver-mongodb/src/main/resources/activities/mongodb-crud-basic.yaml @@ -82,6 +82,7 @@ blocks: - write-document: | { insert: "<>", + writeConcern: { w: "majority" }, documents: [ { "_id": "{seq_key}", @@ -133,6 +134,7 @@ blocks: - update-document: | { update: "<>", + writeConcern: { w: "majority" }, updates: [ { q: { _id: "{random_key}" }, diff --git a/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.yaml b/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.yaml index 5bef53850..1aa3d9319 100644 --- a/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.yaml +++ b/driver-mongodb/src/main/resources/activities/mongodb-crud-dataset.yaml @@ -57,6 +57,7 @@ blocks: - write-document: | { insert: "<>", + writeConcern: { w: "majority" }, documents: [ { "_id": "{seq_key}", {document_json_without_id} ] } tags: @@ -85,6 +86,7 @@ blocks: - update-document: | { update: "<>", + writeConcern: { w: "majority" }, updates: [ { q: { _id: "{random_key}" }, From 793af965af8eb8ebee28bb952bffc6c48691c679 Mon Sep 17 00:00:00 2001 From: Yabin Meng Date: Sat, 2 Oct 2021 16:23:12 -0500 Subject: [PATCH 54/58] Ignore abnormal message processing error for Shared and Key_Shared subscription type. --- .../nosqlbench/driver/pulsar/PulsarSpace.java | 5 -- .../pulsar/ops/PulsarConsumerMapper.java | 5 ++ .../driver/pulsar/ops/PulsarConsumerOp.java | 55 ++++++++++++++----- .../pulsar/ops/PulsarProducerMapper.java | 4 +- .../driver/pulsar/ops/ReadyPulsarOp.java | 2 + 5 files changed, 49 insertions(+), 22 deletions(-) diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpace.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpace.java index ef4a9e4fc..c923be8a3 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpace.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/PulsarSpace.java @@ -401,11 +401,6 @@ public class PulsarSpace { SubscriptionType subscriptionType = getEffectiveSubscriptionType(cycleSubscriptionType); String consumerName = getEffectiveConsumerName(cycleConsumerName); - if ( subscriptionType.equals(SubscriptionType.Exclusive) && (activityDef.getThreads() > 1) ) { - throw new RuntimeException("Consumer:: trying to create multiple consumers of " + - "\"Exclusive\" subscription type under the same subscription name to the same topic!"); - } - if (StringUtils.isAnyBlank(cycleTopicName, subscriptionName)) { throw new RuntimeException("Consumer:: must specify a topic name and a subscription name"); } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java index 4177f5cd2..cae3afd42 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerMapper.java @@ -31,6 +31,7 @@ public class PulsarConsumerMapper extends PulsarTransactOpMapper { private final LongFunction> consumerFunc; private final LongFunction topicMsgDedupFunc; + private final LongFunction subscriptionTypeFunc; private final boolean e2eMsProc; public PulsarConsumerMapper(CommandTemplate cmdTpl, @@ -42,10 +43,12 @@ public class PulsarConsumerMapper extends PulsarTransactOpMapper { LongFunction> transactionSupplierFunc, LongFunction topicMsgDedupFunc, LongFunction> consumerFunc, + LongFunction subscriptionTypeFunc, boolean e2eMsgProc) { super(cmdTpl, clientSpace, pulsarActivity, asyncApiFunc, useTransactionFunc, seqTrackingFunc, transactionSupplierFunc); this.consumerFunc = consumerFunc; this.topicMsgDedupFunc = topicMsgDedupFunc; + this.subscriptionTypeFunc = subscriptionTypeFunc; this.e2eMsProc = e2eMsgProc; } @@ -57,6 +60,7 @@ public class PulsarConsumerMapper extends PulsarTransactOpMapper { boolean seqTracking = seqTrackingFunc.apply(value); Supplier transactionSupplier = transactionSupplierFunc.apply(value); boolean topicMsgDedup = topicMsgDedupFunc.apply(value); + String subscriptionType = subscriptionTypeFunc.apply(value); return new PulsarConsumerOp( pulsarActivity, @@ -66,6 +70,7 @@ public class PulsarConsumerMapper extends PulsarTransactOpMapper { transactionSupplier, topicMsgDedup, consumer, + subscriptionType, clientSpace.getPulsarSchema(), clientSpace.getPulsarClientConf().getConsumerTimeoutSeconds(), value, diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java index cdf929b96..24f61acac 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarConsumerOp.java @@ -31,6 +31,7 @@ public class PulsarConsumerOp implements PulsarOp { private final boolean topicMsgDedup; private final Consumer consumer; + private final String subscriptionType; private final Schema pulsarSchema; private final int timeoutSeconds; private final boolean e2eMsgProc; @@ -54,6 +55,7 @@ public class PulsarConsumerOp implements PulsarOp { Supplier transactionSupplier, boolean topicMsgDedup, Consumer consumer, + String subscriptionType, Schema schema, int timeoutSeconds, long curCycleNum, @@ -68,6 +70,7 @@ public class PulsarConsumerOp implements PulsarOp { this.topicMsgDedup = topicMsgDedup; this.consumer = consumer; + this.subscriptionType = subscriptionType; this.pulsarSchema = schema; this.timeoutSeconds = timeoutSeconds; this.curCycleNum = curCycleNum; @@ -149,17 +152,28 @@ public class PulsarConsumerOp implements PulsarOp { // normal case: message sequence id is monotonically increasing by 1 if ((curMsgSeqId - prevMsgSeqId) != 1) { // abnormal case: out of ordering + // - for any subscription type, this check should always hold if (curMsgSeqId < prevMsgSeqId) { throw new PulsarMsgOutOfOrderException( false, curCycleNum, curMsgSeqId, prevMsgSeqId); } - // abnormal case: message loss - else if ((curMsgSeqId - prevMsgSeqId) > 1) { - throw new PulsarMsgLossException( - false, curCycleNum, curMsgSeqId, prevMsgSeqId); - } else if (topicMsgDedup && (curMsgSeqId == prevMsgSeqId)) { - throw new PulsarMsgDuplicateException( - false, curCycleNum, curMsgSeqId, prevMsgSeqId); + // - this sequence based message loss and message duplicate check can't be used for + // "Shared" subscription (ignore this check) + // - TODO: for Key_Shared subscription type, this logic needs to be improved on + // per-key basis + else { + if ( !StringUtils.equalsAnyIgnoreCase(subscriptionType, + PulsarActivityUtil.SUBSCRIPTION_TYPE.Shared.label, + PulsarActivityUtil.SUBSCRIPTION_TYPE.Key_Shared.label)) { + // abnormal case: message loss + if ((curMsgSeqId - prevMsgSeqId) > 1) { + throw new PulsarMsgLossException( + false, curCycleNum, curMsgSeqId, prevMsgSeqId); + } else if (topicMsgDedup && (curMsgSeqId == prevMsgSeqId)) { + throw new PulsarMsgDuplicateException( + false, curCycleNum, curMsgSeqId, prevMsgSeqId); + } + } } } } @@ -249,17 +263,28 @@ public class PulsarConsumerOp implements PulsarOp { // normal case: message sequence id is monotonically increasing by 1 if ((curMsgSeqId - prevMsgSeqId) != 1) { // abnormal case: out of ordering + // - for any subscription type, this check should always hold if (curMsgSeqId < prevMsgSeqId) { throw new PulsarMsgOutOfOrderException( - true, curCycleNum, curMsgSeqId, prevMsgSeqId); + false, curCycleNum, curMsgSeqId, prevMsgSeqId); } - // abnormal case: message loss - else if ((curMsgSeqId - prevMsgSeqId) > 1) { - throw new PulsarMsgLossException( - true, curCycleNum, curMsgSeqId, prevMsgSeqId); - } else if (topicMsgDedup && (curMsgSeqId == prevMsgSeqId)) { - throw new PulsarMsgDuplicateException( - true, curCycleNum, curMsgSeqId, prevMsgSeqId); + // - this sequence based message loss and message duplicate check can't be used for + // "Shared" subscription (ignore this check) + // - TODO: for Key_Shared subscription type, this logic needs to be improved on + // per-key basis + else { + if ( !StringUtils.equalsAnyIgnoreCase(subscriptionType, + PulsarActivityUtil.SUBSCRIPTION_TYPE.Shared.label, + PulsarActivityUtil.SUBSCRIPTION_TYPE.Key_Shared.label)) { + // abnormal case: message loss + if ((curMsgSeqId - prevMsgSeqId) > 1) { + throw new PulsarMsgLossException( + false, curCycleNum, curMsgSeqId, prevMsgSeqId); + } else if (topicMsgDedup && (curMsgSeqId == prevMsgSeqId)) { + throw new PulsarMsgDuplicateException( + false, curCycleNum, curMsgSeqId, prevMsgSeqId); + } + } } } } diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java index 85b998162..9bdf63881 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/PulsarProducerMapper.java @@ -108,8 +108,8 @@ public class PulsarProducerMapper extends PulsarTransactOpMapper { // simulate message out of order else if ( simulateMsgOutofOrder ) { int rndmOffset = 2; - if (value > rndmOffset) - msgProperties.put(PulsarActivityUtil.MSG_SEQUENCE_ID, String.valueOf(value-rndmOffset)); + msgProperties.put(PulsarActivityUtil.MSG_SEQUENCE_ID, + String.valueOf((value > rndmOffset) ? (value-rndmOffset) : value)); } // simulate message duplication else { diff --git a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java index 226f44f49..de26f15cc 100644 --- a/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java +++ b/driver-pulsar/src/main/java/io/nosqlbench/driver/pulsar/ops/ReadyPulsarOp.java @@ -497,6 +497,7 @@ public class ReadyPulsarOp implements OpDispenser { transactionSupplierFunc, topicMsgDedupFunc, consumerFunc, + subscription_type_func, e2eMsgProc); } @@ -586,6 +587,7 @@ public class ReadyPulsarOp implements OpDispenser { // e.g. pulsarAdmin.getPulsarAdmin().topics().getDeduplicationStatus(message.getTopicName()) brokerMsgDupFunc, mtConsumerFunc, + subscription_type_func, false); } From 68da787628e5b4218285450e0cd2b99b0ff32add Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Tue, 5 Oct 2021 10:01:37 -0500 Subject: [PATCH 55/58] pulsar driver release --- RELEASENOTES.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index f84e9a0b2..cd6708aef 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,5 @@ -- 16a502d4 (HEAD -> main, origin/main) Merge pull request #360 from yabinmeng/main -- d781e1ac README update about customized Pular driver exception -- 949790b7 Add customized Pulsar driver exceptions -- f72bdb6b Readme TOC update -- e9e7e951 Add support for message duplication check (if message de-duplication is enabled, either at broker-level, namespace-level, or topic-level) +- 3b674983 (HEAD -> main, origin/main) Merge pull request #362 from yabinmeng/main +- bf98d644 Merge branch 'nosqlbench:main' into main +- 793af965 Ignore abnormal message processing error for Shared and Key_Shared subscription type. +- f32caf1e Merge pull request #361 from ivansenic/ise-mongo-update +- e8b32584 add writeConcern to the mongodb crud workflows From 21274ee3df81809db76463c1acf0ba79175388a7 Mon Sep 17 00:00:00 2001 From: Jonathan Shook Date: Tue, 5 Oct 2021 10:17:48 -0500 Subject: [PATCH 56/58] pulsar driver release take 2 --- RELEASENOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index cd6708aef..871157073 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -3,3 +3,4 @@ - 793af965 Ignore abnormal message processing error for Shared and Key_Shared subscription type. - f32caf1e Merge pull request #361 from ivansenic/ise-mongo-update - e8b32584 add writeConcern to the mongodb crud workflows +- retrigger release From 4cd39c2d9b595319774436d7c7bf173274e5b8c7 Mon Sep 17 00:00:00 2001 From: nb-droid Date: Tue, 5 Oct 2021 15:47:12 +0000 Subject: [PATCH 57/58] [maven-release-plugin] prepare release nosqlbench-4.15.57 --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 578502c69..50a9d23db 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.57-SNAPSHOT + 4.15.57 @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index 3154feba2..20c164f5c 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.57-SNAPSHOT + 4.15.57 org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index 8d62b0813..eb6e59334 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index c4c985da4..0b1dd3a68 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 3c867c190..9d589e2ef 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index 12c81a4c1..d89b54a38 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index 4ba9a98f2..e926568f9 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-http/pom.xml b/driver-http/pom.xml index f7e691d23..c2a74c76c 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 5efc9e728..610178ea5 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index 7d48d3e1a..d84af6747 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-stdout - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index 72f245079..ba279efc4 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index 9fd98046c..7a91a74ce 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-stdout - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index d9bb1db2c..65a5dee3d 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index b78f3e0a7..18f285c55 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-stdout - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index 666a7d95f..e7b24d484 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 04b0fcc8a..4753ee3e9 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-stdout - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/driver-web/pom.xml b/driver-web/pom.xml index 156d2546a..d845226fe 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index 42edf5200..eb5fdf81b 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench virtdata-userlibs - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 8d2a80108..72514dfc1 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench nb-annotations - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench virtdata-userlibs - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index 0fb03fa98..f7ec7d78b 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench engine-docker - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index 9ab4fa42c..a7936a4ff 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/engine-core/pom.xml b/engine-core/pom.xml index e9eb20433..1a2b1e700 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench drivers-api - 4.15.57-SNAPSHOT + 4.15.57 @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.57-SNAPSHOT + 4.15.57 compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 888fb1fdb..44dc3e009 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index fbd270172..6068af8ea 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index b54b9b866..d17a099a6 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index 7659e6d7d..ce9542d66 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 1095c18cf..a9551ead7 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.57-SNAPSHOT + 4.15.57 pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.57 diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index dca0a2dd4..7a3818bda 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index d89c13586..6dbfdbcae 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/nb/pom.xml b/nb/pom.xml index 27abbdaf6..d5e7015e5 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench engine-cli - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench engine-docs - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench engine-core - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench engine-extensions - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-web - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-kafka - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-stdout - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-diag - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-tcp - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-http - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-jmx - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-dsegraph-shaded - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-cql-shaded - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-cqld3-shaded - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-cqlverify - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-mongodb - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-pulsar - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-cockroachdb - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench driver-jms - 4.15.57-SNAPSHOT + 4.15.57 @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/pom.xml b/pom.xml index 9298c33f3..45c5af786 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - HEAD + nosqlbench-4.15.57 diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index 4881fd073..a1e28d147 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 nb-api io.nosqlbench virtdata-lang - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index f0bb7d295..08184f25f 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index dc1822ed5..290d400ba 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index 49c02e168..efc808ffe 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench virtdata-lib-basics - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index 0fe83ac60..e77b9a72f 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench virtdata-lib-basics - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index 5b1c2d18c..33662d362 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index b32a2a54f..5cb1e2f2a 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.57-SNAPSHOT + 4.15.57 diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index 8cea7fca5..a1849d5c2 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench virtdata-lib-realer - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench virtdata-api - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench virtdata-lib-random - 4.15.57-SNAPSHOT + 4.15.57 io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 virtdata-lib-basics io.nosqlbench - 4.15.57-SNAPSHOT + 4.15.57 virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.57-SNAPSHOT + 4.15.57 From 5550c4550aa9f3819bc5ac623ced98bb592ac1bc Mon Sep 17 00:00:00 2001 From: nb-droid Date: Tue, 5 Oct 2021 15:47:15 +0000 Subject: [PATCH 58/58] [maven-release-plugin] prepare for next development iteration --- docsys/pom.xml | 6 ++--- driver-cockroachdb/pom.xml | 4 ++-- driver-cql-shaded/pom.xml | 6 ++--- driver-cqld3-shaded/pom.xml | 6 ++--- driver-cqlverify/pom.xml | 6 ++--- driver-diag/pom.xml | 6 ++--- driver-dsegraph-shaded/pom.xml | 6 ++--- driver-http/pom.xml | 6 ++--- driver-jdbc/pom.xml | 4 ++-- driver-jms/pom.xml | 6 ++--- driver-jmx/pom.xml | 6 ++--- driver-kafka/pom.xml | 6 ++--- driver-mongodb/pom.xml | 6 ++--- driver-pulsar/pom.xml | 6 ++--- driver-stdout/pom.xml | 6 ++--- driver-tcp/pom.xml | 8 +++---- driver-web/pom.xml | 6 ++--- drivers-api/pom.xml | 6 ++--- engine-api/pom.xml | 10 ++++---- engine-cli/pom.xml | 6 ++--- engine-clients/pom.xml | 4 ++-- engine-core/pom.xml | 8 +++---- engine-docker/pom.xml | 4 ++-- engine-docs/pom.xml | 4 ++-- engine-extensions/pom.xml | 4 ++-- engine-rest/pom.xml | 4 ++-- mvn-defaults/pom.xml | 4 ++-- nb-annotations/pom.xml | 2 +- nb-api/pom.xml | 4 ++-- nb/pom.xml | 44 +++++++++++++++++----------------- pom.xml | 4 ++-- virtdata-api/pom.xml | 6 ++--- virtdata-lang/pom.xml | 2 +- virtdata-lib-basics/pom.xml | 4 ++-- virtdata-lib-curves4/pom.xml | 6 ++--- virtdata-lib-random/pom.xml | 6 ++--- virtdata-lib-realer/pom.xml | 4 ++-- virtdata-realdata/pom.xml | 4 ++-- virtdata-userlibs/pom.xml | 16 ++++++------- 39 files changed, 128 insertions(+), 128 deletions(-) diff --git a/docsys/pom.xml b/docsys/pom.xml index 50a9d23db..00542e0ef 100644 --- a/docsys/pom.xml +++ b/docsys/pom.xml @@ -12,7 +12,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench nb-api - 4.15.57 + 4.15.58-SNAPSHOT @@ -117,7 +117,7 @@ io.nosqlbench virtdata-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-cockroachdb/pom.xml b/driver-cockroachdb/pom.xml index 20c164f5c..1a7f2dac6 100644 --- a/driver-cockroachdb/pom.xml +++ b/driver-cockroachdb/pom.xml @@ -5,7 +5,7 @@ io.nosqlbench mvn-defaults - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench driver-jdbc - 4.15.57 + 4.15.58-SNAPSHOT org.postgresql diff --git a/driver-cql-shaded/pom.xml b/driver-cql-shaded/pom.xml index eb6e59334..2e94a577c 100644 --- a/driver-cql-shaded/pom.xml +++ b/driver-cql-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-cqld3-shaded/pom.xml b/driver-cqld3-shaded/pom.xml index 0b1dd3a68..99d6754ee 100644 --- a/driver-cqld3-shaded/pom.xml +++ b/driver-cqld3-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-cqlverify/pom.xml b/driver-cqlverify/pom.xml index 9d589e2ef..57b3702c6 100644 --- a/driver-cqlverify/pom.xml +++ b/driver-cqlverify/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -24,13 +24,13 @@ io.nosqlbench driver-cql-shaded - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-diag/pom.xml b/driver-diag/pom.xml index d89b54a38..404a150dc 100644 --- a/driver-diag/pom.xml +++ b/driver-diag/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-dsegraph-shaded/pom.xml b/driver-dsegraph-shaded/pom.xml index e926568f9..0c0630bfe 100644 --- a/driver-dsegraph-shaded/pom.xml +++ b/driver-dsegraph-shaded/pom.xml @@ -4,7 +4,7 @@ io.nosqlbench mvn-defaults - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-http/pom.xml b/driver-http/pom.xml index c2a74c76c..3a3029a09 100644 --- a/driver-http/pom.xml +++ b/driver-http/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-jdbc/pom.xml b/driver-jdbc/pom.xml index 610178ea5..9de39c4ad 100644 --- a/driver-jdbc/pom.xml +++ b/driver-jdbc/pom.xml @@ -3,7 +3,7 @@ nosqlbench io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT 4.0.0 @@ -18,7 +18,7 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT compile diff --git a/driver-jms/pom.xml b/driver-jms/pom.xml index d84af6747..d3e7406c1 100644 --- a/driver-jms/pom.xml +++ b/driver-jms/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-stdout - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-jmx/pom.xml b/driver-jmx/pom.xml index ba279efc4..25c491e3b 100644 --- a/driver-jmx/pom.xml +++ b/driver-jmx/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-kafka/pom.xml b/driver-kafka/pom.xml index 7a91a74ce..e5eb23fee 100644 --- a/driver-kafka/pom.xml +++ b/driver-kafka/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -44,13 +44,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-stdout - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-mongodb/pom.xml b/driver-mongodb/pom.xml index 65a5dee3d..312a71876 100644 --- a/driver-mongodb/pom.xml +++ b/driver-mongodb/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -21,13 +21,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-pulsar/pom.xml b/driver-pulsar/pom.xml index 18f285c55..07b9f1519 100644 --- a/driver-pulsar/pom.xml +++ b/driver-pulsar/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -40,13 +40,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-stdout - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-stdout/pom.xml b/driver-stdout/pom.xml index e7b24d484..d6034a1f6 100644 --- a/driver-stdout/pom.xml +++ b/driver-stdout/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-tcp/pom.xml b/driver-tcp/pom.xml index 4753ee3e9..c69534b67 100644 --- a/driver-tcp/pom.xml +++ b/driver-tcp/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -24,19 +24,19 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-stdout - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/driver-web/pom.xml b/driver-web/pom.xml index d845226fe..659b7fdb3 100644 --- a/driver-web/pom.xml +++ b/driver-web/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/drivers-api/pom.xml b/drivers-api/pom.xml index eb5fdf81b..e9f66b482 100644 --- a/drivers-api/pom.xml +++ b/drivers-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench nb-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/engine-api/pom.xml b/engine-api/pom.xml index 72514dfc1..077854582 100644 --- a/engine-api/pom.xml +++ b/engine-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -23,25 +23,25 @@ io.nosqlbench nb-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench nb-annotations - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench virtdata-userlibs - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml index f7ec7d78b..b02078f9b 100644 --- a/engine-cli/pom.xml +++ b/engine-cli/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -23,13 +23,13 @@ io.nosqlbench engine-core - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench engine-docker - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/engine-clients/pom.xml b/engine-clients/pom.xml index a7936a4ff..ad032d4e8 100644 --- a/engine-clients/pom.xml +++ b/engine-clients/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -21,7 +21,7 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/engine-core/pom.xml b/engine-core/pom.xml index 1a2b1e700..9e53400c3 100644 --- a/engine-core/pom.xml +++ b/engine-core/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -28,13 +28,13 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench drivers-api - 4.15.57 + 4.15.58-SNAPSHOT @@ -85,7 +85,7 @@ io.nosqlbench engine-clients - 4.15.57 + 4.15.58-SNAPSHOT compile diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml index 44dc3e009..4dda1728b 100644 --- a/engine-docker/pom.xml +++ b/engine-docker/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -56,7 +56,7 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml index 6068af8ea..0b70b8080 100644 --- a/engine-docs/pom.xml +++ b/engine-docs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -28,7 +28,7 @@ io.nosqlbench docsys - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml index d17a099a6..5905de195 100644 --- a/engine-extensions/pom.xml +++ b/engine-extensions/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -22,7 +22,7 @@ io.nosqlbench engine-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/engine-rest/pom.xml b/engine-rest/pom.xml index ce9542d66..fbb87b2f8 100644 --- a/engine-rest/pom.xml +++ b/engine-rest/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -35,7 +35,7 @@ io.nosqlbench engine-cli - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index a9551ead7..d92bb5690 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -3,7 +3,7 @@ io.nosqlbench mvn-defaults - 4.15.57 + 4.15.58-SNAPSHOT pom @@ -81,7 +81,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git - nosqlbench-4.15.57 + HEAD diff --git a/nb-annotations/pom.xml b/nb-annotations/pom.xml index 7a3818bda..fc33a8ce4 100644 --- a/nb-annotations/pom.xml +++ b/nb-annotations/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults diff --git a/nb-api/pom.xml b/nb-api/pom.xml index 6dbfdbcae..a67bb4d54 100644 --- a/nb-api/pom.xml +++ b/nb-api/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -31,7 +31,7 @@ io.nosqlbench nb-annotations - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/nb/pom.xml b/nb/pom.xml index d5e7015e5..bbda479b3 100644 --- a/nb/pom.xml +++ b/nb/pom.xml @@ -5,7 +5,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -24,121 +24,121 @@ io.nosqlbench engine-rest - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench engine-cli - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench engine-docs - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench engine-core - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench engine-extensions - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-web - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-kafka - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-stdout - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-diag - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-tcp - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-http - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-jmx - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-dsegraph-shaded - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-cql-shaded - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-cqld3-shaded - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-cqlverify - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-mongodb - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-pulsar - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-cockroachdb - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench driver-jms - 4.15.57 + 4.15.58-SNAPSHOT @@ -238,7 +238,7 @@ io.nosqlbench driver-mongodb - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/pom.xml b/pom.xml index 45c5af786..f576a0ac3 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT mvn-defaults @@ -146,7 +146,7 @@ scm:git:https://github.com/nosqlbench/nosqlbench.git scm:git:git@github.com:nosqlbench/nosqlbench.git - nosqlbench-4.15.57 + HEAD diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml index a1e28d147..ef8853ff6 100644 --- a/virtdata-api/pom.xml +++ b/virtdata-api/pom.xml @@ -7,7 +7,7 @@ io.nosqlbench mvn-defaults - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -23,14 +23,14 @@ io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT nb-api io.nosqlbench virtdata-lang - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index 08184f25f..8de4db3e6 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml index 290d400ba..005072fed 100644 --- a/virtdata-lib-basics/pom.xml +++ b/virtdata-lib-basics/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml index efc808ffe..d8180aad1 100644 --- a/virtdata-lib-curves4/pom.xml +++ b/virtdata-lib-curves4/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -22,13 +22,13 @@ io.nosqlbench virtdata-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml index e77b9a72f..7340ace06 100644 --- a/virtdata-lib-random/pom.xml +++ b/virtdata-lib-random/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -20,13 +20,13 @@ io.nosqlbench virtdata-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench virtdata-lib-basics - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml index 33662d362..50f85453b 100644 --- a/virtdata-lib-realer/pom.xml +++ b/virtdata-lib-realer/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -20,7 +20,7 @@ io.nosqlbench virtdata-lib-basics - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml index 5cb1e2f2a..d25fec8ad 100644 --- a/virtdata-realdata/pom.xml +++ b/virtdata-realdata/pom.xml @@ -7,7 +7,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -18,7 +18,7 @@ io.nosqlbench virtdata-api - 4.15.57 + 4.15.58-SNAPSHOT diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml index a1849d5c2..534735b45 100644 --- a/virtdata-userlibs/pom.xml +++ b/virtdata-userlibs/pom.xml @@ -4,7 +4,7 @@ mvn-defaults io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT ../mvn-defaults @@ -18,36 +18,36 @@ io.nosqlbench virtdata-realdata - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench virtdata-lib-realer - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench virtdata-api - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench virtdata-lib-random - 4.15.57 + 4.15.58-SNAPSHOT io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT virtdata-lib-basics io.nosqlbench - 4.15.57 + 4.15.58-SNAPSHOT virtdata-lib-curves4 @@ -55,7 +55,7 @@ io.nosqlbench docsys - 4.15.57 + 4.15.58-SNAPSHOT