Skip to content

Commit f0b2f31

Browse files
alchemist51dk2k
authored andcommitted
Change default retry mechanism of s3 client to Standard Mode (opensearch-project#15978)
Signed-off-by: Arpit Bandejiya <[email protected]>
1 parent e91a143 commit f0b2f31

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1515
- Add _list/indices API as paginated alternate to _cat/indices ([#14718](https://github.com/opensearch-project/OpenSearch/pull/14718))
1616
- Add success and failure metrics for async shard fetch ([#15976](https://github.com/opensearch-project/OpenSearch/pull/15976))
1717
- Add new metric REMOTE_STORE to NodeStats API response ([#15611](https://github.com/opensearch-project/OpenSearch/pull/15611))
18+
- [S3 Repository] Change default retry mechanism of s3 clients to Standard Mode ([#15978](https://github.com/opensearch-project/OpenSearch/pull/15978))
1819

1920
### Dependencies
2021
- Bump `com.azure:azure-identity` from 1.13.0 to 1.13.2 ([#15578](https://github.com/opensearch-project/OpenSearch/pull/15578))

plugins/repository-s3/src/main/java/org/opensearch/repositories/s3/S3AsyncService.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import software.amazon.awssdk.core.client.config.ClientAsyncConfiguration;
1919
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
2020
import software.amazon.awssdk.core.client.config.SdkAdvancedAsyncClientOption;
21+
import software.amazon.awssdk.core.retry.RetryMode;
2122
import software.amazon.awssdk.core.retry.RetryPolicy;
2223
import software.amazon.awssdk.core.retry.backoff.BackoffStrategy;
2324
import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
@@ -239,7 +240,9 @@ static ClientOverrideConfiguration buildOverrideConfiguration(final S3ClientSett
239240
RetryPolicy.builder()
240241
.numRetries(clientSettings.maxRetries)
241242
.throttlingBackoffStrategy(
242-
clientSettings.throttleRetries ? BackoffStrategy.defaultThrottlingStrategy() : BackoffStrategy.none()
243+
clientSettings.throttleRetries
244+
? BackoffStrategy.defaultThrottlingStrategy(RetryMode.STANDARD)
245+
: BackoffStrategy.none()
243246
)
244247
.build()
245248
)

plugins/repository-s3/src/main/java/org/opensearch/repositories/s3/S3Service.java

+3
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
4343
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
4444
import software.amazon.awssdk.core.exception.SdkException;
45+
import software.amazon.awssdk.core.retry.RetryMode;
4546
import software.amazon.awssdk.core.retry.RetryPolicy;
4647
import software.amazon.awssdk.core.retry.backoff.BackoffStrategy;
4748
import software.amazon.awssdk.http.SystemPropertyTlsKeyManagersProvider;
@@ -330,6 +331,8 @@ static ClientOverrideConfiguration buildOverrideConfiguration(final S3ClientSett
330331
);
331332
if (!clientSettings.throttleRetries) {
332333
retryPolicy.throttlingBackoffStrategy(BackoffStrategy.none());
334+
} else {
335+
retryPolicy.throttlingBackoffStrategy(BackoffStrategy.defaultThrottlingStrategy(RetryMode.STANDARD));
333336
}
334337
return clientOverrideConfiguration.retryPolicy(retryPolicy.build()).build();
335338
}

plugins/repository-s3/src/test/java/org/opensearch/repositories/s3/AwsS3ServiceImplTests.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
3636
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
3737
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
38+
import software.amazon.awssdk.core.retry.RetryMode;
3839
import software.amazon.awssdk.core.retry.backoff.BackoffStrategy;
3940
import software.amazon.awssdk.http.apache.ProxyConfiguration;
4041

@@ -364,7 +365,7 @@ private void launchAWSConfigurationTest(
364365
if (expectedUseThrottleRetries) {
365366
assertThat(
366367
clientOverrideConfiguration.retryPolicy().get().throttlingBackoffStrategy(),
367-
is(BackoffStrategy.defaultThrottlingStrategy())
368+
is(BackoffStrategy.defaultThrottlingStrategy(RetryMode.STANDARD))
368369
);
369370
} else {
370371
assertThat(clientOverrideConfiguration.retryPolicy().get().throttlingBackoffStrategy(), is(BackoffStrategy.none()));

0 commit comments

Comments
 (0)