mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
incremental work on cqld4
This commit is contained in:
parent
4278c79006
commit
14afd98d47
@ -1,7 +1,12 @@
|
||||
package io.nosqlbench.activitytype.cqld4.core;
|
||||
|
||||
import com.datastax.driver.core.*;
|
||||
import com.datastax.driver.core.policies.*;
|
||||
import com.datastax.oss.driver.api.core.connection.ReconnectionPolicy;
|
||||
import com.datastax.oss.driver.api.core.retry.RetryPolicy;
|
||||
import com.datastax.oss.driver.api.core.session.Session;
|
||||
import com.datastax.oss.driver.api.core.specex.SpeculativeExecutionPolicy;
|
||||
import com.datastax.oss.driver.internal.core.connection.ExponentialReconnectionPolicy;
|
||||
import com.datastax.oss.driver.internal.core.retry.DefaultRetryPolicy;
|
||||
import com.datastax.oss.driver.internal.core.specex.ConstantSpeculativeExecutionPolicy;
|
||||
import io.netty.util.HashedWheelTimer;
|
||||
import io.nosqlbench.nb.api.errors.BasicError;
|
||||
import org.slf4j.Logger;
|
||||
@ -69,9 +74,9 @@ public class CQLOptions {
|
||||
|
||||
}
|
||||
|
||||
public static RetryPolicy retryPolicyFor(String spec) {
|
||||
public static RetryPolicy retryPolicyFor(String spec, Session session) {
|
||||
Set<String> retryBehaviors = Arrays.stream(spec.split(",")).map(String::toLowerCase).collect(Collectors.toSet());
|
||||
RetryPolicy retryPolicy = DefaultRetryPolicy.INSTANCE;
|
||||
RetryPolicy retryPolicy = new DefaultRetryPolicy(session.getContext(),"default");
|
||||
|
||||
if (retryBehaviors.contains("default")) {
|
||||
return retryPolicy;
|
||||
@ -84,7 +89,7 @@ public class CQLOptions {
|
||||
return retryPolicy;
|
||||
}
|
||||
|
||||
public static ReconnectionPolicy reconnectPolicyFor(String spec) {
|
||||
public static ReconnectionPolicy reconnectPolicyFor(String spec, Session session) {
|
||||
if(spec.startsWith("exponential(")){
|
||||
String argsString = spec.substring(12);
|
||||
String[] args = argsString.substring(0, argsString.length() - 1).split("[,;]");
|
||||
@ -93,7 +98,7 @@ public class CQLOptions {
|
||||
}
|
||||
long baseDelay = Long.parseLong(args[0]);
|
||||
long maxDelay = Long.parseLong(args[1]);
|
||||
return new ExponentialReconnectionPolicy(baseDelay,maxDelay);
|
||||
ExponentialReconnectionPolicy exponentialReconnectionPolicy = new ExponentialReconnectionPolicy(session.getContext());
|
||||
}else if(spec.startsWith("constant(")){
|
||||
String argsString = spec.substring(9);
|
||||
long constantDelayMs= Long.parseLong(argsString.substring(0, argsString.length() - 1));
|
||||
|
@ -1,7 +1,6 @@
|
||||
package io.nosqlbench.activitytype.cqld4.core;
|
||||
|
||||
import com.datastax.driver.core.policies.AddressTranslator;
|
||||
import com.datastax.driver.core.Cluster;
|
||||
import com.datastax.oss.driver.api.core.addresstranslation.AddressTranslator;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
|
||||
@ -16,11 +15,6 @@ public class ProxyTranslator implements AddressTranslator {
|
||||
this.address= host;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(Cluster cluster) {
|
||||
// Nothing to do
|
||||
}
|
||||
|
||||
@Override
|
||||
public InetSocketAddress translate(InetSocketAddress address) {
|
||||
return address;
|
||||
|
@ -1,57 +1,86 @@
|
||||
package io.nosqlbench.activitytype.cqld4.errorhandling;
|
||||
|
||||
import com.datastax.driver.core.exceptions.*;
|
||||
import com.datastax.dse.driver.api.core.servererrors.UnfitClientException;
|
||||
import com.datastax.oss.driver.api.core.*;
|
||||
import com.datastax.oss.driver.api.core.auth.AuthenticationException;
|
||||
import com.datastax.oss.driver.api.core.connection.*;
|
||||
import com.datastax.oss.driver.api.core.servererrors.*;
|
||||
import com.datastax.oss.driver.api.core.type.codec.CodecNotFoundException;
|
||||
import com.datastax.oss.driver.internal.core.channel.ClusterNameMismatchException;
|
||||
import com.datastax.oss.driver.shaded.guava.common.collect.ComputationException;
|
||||
import io.nosqlbench.activitytype.cqld4.errorhandling.exceptions.*;
|
||||
import org.apache.tinkerpop.gremlin.driver.exception.ConnectionException;
|
||||
|
||||
import java.sql.Driver;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* This enumerates all known exception classes, including supertypes,
|
||||
* for the purposes of stable naming in error handling.
|
||||
* This is current as of com.datastax.cassandra:cassandra-driver-core:3.2.0
|
||||
* This is current as of CQL OSS driver 4.6.0
|
||||
*/
|
||||
public class ExceptionMap {
|
||||
|
||||
private final static Map<Class<? extends Exception>, Class<? extends Exception>> map
|
||||
= new LinkedHashMap<Class<? extends Exception>, Class<? extends Exception>>() {
|
||||
{
|
||||
put(FrameTooLongException.class, DriverException.class);
|
||||
put(CodecNotFoundException.class, DriverException.class);
|
||||
put(AuthenticationException.class, DriverException.class);
|
||||
put(TraceRetrievalException.class, DriverException.class);
|
||||
put(UnsupportedProtocolVersionException.class, DriverException.class);
|
||||
put(NoHostAvailableException.class, DriverException.class);
|
||||
put(QueryValidationException.class, DriverException.class);
|
||||
put(InvalidQueryException.class, QueryValidationException.class);
|
||||
put(InvalidConfigurationInQueryException.class, InvalidQueryException.class);
|
||||
put(UnauthorizedException.class, QueryValidationException.class);
|
||||
put(SyntaxError.class, QueryValidationException.class);
|
||||
put(AlreadyExistsException.class, QueryValidationException.class);
|
||||
|
||||
put(AuthenticationException.class, RuntimeException.class);
|
||||
put(ClusterNameMismatchException.class, RuntimeException.class);
|
||||
put(CodecNotFoundException.class, RuntimeException.class);
|
||||
put(ComputationException.class, RuntimeException.class);
|
||||
|
||||
|
||||
|
||||
put(AllNodesFailedException.class, DriverException.class);
|
||||
put(NoNodeAvailableException.class, AllNodesFailedException.class);
|
||||
put(BusyConnectionException.class, DriverException.class);
|
||||
put(ClosedConnectionException.class, DriverException.class);
|
||||
put(ConnectionInitException.class, DriverException.class);
|
||||
put(CoordinatorException.class, DriverException.class);
|
||||
put(ProtocolError.class, CoordinatorException.class);
|
||||
put(QueryExecutionException.class, CoordinatorException.class);
|
||||
put(BootstrappingException.class, QueryExecutionException.class);
|
||||
put(FunctionFailureException.class, QueryExecutionException.class);
|
||||
put(OverloadedException.class, QueryExecutionException.class);
|
||||
put(QueryConsistencyException.class, QueryExecutionException.class);
|
||||
put(ReadFailureException.class, QueryConsistencyException.class);
|
||||
put(ReadTimeoutException.class, QueryConsistencyException.class);
|
||||
put(WriteFailureException.class, QueryConsistencyException.class);
|
||||
put(WriteTimeoutException.class, QueryConsistencyException.class);
|
||||
put(TruncateException.class, QueryExecutionException.class);
|
||||
put(UnavailableException.class, QueryExecutionException.class);
|
||||
put(QueryValidationException.class, CoordinatorException.class);
|
||||
put(AlreadyExistsException.class, QueryValidationException.class);
|
||||
put(InvalidConfigurationInQueryException.class, QueryValidationException.class);
|
||||
put(InvalidQueryException.class, QueryValidationException.class);
|
||||
put(SyntaxError.class, QueryValidationException.class);
|
||||
put(UnauthorizedException.class, QueryValidationException.class);
|
||||
put(ServerError.class,CoordinatorException.class);
|
||||
put(UnfitClientException.class, CoordinatorException.class);
|
||||
put(DriverExecutionException.class, DriverException.class);
|
||||
put(DriverTimeoutException.class, DriverException.class);
|
||||
put(FrameTooLongException.class, DriverException.class);
|
||||
put(HeartbeatException.class,DriverException.class);
|
||||
put(InvalidKeyspaceException.class,DriverException.class);
|
||||
put(RequestThrottlingException.class,DriverException.class);
|
||||
put(UnsupportedProtocolVersionException.class, DriverException.class);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
put(UnpreparedException.class, QueryValidationException.class);
|
||||
put(InvalidTypeException.class, DriverException.class);
|
||||
put(QueryExecutionException.class, DriverException.class);
|
||||
put(UnavailableException.class, QueryValidationException.class);
|
||||
put(BootstrappingException.class, QueryValidationException.class);
|
||||
put(OverloadedException.class, QueryValidationException.class);
|
||||
put(TruncateException.class, QueryValidationException.class);
|
||||
put(QueryConsistencyException.class, QueryValidationException.class);
|
||||
put(WriteTimeoutException.class, QueryConsistencyException.class);
|
||||
put(WriteFailureException.class, QueryConsistencyException.class);
|
||||
put(ReadFailureException.class, QueryConsistencyException.class);
|
||||
put(ReadTimeoutException.class, QueryConsistencyException.class);
|
||||
put(FunctionExecutionException.class, QueryValidationException.class);
|
||||
put(DriverInternalError.class, DriverException.class);
|
||||
put(ProtocolError.class, DriverInternalError.class);
|
||||
put(ServerError.class, DriverInternalError.class);
|
||||
put(BusyPoolException.class, DriverException.class);
|
||||
put(ConnectionException.class, DriverException.class);
|
||||
put(TransportException.class, ConnectionException.class);
|
||||
put(OperationTimedOutException.class, ConnectionException.class);
|
||||
put(PagingStateException.class, DriverException.class);
|
||||
put(UnresolvedUserTypeException.class, DriverException.class);
|
||||
put(UnsupportedFeatureException.class, DriverException.class);
|
||||
put(BusyConnectionException.class, DriverException.class);
|
||||
|
||||
put(ChangeUnappliedCycleException.class, CqlGenericCycleException.class);
|
||||
put(ResultSetVerificationException.class, CqlGenericCycleException.class);
|
||||
|
Loading…
Reference in New Issue
Block a user