Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retry on certain query failures for managed transactions #190

Merged
merged 1 commit into from
Aug 7, 2024

Conversation

knutwalker
Copy link
Collaborator

When using Graph::run, Graph::run_on, Graph::execute, or Graph::execute_on, the query might be retries for a while.
The logic is that all errors with the Transient error class as well as a few other error classes are considered retryable.
This catches errors during a leader election or when the transaction resources on the server (memory, handles, ...) are exhausted.
Retries happen with an exponential backoff until a retry delay exceeds 60s, at which point the query fails.

Transaction created with Graph::start_txn or Graph::start_txn are not retried automatically, only managed transactions are.

Cherry-Picked-From: #186

When using `Graph::run`, `Graph::run_on`, `Graph::execute`, or `Graph::execute_on`, the query might be retries for a while.
The logic is that all errors with the `Transient` error class as well as a few other error classes are considered retryable.
This catches errors during a leader election or when the transaction resources on the server (memory, handles, ...) are exhausted.
Retries happen with an exponential backoff until a retry delay exceeds 60s, at which point the query fails.

Transaction created with `Graph::start_txn` or `Graph::start_txn` are *not* retried automatically, only managed transactions are.

Cherry-Picked-From: #186
@knutwalker knutwalker merged commit dea1da6 into main Aug 7, 2024
11 checks passed
@knutwalker knutwalker deleted the simple-retry branch August 7, 2024 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant