Constructor
new RetryPolicy()
Base and default RetryPolicy.
Determines what to do when the drivers runs into an specific Cassandra exception
Members
(static) retryDecision :Object
Determines the retry decision for the retry policies.
Type:
- Object
Methods
onReadTimeout(requestInfo, consistency, received, blockFor, isDataPresent) → {DecisionInfo}
Determines what to do when the driver gets a ReadTimeoutException response from a Cassandra node.
Parameters:
| Name | Type | Description |
|---|---|---|
requestInfo |
Object | |
consistency |
Number | The consistency level of the query that triggered the exception. |
received |
Number | The number of nodes having answered the request. |
blockFor |
Number | The number of replicas whose response is required to achieve the required consistency. |
isDataPresent |
Boolean | When false, it means the replica that was asked for data has not responded. |
Returns:
- Type
- DecisionInfo
onRequestError(requestInfo, consistency, err) → {DecisionInfo}
Defines whether to retry and at which consistency level on an unexpected error.
This method might be invoked in the following situations:
- On a client timeout, while waiting for the server response (see socketOptions.readTimeout), being the error an instance of OperationTimedOutError.
- On a connection error (socket closed, etc.).
- When the contacted host replies with an error, such as
overloaded,isBootstrapping, serverError, etc. In this case, the error is instance of ResponseError.
Note that when this method is invoked, the driver cannot guarantee that the mutation has been effectively applied server-side; a retry should only be attempted if the request is known to be idempotent.
Parameters:
| Name | Type | Description |
|---|---|---|
requestInfo |
Object | |
consistency |
Number | undefined | The consistency level of the query that triggered the exception. |
err |
Error | The error that caused this request to fail. |
Returns:
- Type
- DecisionInfo
onUnavailable(requestInfo, consistency, required, alive) → {DecisionInfo}
Determines what to do when the driver gets an UnavailableException response from a Cassandra node.
Parameters:
| Name | Type | Description |
|---|---|---|
requestInfo |
Object | |
consistency |
Number | The consistency level of the query that triggered the exception. |
required |
Number | The number of replicas whose response is required to achieve the required consistency. |
alive |
Number | The number of replicas that were known to be alive when the request had been processed (since an unavailable exception has been triggered, there will be alive < required) |
Returns:
- Type
- DecisionInfo
onWriteTimeout(requestInfo, consistency, received, blockFor, writeType) → {DecisionInfo}
Determines what to do when the driver gets a WriteTimeoutException response from a Cassandra node.
Parameters:
| Name | Type | Description |
|---|---|---|
requestInfo |
Object | |
consistency |
Number | The consistency level of the query that triggered the exception. |
received |
Number | The number of nodes having acknowledged the request. |
blockFor |
Number | The number of replicas whose acknowledgement is required to achieve the required consistency. |
writeType |
String | A string that describes the type of the write that timed out ("SIMPLE"
/ "BATCH" / "BATCH_LOG" / "UNLOGGED_BATCH" / "COUNTER"). |
Returns:
- Type
- DecisionInfo
rethrowResult() → {DecisionInfo}
Returns a DecisionInfo to callback in error when a err is obtained for a given request.
Returns:
- Type
- DecisionInfo
retryResult(consistencyopt, useCurrentHostopt) → {DecisionInfo}
Returns a DecisionInfo to retry the request with the given consistency.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
consistency |
Number | undefined |
<optional> |
When specified, it retries the request with the given consistency. |
useCurrentHost |
Boolean |
<optional> |
When specified, determines if the retry should be made using the same coordinator. Default: true. |
Returns:
- Type
- DecisionInfo