Skip to content
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

Retry initiateMultipartUpload #15476

Merged
merged 2 commits into from
Dec 22, 2022
Merged

Retry initiateMultipartUpload #15476

merged 2 commits into from
Dec 22, 2022

Conversation

sopel39
Copy link
Member

@sopel39 sopel39 commented Dec 20, 2022

# Hive/Iceberg/Delta
* Improve resilience of insert queries. ({issue}`issuenumber`)

@findepi
Copy link
Member

findepi commented Dec 21, 2022

cc @alexjo2144 @findinpath @homar

@alexjo2144
Copy link
Member

Does this happen often? Curious what kind of errors from AWS are you seeing

@findinpath
Copy link
Contributor

Could you please add some context / description to this fix?
It would be helpful to know in which situations does the initiation of the multipart upload request fail.

@sopel39
Copy link
Member Author

sopel39 commented Dec 22, 2022

The failure can happen during scaled insert when there is high pressure on S3. Usually these are timeout exceptions

@sopel39 sopel39 merged commit 1bd3f73 into trinodb:master Dec 22, 2022
@sopel39 sopel39 deleted the ks/retry branch December 22, 2022 09:29
@sopel39 sopel39 mentioned this pull request Dec 22, 2022
@github-actions github-actions bot added this to the 404 milestone Dec 22, 2022
@findinpath
Copy link
Contributor

Usually these are timeout exceptions

Why don't we add a retry mechanism for the specific case of timeouts then?

@sopel39
Copy link
Member Author

sopel39 commented Dec 22, 2022

@findinpath this

                            if (e instanceof AmazonS3Exception) {
                                switch (((AmazonS3Exception) e).getStatusCode()) {
                                    case HTTP_FORBIDDEN, HTTP_NOT_FOUND, HTTP_BAD_REQUEST -> throw new UnrecoverableS3OperationException(bucket, key, e);
                                }
                            }

is what you will find in other places that retry S3 calls (in one form or other)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

7 participants