Skip to content

Adaptive retry for Glue Catalog calls to fix Glue throttling #1294

Closed

Description

@mark-major

Feature Request / Improvement

I have experienced throttling exceptions when multiple nodes are reading and writing an Iceberg table with a Glue catalog. I have wrapped my library calls in a retry wrapper, but this functionality should be implemented in the library instead.

I would add an option to the Glue catalog constructor to define the maximum number of retries and set the boto retry policy to standard instead of the default legacy. Standard is adding jitter to the retry interval which would ensure independent processes won't block each other (Thundering herd problem)

Activity

  1. Fokko commented on Nov 5, 2024

    @Fokko
    Contributor

    Hey @mark-major thanks for jumping in here. I see that we only added retries to the REST catalog so far. Having this for the Glue catalog would be a great addition 👍

  2. mark-major commented on Nov 5, 2024

    @mark-major
    ContributorAuthor

    I'm happy to work on this if I have some time.

  3. Fokko commented on Nov 5, 2024

    @Fokko
    Contributor

    That would be great, happy to review! 🙌

  4. kevinjqliu commented on Nov 6, 2024

    @kevinjqliu
    Contributor

    we use boto3 to create the glue client

    looks like it has some built-in retry mechanism
    https://boto3.amazonaws.com/v1/documentation/api/latest/guide/retries.html#configuring-a-retry-mode

  5. mark-major commented on Nov 6, 2024

    @mark-major
    ContributorAuthor

    @kevinjqliu Yes, we'll need the standard retry mode and the ability to configure the max attempts.

  6. mark-major commented on Nov 8, 2024

    @mark-major
    ContributorAuthor

    PR #1307 is opened

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions