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]

Reply via email to