diff --git a/activitytype-cql/pom.xml b/activitytype-cql/pom.xml
index a1a06c2ee..47e4bf36c 100644
--- a/activitytype-cql/pom.xml
+++ b/activitytype-cql/pom.xml
@@ -4,7 +4,7 @@
io.nosqlbench
mvn-defaults
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -23,7 +23,7 @@
io.nosqlbench
engine-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/activitytype-cql/src/main/java/io/nosqlbench/activitytype/cql/core/CQLOptions.java b/activitytype-cql/src/main/java/io/nosqlbench/activitytype/cql/core/CQLOptions.java
index 996fc8eec..0c729ceef 100644
--- a/activitytype-cql/src/main/java/io/nosqlbench/activitytype/cql/core/CQLOptions.java
+++ b/activitytype-cql/src/main/java/io/nosqlbench/activitytype/cql/core/CQLOptions.java
@@ -3,6 +3,7 @@ package io.nosqlbench.activitytype.cql.core;
import com.datastax.driver.core.*;
import com.datastax.driver.core.policies.*;
import io.netty.util.HashedWheelTimer;
+import io.nosqlbench.engine.api.exceptions.BasicError;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -83,6 +84,24 @@ public class CQLOptions {
return retryPolicy;
}
+ public static ReconnectionPolicy reconnectPolicyFor(String spec) {
+ if(spec.startsWith("exponential(")){
+ String argsString = spec.substring(12);
+ String[] args = argsString.substring(0, argsString.length() - 1).split("[,;]");
+ if (args.length != 2){
+ throw new BasicError("Invalid reconnectionpolicy, try reconnectionpolicy=exponential(, )");
+ }
+ long baseDelay = Long.parseLong(args[0]);
+ long maxDelay = Long.parseLong(args[1]);
+ return new ExponentialReconnectionPolicy(baseDelay,maxDelay);
+ }else if(spec.startsWith("constant(")){
+ String argsString = spec.substring(9);
+ long constantDelayMs= Long.parseLong(argsString.substring(0, argsString.length() - 1));
+ return new ConstantReconnectionPolicy(constantDelayMs);
+ }
+ throw new BasicError("Invalid reconnectionpolicy, try reconnectionpolicy=exponential(, ) or constant()");
+ }
+
public static SocketOptions socketOptionsFor(String spec) {
String[] assignments = spec.split("[,;]");
Map values = new HashMap<>();
diff --git a/activitytype-cql/src/main/java/io/nosqlbench/activitytype/cql/statements/core/CQLSessionCache.java b/activitytype-cql/src/main/java/io/nosqlbench/activitytype/cql/statements/core/CQLSessionCache.java
index 776d89a24..dc92a23ad 100644
--- a/activitytype-cql/src/main/java/io/nosqlbench/activitytype/cql/statements/core/CQLSessionCache.java
+++ b/activitytype-cql/src/main/java/io/nosqlbench/activitytype/cql/statements/core/CQLSessionCache.java
@@ -161,6 +161,15 @@ public class CQLSessionCache implements Shutdownable {
.map(CQLOptions::socketOptionsFor)
.ifPresent(builder::withSocketOptions);
+ activityDef.getParams().getOptionalString("reconnectpolicy")
+ .map(reconnectpolicy-> {
+ logger.info("reconnectpolicy=>" + reconnectpolicy);
+ return reconnectpolicy;
+ })
+ .map(CQLOptions::reconnectPolicyFor)
+ .ifPresent(builder::withReconnectionPolicy);
+
+
activityDef.getParams().getOptionalString("pooling")
.map(pooling -> {
logger.info("pooling=>" + pooling);
diff --git a/activitytype-cql/src/main/resources/cql.md b/activitytype-cql/src/main/resources/cql.md
index a49e66788..c715ccebb 100644
--- a/activitytype-cql/src/main/resources/cql.md
+++ b/activitytype-cql/src/main/resources/cql.md
@@ -66,6 +66,11 @@ activity types.
The only option supported for this version is `retrypolicy=logging`,
which uses the default retry policy, but with logging added.
+- **reconnectpolicy** default: none - Applies a reconnection policy in the driver
+ Supports either `reconnectpolicy=exponential(minDelayInMs,maxDelayInMs)` or `reconnectpolicy=constant(delayInMs)`.
+ The driver reconnects using this policy when the entire cluster becomes unavailable.
+
+
- **pooling** default: none - Applies the connection pooling options
to the policy.
Examples:
diff --git a/activitytype-cql/src/test/java/com/datastax/ebdrivers/cql/statements/CQLOptionsTest.java b/activitytype-cql/src/test/java/com/datastax/ebdrivers/cql/statements/CQLOptionsTest.java
index 9b6805b72..132e2a082 100644
--- a/activitytype-cql/src/test/java/com/datastax/ebdrivers/cql/statements/CQLOptionsTest.java
+++ b/activitytype-cql/src/test/java/com/datastax/ebdrivers/cql/statements/CQLOptionsTest.java
@@ -4,6 +4,8 @@ import com.datastax.driver.core.HostDistance;
import com.datastax.driver.core.PoolingOptions;
import com.datastax.driver.core.SocketOptions;
import com.datastax.driver.core.policies.LoadBalancingPolicy;
+import com.datastax.driver.core.policies.ReconnectionPolicy;
+import com.datastax.driver.core.policies.RetryPolicy;
import com.datastax.driver.core.policies.SpeculativeExecutionPolicy;
import io.nosqlbench.activitytype.cql.core.CQLOptions;
import org.junit.Test;
@@ -32,6 +34,13 @@ public class CQLOptionsTest {
assertThat(lbp).isNotNull();
}
+ @Test
+ public void testReconnectPolicyPatterns() {
+ ReconnectionPolicy rp = CQLOptions.reconnectPolicyFor("exponential(123,321)");
+ rp = CQLOptions.reconnectPolicyFor("constant(123)");
+
+ }
+
@Test
public void testSocketOptionPatterns() {
SocketOptions so = CQLOptions.socketOptionsFor("read_timeout_ms=23423,connect_timeout_ms=2344;keep_alive:true,reuse_address:true;so_linger:323;tcp_no_delay=true;receive_buffer_size:100,send_buffer_size=1000");
diff --git a/activitytype-cqlverify/pom.xml b/activitytype-cqlverify/pom.xml
index a4c0e8ceb..8f749dfd5 100644
--- a/activitytype-cqlverify/pom.xml
+++ b/activitytype-cqlverify/pom.xml
@@ -4,7 +4,7 @@
io.nosqlbench
mvn-defaults
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -24,7 +24,7 @@
io.nosqlbench
activitytype-cql
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/activitytype-diag/pom.xml b/activitytype-diag/pom.xml
index 0e48efe2c..379848935 100644
--- a/activitytype-diag/pom.xml
+++ b/activitytype-diag/pom.xml
@@ -5,7 +5,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -20,7 +20,7 @@
io.nosqlbench
engine-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/activitytype-http/pom.xml b/activitytype-http/pom.xml
index 39897dafc..104d91f59 100644
--- a/activitytype-http/pom.xml
+++ b/activitytype-http/pom.xml
@@ -5,7 +5,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -21,7 +21,7 @@
io.nosqlbench
engine-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/activitytype-stdout/pom.xml b/activitytype-stdout/pom.xml
index df2c1de23..30d05440b 100644
--- a/activitytype-stdout/pom.xml
+++ b/activitytype-stdout/pom.xml
@@ -7,7 +7,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -21,7 +21,7 @@
io.nosqlbench
engine-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/activitytype-tcp/pom.xml b/activitytype-tcp/pom.xml
index 7b1906633..2134d5339 100644
--- a/activitytype-tcp/pom.xml
+++ b/activitytype-tcp/pom.xml
@@ -7,7 +7,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -23,13 +23,13 @@
io.nosqlbench
engine-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
activitytype-stdout
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/docsys/pom.xml b/docsys/pom.xml
index b888e187f..731d3f0d7 100644
--- a/docsys/pom.xml
+++ b/docsys/pom.xml
@@ -9,7 +9,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -18,7 +18,7 @@
io.nosqlbench
nb-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
@@ -112,7 +112,7 @@
io.nosqlbench
virtdata-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/engine-api/pom.xml b/engine-api/pom.xml
index 5ed294a1f..e69a62d79 100644
--- a/engine-api/pom.xml
+++ b/engine-api/pom.xml
@@ -5,7 +5,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -22,13 +22,13 @@
io.nosqlbench
nb-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
virtdata-userlibs
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/engine-cli/pom.xml b/engine-cli/pom.xml
index 77ddf018a..daa4e4dd8 100644
--- a/engine-cli/pom.xml
+++ b/engine-cli/pom.xml
@@ -4,7 +4,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -23,7 +23,7 @@
io.nosqlbench
engine-core
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
@@ -47,7 +47,7 @@
io.nosqlbench
engine-docker
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/engine-core/pom.xml b/engine-core/pom.xml
index fec5f5693..93e8814c5 100644
--- a/engine-core/pom.xml
+++ b/engine-core/pom.xml
@@ -5,7 +5,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -28,7 +28,7 @@
io.nosqlbench
engine-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/engine-docker/pom.xml b/engine-docker/pom.xml
index 58158cc10..58241f061 100644
--- a/engine-docker/pom.xml
+++ b/engine-docker/pom.xml
@@ -4,7 +4,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -77,7 +77,7 @@
io.nosqlbench
engine-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/engine-docs/pom.xml b/engine-docs/pom.xml
index c0173283f..c07fc559e 100644
--- a/engine-docs/pom.xml
+++ b/engine-docs/pom.xml
@@ -4,7 +4,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -28,7 +28,7 @@
io.nosqlbench
docsys
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/engine-extensions/pom.xml b/engine-extensions/pom.xml
index 216683ad6..bb2cab555 100644
--- a/engine-extensions/pom.xml
+++ b/engine-extensions/pom.xml
@@ -4,7 +4,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -22,7 +22,7 @@
io.nosqlbench
engine-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml
index 88310dbe5..f5027abd5 100644
--- a/mvn-defaults/pom.xml
+++ b/mvn-defaults/pom.xml
@@ -3,7 +3,7 @@
io.nosqlbench
mvn-defaults
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
pom
diff --git a/nb-api/pom.xml b/nb-api/pom.xml
index eb2efe4a5..31cc66b49 100644
--- a/nb-api/pom.xml
+++ b/nb-api/pom.xml
@@ -5,7 +5,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
diff --git a/nb/pom.xml b/nb/pom.xml
index 1de364a16..fee2e9e59 100644
--- a/nb/pom.xml
+++ b/nb/pom.xml
@@ -5,7 +5,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -24,61 +24,61 @@
io.nosqlbench
engine-cli
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
engine-docs
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
engine-core
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
engine-extensions
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
activitytype-stdout
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
activitytype-diag
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
activitytype-tcp
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
activitytype-http
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
activitytype-cql
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
activitytype-cqlverify
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/pom.xml b/pom.xml
index f9eaf1fc0..591f435bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
mvn-defaults
diff --git a/virtdata-api/pom.xml b/virtdata-api/pom.xml
index 7195afa20..e666de0e1 100644
--- a/virtdata-api/pom.xml
+++ b/virtdata-api/pom.xml
@@ -7,7 +7,7 @@
io.nosqlbench
mvn-defaults
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -23,14 +23,14 @@
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
nb-api
io.nosqlbench
virtdata-lang
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml
index 41bba7317..9b687e92f 100644
--- a/virtdata-lang/pom.xml
+++ b/virtdata-lang/pom.xml
@@ -7,7 +7,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml
index 665909b58..6333643eb 100644
--- a/virtdata-lib-basics/pom.xml
+++ b/virtdata-lib-basics/pom.xml
@@ -7,7 +7,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -20,7 +20,7 @@
io.nosqlbench
virtdata-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/virtdata-lib-curves4/pom.xml b/virtdata-lib-curves4/pom.xml
index f52105311..468f63219 100644
--- a/virtdata-lib-curves4/pom.xml
+++ b/virtdata-lib-curves4/pom.xml
@@ -4,7 +4,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -22,13 +22,13 @@
io.nosqlbench
virtdata-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
virtdata-lib-basics
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/virtdata-lib-random/pom.xml b/virtdata-lib-random/pom.xml
index 68c92ed88..ed84c91bc 100644
--- a/virtdata-lib-random/pom.xml
+++ b/virtdata-lib-random/pom.xml
@@ -7,7 +7,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -20,13 +20,13 @@
io.nosqlbench
virtdata-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
virtdata-lib-basics
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/virtdata-lib-realer/pom.xml b/virtdata-lib-realer/pom.xml
index caa864d31..89e9197e9 100644
--- a/virtdata-lib-realer/pom.xml
+++ b/virtdata-lib-realer/pom.xml
@@ -4,7 +4,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -24,7 +24,7 @@
io.nosqlbench
virtdata-lib-basics
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/virtdata-realdata/pom.xml b/virtdata-realdata/pom.xml
index 827afc059..86d97ffc1 100644
--- a/virtdata-realdata/pom.xml
+++ b/virtdata-realdata/pom.xml
@@ -7,7 +7,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -18,7 +18,7 @@
io.nosqlbench
virtdata-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml
index 635bf832c..3f8ba02b4 100644
--- a/virtdata-userlibs/pom.xml
+++ b/virtdata-userlibs/pom.xml
@@ -4,7 +4,7 @@
mvn-defaults
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
../mvn-defaults
@@ -17,38 +17,38 @@
io.nosqlbench
virtdata-realdata
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
virtdata-lib-realer
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
virtdata-api
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
virtdata-lib-random
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
virtdata-lib-basics
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
virtdata-lib-curves4
io.nosqlbench
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT
io.nosqlbench
docsys
- 3.12.79-SNAPSHOT
+ 3.12.80-SNAPSHOT