Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add iceberg.jdbc-catalog.retryable-status-codes configuration property #24066

Merged

Conversation

asolovey
Copy link
Member

@asolovey asolovey commented Nov 8, 2024

Allows retrying additional, JDBC driver and database specific errors
such as Postgres status codes 57000,57P03,57P04 if using Postgres.

Add iceberg.jdbc-catalog.retryable-status-codes configuration property.

Description

Iceberg JDBC catalog uses internal connection pool which supports retrying transient
connection errors which improves Iceberg catalog resilience.

By default, only a limited set of status codes is supported: https://github.com/apache/iceberg/blob/main/core/src/main/java/org/apache/iceberg/jdbc/JdbcClientPool.java#L50

These codes are database-agnostic and do not include database-specific transient errors.

To configure additional status codes, Iceberg JDBC Catalog supports retryable_status_codes configuration
property: https://github.com/apache/iceberg/blob/main/core/src/main/java/org/apache/iceberg/jdbc/JdbcClientPool.java#L73

This PR adds this property to the Trino Iceberg catalog properties so it can be configured.

Additional context and related issues

Partially fixes #23095.

Release notes

(x) Release notes are required, with the following suggested text:

## Iceberg
* Add `iceberg.jdbc-catalog.retryable-status-codes` configuration property in JDBC catalog
 to allow configuring retryable status codes on JDBC connection errors.  ({issue}`23095`)

Copy link

cla-bot bot commented Nov 8, 2024

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@github-actions github-actions bot added docs iceberg Iceberg connector labels Nov 8, 2024
@ebyhr ebyhr self-requested a review November 8, 2024 03:18
Copy link
Member

@ebyhr ebyhr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you submit CLA?

@asolovey asolovey changed the title Add iceberg.jdbc-catalog.retryable-status-codes configuration property. Add iceberg.jdbc-catalog.retryable-status-codes configuration property Nov 8, 2024
@asolovey
Copy link
Member Author

asolovey commented Nov 8, 2024

Did you submit CLA?

Yes, I did, yesterday (11/07) so it may take a few days to get processed.

@asolovey asolovey force-pushed the iceberg-jdbc-catalog-retryable-status-codes branch from 0893180 to bc6d206 Compare November 12, 2024 04:17
Copy link

cla-bot bot commented Nov 12, 2024

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@asolovey asolovey force-pushed the iceberg-jdbc-catalog-retryable-status-codes branch from bc6d206 to 28e2ed3 Compare November 14, 2024 00:32
Copy link

cla-bot bot commented Nov 14, 2024

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@asolovey asolovey force-pushed the iceberg-jdbc-catalog-retryable-status-codes branch from 28e2ed3 to 886bf93 Compare November 14, 2024 22:38
@cla-bot cla-bot bot added the cla-signed label Nov 14, 2024
@asolovey asolovey force-pushed the iceberg-jdbc-catalog-retryable-status-codes branch from 886bf93 to 4954893 Compare November 15, 2024 14:27
@asolovey asolovey requested a review from ebyhr November 16, 2024 02:36
Allows retrying additional, JDBC driver and database specific errors
such as Postgres status codes `57000,57P03,57P04` if using Postgres.
@ebyhr ebyhr force-pushed the iceberg-jdbc-catalog-retryable-status-codes branch from 4954893 to 8e25e5c Compare November 16, 2024 03:56
@ebyhr ebyhr merged commit 152ec42 into trinodb:master Nov 16, 2024
5 of 15 checks passed
@github-actions github-actions bot added this to the 465 milestone Nov 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging this pull request may close these issues.

Iceberg JDBC catalog config properties not available in Trino
2 participants