Commit 2ca06f5
feat(rest): add sigv4 retry configuration defaults (#3063)
<!-- Closes #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>1 parent ca807ae commit 2ca06f5
File tree
2 files changed
+77
-3
lines changed- pyiceberg/catalog/rest
- tests/catalog
2 files changed
+77
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
60 | 68 | | |
61 | 69 | | |
62 | 70 | | |
| |||
78 | 86 | | |
79 | 87 | | |
80 | 88 | | |
81 | | - | |
| 89 | + | |
82 | 90 | | |
83 | 91 | | |
84 | 92 | | |
| |||
229 | 237 | | |
230 | 238 | | |
231 | 239 | | |
| 240 | + | |
| 241 | + | |
232 | 242 | | |
233 | 243 | | |
234 | 244 | | |
| |||
710 | 720 | | |
711 | 721 | | |
712 | 722 | | |
713 | | - | |
714 | 723 | | |
| 724 | + | |
| 725 | + | |
715 | 726 | | |
| 727 | + | |
716 | 728 | | |
717 | 729 | | |
718 | 730 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
529 | 531 | | |
530 | 532 | | |
531 | 533 | | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
532 | 594 | | |
533 | 595 | | |
534 | 596 | | |
| |||
0 commit comments