feat(rest): add sigv4 retry configuration defaults#3063
feat(rest): add sigv4 retry configuration defaults#3063kevinjqliu merged 8 commits intoapache:mainfrom
Conversation
Fokko
left a comment
There was a problem hiding this comment.
Seems reasonable, thanks @mrutunjay-kinagi for working on this 🙌
@Fokko Thank you 🚀 |
|
@kevinjqliu @Fokko Thank you 🚀 |
<!-- Closes apache#3008 --> # Rationale for this change When REST catalog uses SigV4 signing, retries were not configured on the mounted adapter. This change adds explicit retry defaults for signed REST requests and makes retry count configurable. Changes: - Added `rest.sigv4.max-retries` catalog property. - Default retries set to 10 attempts. - Retries configured for idempotent methods (`GET`, `HEAD`, `OPTIONS`) and common throttling/transient codes (`429`, `500`, `502`, `503`, `504`). ## Are these changes tested? Yes. - Added `test_sigv4_adapter_default_retry_config`. - Added `test_sigv4_adapter_override_retry_config`. - Verified with targeted pytest run. ## Are there any user-facing changes? Yes. - New optional REST catalog property: `rest.sigv4.max-retries`. - Improved resilience for throttling/transient HTTP failures on SigV4-enabled REST catalogs. --------- Co-authored-by: Mrutunjay Kinagi <you@example.com> Co-authored-by: Kevin Liu <kevinjqliu@users.noreply.github.com> Co-authored-by: Kevin Liu <kevin.jq.liu@gmail.com>
|
I understand the preference for simplicity here, but it seems that this current implementation leaves all https://github.com/urllib3/urllib3/blob/2.6.3/src/urllib3/util/retry.py#L158 In the case of the endpoint returning responses such as (Happy to open a separate issue and potentially even PR for this, but this seemed like the most appropriate place to comment initially.) |
Rationale for this change
When REST catalog uses SigV4 signing, retries were not configured on the mounted adapter. This change adds explicit retry defaults for signed REST requests and makes retry count configurable.
Changes:
rest.sigv4.max-retriescatalog property.GET,HEAD,OPTIONS) and common throttling/transient codes (429,500,502,503,504).Are these changes tested?
Yes.
test_sigv4_adapter_default_retry_config.test_sigv4_adapter_override_retry_config.Are there any user-facing changes?
Yes.
rest.sigv4.max-retries.