Class SdkAdvancedAsyncClientOption<T>
- Type Parameters:
T- The type of value associated with the option.
ClientAsyncConfiguration.Builder.advancedOption(SdkAdvancedAsyncClientOption, Object).
These options are usually not required outside of testing or advanced libraries, so most users should not need to configure them.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final SdkAdvancedAsyncClientOption<Boolean> Advanced configuration for the native S3CrtAsyncClient, which only applies for file-based multipart uploads.static final SdkAdvancedAsyncClientOption<Executor> Configure theExecutorthat should be used to complete theCompletableFuturethat is returned by the async service client. -
Method Summary
Methods inherited from class software.amazon.awssdk.utils.AttributeMap.Key
convertValue, toString
-
Field Details
-
FUTURE_COMPLETION_EXECUTOR
Configure theExecutorthat should be used to complete theCompletableFuturethat is returned by the async service client. By default, this is a dedicated, per-clientThreadPoolExecutorthat is managed by the SDK.The configured
Executorwill be invoked by the async HTTP client's I/O threads (e.g., EventLoops), which must be reserved for non-blocking behavior. Blocking an I/O thread can cause severe performance degradation, including across multiple clients, as clients are configured, by default, to share a single I/O thread pool (e.g., EventLoopGroup).You should typically only want to customize the future-completion
Executorfor a few possible reasons:- You want more fine-grained control over the
ThreadPoolExecutorused, such as configuring the pool size or sharing a single pool between multiple clients. - You want to add instrumentation (i.e., metrics) around how the
Executoris used.
We strongly discourage using
Runnable::run, which executes the future-completion directly from within the I/O thread because it may block the I/O thread and cause deadlock, especially if you are sending another SDK request in theCompletableFuturechain since the SDK may perform blocking calls in some cases. - You want more fine-grained control over the
-
CRT_MEMORY_BUFFER_DISABLED
Advanced configuration for the native S3CrtAsyncClient, which only applies for file-based multipart uploads. By default, the S3CrtAsyncClient will skip buffering parts in memory for large objects.When set to false, the client will not buffer parts for large object, but will buffer parts for smaller objects . When set to true, the client will skip buffering parts even for small objects. Parts for large objects are never buffered.
Default to
false.
-