[ 
https://issues.apache.org/jira/browse/HADOOP-18708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17773741#comment-17773741
 ] 

ASF GitHub Bot commented on HADOOP-18708:
-----------------------------------------

ahmarsuhail commented on code in PR #6164:
URL: https://github.com/apache/hadoop/pull/6164#discussion_r1352852582


##########
hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/DefaultS3ClientFactory.java:
##########
@@ -109,11 +144,17 @@ public S3AsyncClient createS3AsyncClient(
         .thresholdInBytes(parameters.getMultiPartThreshold())
         .build();
 
-    return configureClientBuilder(S3AsyncClient.builder(), parameters, conf, 
bucket)
-        .httpClientBuilder(httpClientBuilder)
-        .multipartConfiguration(multipartConfiguration)
-        .multipartEnabled(parameters.isMultipartCopy())
-        .build();
+    S3AsyncClientBuilder s3AsyncClientBuilder =
+        configureClientBuilder(S3AsyncClient.builder(), parameters, conf, 
bucket).httpClientBuilder(
+            httpClientBuilder);
+
+    if (!parameters.isClientSideEncryptionEnabled()) {

Review Comment:
   We need to do this because currently if you try to do a ranged GET with 
multipart enabled, it fails. This is intentional, as the SDK team is working on 
adding "automatic multipart download" for a GET to the async client, and this 
capability is disabled till then.
   
   When we build the S3EncryptionClient we configure and pass in a 
S3AsyncClient. Under the hood, S3EC uses the S3Async client for all it's 
encryption related operations (eg: GET). And so if we pass in a client with 
multipartEnabled, all GETs will start failing.
   
   The impact of this that if you're using CSE, there's no multipart mode, so 
you copies become slower again.
   
   A workaround can be to create a new async client with multipart disabled. So 
we have two async clients, one with MPU enable, one with disabled. and share 
underlying HTTP client b/w the two async clients, so it shouldn't have too much 
of an impact.
   
   I'll make that change if required, once I have more clarity from SDK team on 
when ranged GETs become available in multipart mode. 
   





> AWS SDK V2 - Implement CSE
> --------------------------
>
>                 Key: HADOOP-18708
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18708
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>    Affects Versions: 3.4.0
>            Reporter: Ahmar Suhail
>            Priority: Major
>              Labels: pull-request-available
>
> S3 Encryption client for SDK V2 is now available, so add client side 
> encryption back in. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to