liveBook · Manning

Nonspeculative retry

As explained in ScyllaDB in Action

A nonspeculative retry is a retry performed only after the driver receives the result of the preceding request and detects a retryable server-side error.

A nonspeculative retry waits for the preceding request to return, then retries only when the coordinator reports a retryable server-side error. Client-side timeouts do not trigger these policies. section 10.5.3

Choose a retry policy according to the consistency and operational behavior your application can tolerate:

  • Use the default policy for coordinator-detected node timeouts or unavailable nodes; it retries reads and logged batch writes. section 10.5.3
  • Use downgrading consistency cautiously: the follow-up request may reduce consistency, such as changing ALL to QUORUM. section 10.5.3
  • Use fallthrough when application code should handle retries itself, or disable retry handling. section 10.5.3
  • Set the maximum attempts to include the initial request; use at least two attempts when a retry is intended. section 10.5.3

How ScyllaDB in Action covers it

How deep it goes
Defines triggering errors and policy choices, but does not provide a complete implementation listing for nonspeculative retries.
Examples
Uses node timeouts, unavailable nodes, reads, logged batch writes, and dual writing to a secondary cluster as examples.
What it assumes
Assumes familiarity with Scylla requests, coordinators, consistency levels, and server-side versus client-side failures.
What you can do after
Operate/configure Scylla driver retry behavior by selecting a policy and maximum-attempt setting.
How it connects
Connects retry policies with consistency levels, node availability, client-side timeouts, reads, and logged batch writes.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of ScyllaDB in Action. The section links point to the parts of the book it draws on.