com.datastax.driver.core.policies
Interface RetryPolicy

All Known Implementing Classes:
DefaultRetryPolicy, DowngradingConsistencyRetryPolicy, FallthroughRetryPolicy, LoggingRetryPolicy

public interface RetryPolicy

A policy that defines a default behavior to adopt when a request returns a TimeoutException or an UnavailableException. Such policy allows to centralize the handling of query retries, allowing to minimize the need for exception catching/handling in business code.


Nested Class Summary
static class RetryPolicy.RetryDecision
          A retry decision to adopt on a Cassandra exception (read/write timeout or unavailable exception).
 
Method Summary
 RetryPolicy.RetryDecision onReadTimeout(Query query, ConsistencyLevel cl, int requiredResponses, int receivedResponses, boolean dataRetrieved, int nbRetry)
          Defines whether to retry and at which consistency level on a read timeout.
 RetryPolicy.RetryDecision onUnavailable(Query query, ConsistencyLevel cl, int requiredReplica, int aliveReplica, int nbRetry)
          Defines whether to retry and at which consistency level on an unavailable exception.
 RetryPolicy.RetryDecision onWriteTimeout(Query query, ConsistencyLevel cl, WriteType writeType, int requiredAcks, int receivedAcks, int nbRetry)
          Defines whether to retry and at which consistency level on a write timeout.
 

Method Detail

onReadTimeout

RetryPolicy.RetryDecision onReadTimeout(Query query,
                                        ConsistencyLevel cl,
                                        int requiredResponses,
                                        int receivedResponses,
                                        boolean dataRetrieved,
                                        int nbRetry)
Defines whether to retry and at which consistency level on a read timeout.

Note that this method may be called even if requiredResponses >= receivedResponses if dataPresent is false (see ReadTimeoutException.wasDataRetrieved()).

Parameters:
query - the original query that timeouted.
cl - the original consistency level of the read that timeouted.
requiredResponses - the number of responses that were required to achieve the requested consistency level.
receivedResponses - the number of responses that had been received by the time the timeout exception was raised.
dataRetrieved - whether actual data (by opposition to data checksum) was present in the received responses.
nbRetry - the number of retry already performed for this operation.
Returns:
the retry decision. If RetryDecision.RETHROW is returned, a ReadTimeoutException will be thrown for the operation.

onWriteTimeout

RetryPolicy.RetryDecision onWriteTimeout(Query query,
                                         ConsistencyLevel cl,
                                         WriteType writeType,
                                         int requiredAcks,
                                         int receivedAcks,
                                         int nbRetry)
Defines whether to retry and at which consistency level on a write timeout.

Parameters:
query - the original query that timeouted.
cl - the original consistency level of the write that timeouted.
writeType - the type of the write that timeouted.
requiredAcks - the number of acknowledgments that were required to achieve the requested consistency level.
receivedAcks - the number of acknowledgments that had been received by the time the timeout exception was raised.
nbRetry - the number of retry already performed for this operation.
Returns:
the retry decision. If RetryDecision.RETHROW is returned, a WriteTimeoutException will be thrown for the operation.

onUnavailable

RetryPolicy.RetryDecision onUnavailable(Query query,
                                        ConsistencyLevel cl,
                                        int requiredReplica,
                                        int aliveReplica,
                                        int nbRetry)
Defines whether to retry and at which consistency level on an unavailable exception.

Parameters:
query - the original query for which the consistency level cannot be achieved.
cl - the original consistency level for the operation.
requiredReplica - the number of replica that should have been (known) alive for the operation to be attempted.
aliveReplica - the number of replica that were know to be alive by the coordinator of the operation.
nbRetry - the number of retry already performed for this operation.
Returns:
the retry decision. If RetryDecision.RETHROW is returned, an UnavailableException will be thrown for the operation.


Copyright © 2013. All Rights Reserved.