feat(jdbc): add HttpTransportOptions timeout configuration#4089
feat(jdbc): add HttpTransportOptions timeout configuration#4089keshavdandeva wants to merge 4 commits intomainfrom
HttpTransportOptions timeout configuration#4089Conversation
Summary of ChangesHello @keshavdandeva, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request empowers users of the BigQuery JDBC driver with greater control over network communication by enabling the configuration of HTTP connection and read timeouts. This enhancement allows for fine-tuning the driver's behavior to better suit various network environments and performance requirements, preventing long-running or stalled connections from impacting application responsiveness. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request adds support for configuring HttpConnectTimeout and HttpReadTimeout in the BigQuery JDBC driver. The implementation is generally sound and follows existing patterns. However, I've identified a potential breaking change where a default 60-second timeout is applied to all connections, which could impact users with long-running queries. I've provided suggestions across two files to address this by applying timeouts only when explicitly configured by the user. Additionally, I've noted a minor gap in test coverage for the new functionality.
google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java
Show resolved
Hide resolved
...oud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java
Outdated
Show resolved
Hide resolved
...bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java
Show resolved
Hide resolved
| } | ||
|
|
||
| if (hasTimeoutConfig) { | ||
| httpTransportOptionsBuilder.setConnectTimeout( |
There was a problem hiding this comment.
I'd change this to set property only if it is provided, otherwise allow it to use httpTransport default value rather than overriding it
b/454382967
Adds support for configuring
HttpConnectTimeoutandHttpReadTimeoutin the BigQuery JDBC driver via connection properties or the JDBC URL. This allows users to control the connect and read timeouts for the underlying HTTP transport (default: 60,000ms)