Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Retry Behavior for SigV4Adapter in REST Catalog

Đang mở
#3,008 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
55/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
aws, python
Lĩnh vực
api, cloud

Hướng nghiên cứu

So sánh thiết lập retry của GlueCatalog trong pyiceberg/catalog/glue.py#L331-L348 với thiết lập REST SigV4Adapter trong pyiceberg/catalog/rest/init.py#L684-L694, sau đó đọc hướng dẫn retry của botocore được liên kết trong issue. Kiểm tra cách cung cấp một phiên botocore tùy chỉnh thông qua các thuộc tính của catalog. Công việc được xem là hoàn tất khi các yêu cầu REST có chính sách retry mặc định an toàn đã được thống nhất và hành vi nhất quán với Glue khi bị throttling và trong các workload song song.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Feature Request / Improvement

Hi team,

I’ve recently migrated to AWS S3 Tables and switched from using the GlueCatalog to the REST catalog. After updating the catalog configuration, everything works correctly in local, single‑process scenarios. However, I’m encountering intermittent failures when scaling out to multiple Dask workers making parallel requests.
Specifically, I’m seeing occasional ThrottlingException errors coming from AWS SigV4‑signed requests. Once throttling occurs, subsequent requests sometimes fail with:
requests.exceptions.HTTPError: 403 Client Error

My understanding is that throttled SigV4 signing attempts can lead to follow‑on request failures, resulting in unauthorized S3 operations. According to AWS’s recommendation for handling throttling on signed requests, retry configuration should be applied via botocore: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/retries.html

While reviewing the PyIceberg implementation, I noticed:

This creates an inconsistency where switching from Glue to REST results in weaker retry behavior, which becomes visible under parallel load.

Question / Proposal

Should the REST catalog align its default retry behavior with what GlueCatalog already applies?
At present, users can manually configure retry settings by supplying a custom botocore session via catalog properties, but I am yet to test if this works. It seems reasonable and more consistent for the REST catalog to provide safe defaults, especially since SigV4Adapter is now a common path for AWS S3 Tables.

Matching (or at least approaching) the GlueCatalog’s retry policy would provide the following benefits:

  • Avoid intermittent throttling‑triggered failures in distributed workloads
  • Improve parity between Glue and REST behavior
  • Reduce the configuration burden on users switching to REST for AWS‑backed tables

Happy to discuss or test any proposed changes. Thanks for your work on the project!

Ngôn ngữ chính
Python
Star
1.1k
Fork
589
Merge trung bình
2 ngày 2 giờ
Pull request đã merge (30 ngày)
70

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/iceberg-python

Tất cả issue của apache/iceberg-python

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.