Menu

CassRetryPolicy

struct CassRetryPolicy

Public Functions

CassRetryPolicy *cass_retry_policy_default_new()

Creates a new default retry policy.

This policy retries queries in the following cases:

  • On a read timeout, if enough replicas replied but data was not received.

  • On a write timeout, if a timeout occurs while writing the distributed batch log

  • On unavailable, it will move to the next host

In all other cases the error will be returned.

This policy always uses the query’s original consistency level.

Return

Returns a retry policy that must be freed.

See

cass_retry_policy_free()

CassRetryPolicy *cass_retry_policy_downgrading_consistency_new()

Creates a new downgrading consistency retry policy.

Important: This policy may attempt to retry requests with a lower consistency level. Using this policy can break consistency guarantees.

This policy will retry in the same scenarios as the default policy, but it will also retry in the following cases:

  • On a read timeout, if some replicas responded but is lower than required by the current consistency level then retry with a lower consistency level.

  • On a write timeout, Retry unlogged batches at a lower consistency level if at least one replica responded. For single queries and batch if any replicas responded then consider the request successful and swallow the error.

  • On unavailable, retry at a lower consistency if at lease one replica responded.

This goal of this policy is to attempt to save a request if there’s any chance of success. A writes succeeds as long as there’s a single copy persisted and a read will succeed if there’s some data available even if it increases the risk of reading stale data.

Return

Returns a retry policy that must be freed.

See

cass_retry_policy_free()

CassRetryPolicy *cass_retry_policy_fallthrough_new()

Creates a new fallthrough retry policy.

This policy never retries or ignores a server-side failure. The error is always returned.

Return

Returns a retry policy that must be freed.

See

cass_retry_policy_free()

CassRetryPolicy *cass_retry_policy_logging_new(CassRetryPolicy *child_retry_policy)

Creates a new logging retry policy.

This policy logs the retry decision of its child policy. Logging is done using CASS_LOG_INFO.

Return

Returns a retry policy that must be freed. NULL is returned if the child_policy is a logging retry policy.

See

cass_retry_policy_free()

Parameters
  • child_retry_policy:

void cass_retry_policy_free(CassRetryPolicy *policy)

Frees a retry policy instance.

Parameters
  • policy: