Skip to content

Docs: Improve retry policy and speculative execution policy #1285

Open
@Lorak-mmk

Description

@Lorak-mmk

@fee-mendes noticed that our docs are a bit lacking with regards when and how those policies will be applied.

  • Speculative execution will only work if statement is marked as idempotent. It is not mentioned in speculative execution chapter of the book ( https://rust-driver.docs.scylladb.com/stable/speculative-execution/speculative.html ), and neither in SpeculativeExecutionPolicy trait docs https://docs.rs/scylla/latest/scylla/policies/speculative_execution/trait.SpeculativeExecutionPolicy.html
  • RetryPolicy in contrary does not strictly require idempotent requests - its the policy that decides what to do, and can take idempotency into consideration. We should say that explicitly in the docs
  • DefaultRetryPolicy has quite complex logic - it takes into consideration what error occured, what happened in previous attempt and wheter the statement is idempotent. Our docs are imo a bit laconic - we should describe the logic a bit more, instead of just linking java driver docs and saying "It retries when there is a high chance that it might help".
  • Speculative execution also has a logic that decides whether to fail early based on the error returned - it is not documented anywhere.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions