call: support vshard's request_timeout in read calls #456
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
vshard
0.1.28
introduces a new option for read requests: request_timeout.The request_timeout option serves as protection against stalled replicas. When specified, its value must be <= timeout, and it introduces new behavior for router calls: they start retrying on
TimedOut
errors, each time attempting to execute the request on a new replica, as long as the overall timeout allows (previous behavior).Support for this option is implemented only in
CRUD
requests withmode = 'read'
, since it makes no sense in write mode — there is no one to retry the request if the master does not respond.