-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[aws-cpp-sdk-s3-crt] support for the exponential back-off retry strategy #2615
Conversation
The `S3CrtClient` not longer has a configurable retry strategy. By default, the `S3CrtClient` uses the 'standard' AWS retry strategy with default parameters (5 maximum retries, scale factor of 25msec and default/full jitter options). In porting from `S3Client` to `S3CrtClient` deployments, support for exponential back-off is necessary, als in order to retry for a longer period. This is based on the truncated exponential backoff in awslabs/aws-c-io#587.
Can you add an enum flag to opt in to this new retry strategy? |
@jmklix - how would that look like in the bigger picture of the remaining configuration? |
It would look like this: enum class AwsS3CrtRetryStrategy
{
DEFAULT=0, /* defaults to standard now but may change */
STANDARD,
EXPONENTIAL_BACKOFF,
NO_RETRY=-1,
}; |
Ok thanks. It may take a few weeks to implement this, I don't have time to get into that at the moment. |
@@ -480,6 +492,7 @@ void S3CrtClient::init(const S3Crt::ClientConfiguration& config, | |||
{ | |||
aws_tls_connection_options_clean_up(&nonConstTlsOptions); | |||
} | |||
aws_retry_strategy_release(s3CrtConfig.retry_strategy); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
aws_retry_strategy_release
does nothing when given a NULL
parameter, so safe to use with defaults.
@jmklix - sorry it has taken a while. I have added an enum flag as requested, specifically
|
Thanks for taking the time to make this PR, but it's no longer necessary. We added a S3 CRT retry strategy config with this PR: #3110. Please let us know if there are any additional things that you would like added to this sdk. |
The
S3CrtClient
not longer has a configurable retry strategy.By default, the
S3CrtClient
uses the 'standard' AWS retry strategy with default parameters (5 maximum retries, scale factor of 25msec and default/full jitter options).In porting from
S3Client
toS3CrtClient
deployments, support for exponential back-off is necessary, in order to retry for a longer period.This is based on the truncated exponential backoff in awslabs/aws-c-io#587.
Check all that applies:
Check which platforms you have built SDK on to verify the correctness of this PR.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.