-
Notifications
You must be signed in to change notification settings - Fork 132
feat: Allow JDBC to configure directpath for connection #3929
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
Conversation
google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java
Outdated
Show resolved
Hide resolved
google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/SpannerPool.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@@ -112,7 +112,7 @@ public ITDirectPathFallback() { | |||
public void setup() { | |||
assume() | |||
.withMessage("DirectPath integration tests can only run against DirectPathEnv") | |||
.that(Boolean.getBoolean(ATTEMPT_DIRECT_PATH)) | |||
.that(Boolean.getBoolean(ENABLE_DIRECT_ACCESS)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe for a follow-up PR; I think that this will always return false, as we are parsing the string spanner.enable_direct_access
as a boolean. Something similar was also true before this change, so I don't think we are breaking anything, but I doubt that this does what is intended to do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. We should do System.getProperty
. I will raise a separate PR to fix this.
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `6.95.1` -> `6.96.0` | | [com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.29.2` -> `2.30.0` | | [com.squareup.okio:okio-fakefilesystem](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.13.0` -> `3.14.0` | | [com.squareup.okio:okio](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.13.0` -> `3.14.0` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `1.50.0` -> `1.50.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.71` -> `2.31.73` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.71` -> `2.31.73` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.71` -> `2.31.73` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.71` -> `2.31.73` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.71` -> `2.31.73` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.71` -> `2.31.73` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.71` -> `2.31.73` | --- ### Release Notes <details> <summary>googleapis/java-spanner (com.google.cloud:google-cloud-spanner)</summary> ### [`v6.96.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6960-2025-06-27) ##### Features - Allow JDBC to configure directpath for connection ([#​3929](googleapis/java-spanner#3929)) ([d754f1f](googleapis/java-spanner@d754f1f)) - Support getOrNull and getOrDefault in Struct ([#​3914](googleapis/java-spanner#3914)) ([1dc5a3e](googleapis/java-spanner@1dc5a3e)) - Use multiplexed sessions for read-only transactions ([#​3917](googleapis/java-spanner#3917)) ([37fdc27](googleapis/java-spanner@37fdc27)) ##### Bug Fixes - Allow zero durations to be set for connections ([#​3916](googleapis/java-spanner#3916)) ([43ea4fa](googleapis/java-spanner@43ea4fa)) ##### Documentation - Add snippet for Repeatable Read configuration at client and transaction ([#​3908](googleapis/java-spanner#3908)) ([ff3d212](googleapis/java-spanner@ff3d212)) - Update SpannerSample.java to align with best practices ([#​3625](googleapis/java-spanner#3625)) ([7bfc62d](googleapis/java-spanner@7bfc62d)) </details> <details> <summary>googleapis/java-datastore (com.google.cloud:google-cloud-datastore)</summary> ### [`v2.30.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2300-2025-06-26) ##### Features - Enable grpc configurator for client-side tracing ([#​1886](googleapis/java-datastore#1886)) ([97004c8](googleapis/java-datastore@97004c8)) ##### Dependencies - Update dependency com.google.cloud:gapic-libraries-bom to v1.60.0 ([#​1799](googleapis/java-datastore#1799)) ([bf2a33c](googleapis/java-datastore@bf2a33c)) - Update dependency com.google.cloud:sdk-platform-java-config to v3.50.0 ([#​1897](googleapis/java-datastore#1897)) ([a8d99cd](googleapis/java-datastore@a8d99cd)) - Update googleapis/sdk-platform-java action to v2.59.1 ([#​1880](googleapis/java-datastore#1880)) ([4fb9929](googleapis/java-datastore@4fb9929)) - Update googleapis/sdk-platform-java action to v2.60.0 ([#​1898](googleapis/java-datastore#1898)) ([0921f86](googleapis/java-datastore@0921f86)) </details> <details> <summary>square/okio (com.squareup.okio:okio-fakefilesystem)</summary> ### [`v3.14.0`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3140) *2025-06-28* - Upgrade: \[kotlinx-datetime 0.7.0]\[datetime\_0\_7\_0]. This impacts the `okio-fakefilesystem` artifact only. This is a binary-incompatible backwards-incompatible change that cannot co-exist with previous releases of `okio-fakefilesystem`! If you observe a `NoSuchMethodError` calling `FakeFileSystem.init`, update the calling code to this release (or newer) and recompile. We don't like imposing backwards-incompatible changes like this on you and do so regretfully. </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.50.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.50.1): 1.50.1 ### Components #### Build & Tooling - ✨ Migrate publishing to Maven Central Portal ([#​9054](DataDog/dd-trace-java#9054) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - 🐛 Drop Baggage when `TracePropagationBehaviorExtract=IGNORE` ([#​9052](DataDog/dd-trace-java#9052) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer public API - 🐛 Fix ArrayIndexOutOfBoundsException in PercentEscaper ([#​9050](DataDog/dd-trace-java#9050) - [@​mhlidd](https://github.com/mhlidd)) ### Instrumentations #### Akka instrumentation - 🐛 Fix NPE in akka-http and pekko-http integrations ([#​9049](DataDog/dd-trace-java#9049) - [@​mcculls](https://github.com/mcculls)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: e80867de3af2534eca79fe17a33f5c76801bcd6a
Description:
Directpath allows GCP VM to connect to Spanner directly instead of going through public Google frontend. It improves the performance of the client library since all the requests are directly flowing to Spanner directly.
If client workload is deployed in non GCP VM, directpath will not work. it will fallback to connecting to Google public frondend.
In JDBC, we will be providing the support where customers can add the property enableDirectAccess=true which will enable directpath for the connection.