raunaqmorarka opened a new pull request, #17710:
URL: https://github.com/apache/iceberg/pull/17710
AWS services can signal throttling with a 400 status instead of 429. The AWS
Glue Iceberg REST endpoint returns HTTP 400 with header `x-amzn-errortype:
ThrottlingException` and body `{"message":"Rate exceeded"}` under load. The
client maps that to a non-retryable `BadRequestException`, so concurrent
commits fail instead of backing off.
This change makes `ExponentialHttpRequestRetryStrategy` retry a response
whose `x-amzn-errortype` header reports a throttling error, using the existing
exponential backoff and max-retries bound. A throttled request was rejected
before execution, so retrying is safe for non-idempotent requests as well.
Observed against `https://glue.us-east-2.amazonaws.com/iceberg` with
concurrent table commits and reproduced with a burst of signed loadTable
requests (448 of 1800 throttled, all HTTP 400 with the header above).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]