From 1df093e6933d4472506f46dbe8839d563f56352e Mon Sep 17 00:00:00 2001 From: Sri Harsha CH Date: Wed, 13 Nov 2024 07:29:13 +0000 Subject: [PATCH 1/2] chore(spanner): support multiplexed session for rw transactions in executor --- .../cloud/executor/spanner/CloudClientExecutor.java | 11 ++++++++--- .../cloud/spanner/SessionPoolOptionsHelper.java | 8 ++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/google-cloud-spanner-executor/src/main/java/com/google/cloud/executor/spanner/CloudClientExecutor.java b/google-cloud-spanner-executor/src/main/java/com/google/cloud/executor/spanner/CloudClientExecutor.java index 481d95884ce..8363e0d91ce 100644 --- a/google-cloud-spanner-executor/src/main/java/com/google/cloud/executor/spanner/CloudClientExecutor.java +++ b/google-cloud-spanner-executor/src/main/java/com/google/cloud/executor/spanner/CloudClientExecutor.java @@ -829,10 +829,15 @@ private synchronized Spanner getClient(long timeoutSeconds, boolean useMultiplex com.google.cloud.spanner.SessionPoolOptions.Builder poolOptionsBuilder = com.google.cloud.spanner.SessionPoolOptions.newBuilder(); - SessionPoolOptionsHelper.setUseMultiplexedSession( - com.google.cloud.spanner.SessionPoolOptions.newBuilder(), useMultiplexedSession); + SessionPoolOptionsHelper.setUseMultiplexedSession(poolOptionsBuilder, useMultiplexedSession); SessionPoolOptionsHelper.setUseMultiplexedSessionBlindWrite( - com.google.cloud.spanner.SessionPoolOptions.newBuilder(), useMultiplexedSession); + poolOptionsBuilder, useMultiplexedSession); + SessionPoolOptionsHelper.setUseMultiplexedSessionForRW( + poolOptionsBuilder, useMultiplexedSession); + LOGGER.log( + Level.INFO, + String.format( + "Using multiplexed sessions for read-write transactions: %s", useMultiplexedSession)); com.google.cloud.spanner.SessionPoolOptions sessionPoolOptions = poolOptionsBuilder.build(); // Cloud Spanner Client does not support global retry settings, // Thus, we need to add retry settings to each individual stub. diff --git a/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java b/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java index dafaa4a1f31..41cc48f458e 100644 --- a/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java +++ b/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java @@ -38,4 +38,12 @@ public static SessionPoolOptions.Builder setUseMultiplexedSessionBlindWrite( return sessionPoolOptionsBuilder.setUseMultiplexedSessionBlindWrite( useMultiplexedSessionBlindWrite); } + + // TODO: Remove when multiplexed session for read write is released. + public static SessionPoolOptions.Builder setUseMultiplexedSessionForRW( + SessionPoolOptions.Builder sessionPoolOptionsBuilder, + boolean useMultiplexedSessionForRW) { + return sessionPoolOptionsBuilder.setUseMultiplexedSessionForRW( + useMultiplexedSessionForRW); + } } From f074f0cc3ce6fbcf1cb8f512e837f9339efa9e13 Mon Sep 17 00:00:00 2001 From: Sri Harsha CH Date: Wed, 13 Nov 2024 07:34:20 +0000 Subject: [PATCH 2/2] chore(spanner): lint fix --- .../com/google/cloud/spanner/SessionPoolOptionsHelper.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java b/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java index 41cc48f458e..8e085947711 100644 --- a/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java +++ b/google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java @@ -41,9 +41,7 @@ public static SessionPoolOptions.Builder setUseMultiplexedSessionBlindWrite( // TODO: Remove when multiplexed session for read write is released. public static SessionPoolOptions.Builder setUseMultiplexedSessionForRW( - SessionPoolOptions.Builder sessionPoolOptionsBuilder, - boolean useMultiplexedSessionForRW) { - return sessionPoolOptionsBuilder.setUseMultiplexedSessionForRW( - useMultiplexedSessionForRW); + SessionPoolOptions.Builder sessionPoolOptionsBuilder, boolean useMultiplexedSessionForRW) { + return sessionPoolOptionsBuilder.setUseMultiplexedSessionForRW(useMultiplexedSessionForRW); } }