From 28bf290fccf396c951812e24ad819e3a5d2d5acb Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Mon, 2 Nov 2026 12:36:52 -0500 Subject: [PATCH] chore(bigtable): remove legacy session/channel config migration in ClientConfigurationManager --- .../util/ClientConfigurationManager.java | 24 --------- .../util/ClientConfigurationManagerTest.java | 50 ------------------- .../data/v2/stub/SessionDeadlineTest.java | 27 +++++----- 3 files changed, 15 insertions(+), 86 deletions(-) diff --git a/java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/util/ClientConfigurationManager.java b/java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/util/ClientConfigurationManager.java index 83d9f30a0df8..baf9ea2920fb 100644 --- a/java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/util/ClientConfigurationManager.java +++ b/java-bigtable/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/util/ClientConfigurationManager.java @@ -386,33 +386,9 @@ public void onClose(Status status, Metadata trailers) { return future; } - @SuppressWarnings("deprecation") private ClientConfiguration normalizeConfig(ClientConfiguration cfg) { ClientConfiguration.Builder builder = cfg.toBuilder(); - // TODO: remove this once server is updated - // Patch SessionPoolConfiguration (migrating LoadBalancingOptions) - if (!cfg.getSessionConfiguration().hasSessionPoolConfiguration()) { - builder - .getSessionConfigurationBuilder() - .clearLoadBalancingOptions() - .setSessionPoolConfiguration( - defaultConfig.getSessionConfiguration().getSessionPoolConfiguration().toBuilder() - .setLoadBalancingOptions(cfg.getSessionConfiguration().getLoadBalancingOptions()) - .build()); - } else { - // ignore LoadBalancing options when we migrated to SessionPoolConfig - builder.getSessionConfigurationBuilder().clearLoadBalancingOptions(); - } - // TODO: remove this once server is updated - // Patch ChannelPoolConfiguration - if (!cfg.getSessionConfiguration().hasChannelConfiguration()) { - builder - .getSessionConfigurationBuilder() - .setChannelConfiguration( - defaultConfig.getSessionConfiguration().getChannelConfiguration()); - } - // Patch debug tag level switch (cfg.getTelemetryConfiguration().getDebugTagLevel()) { case UNRECOGNIZED: diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/util/ClientConfigurationManagerTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/util/ClientConfigurationManagerTest.java index 7c6e4c54faf2..3c95df08facd 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/util/ClientConfigurationManagerTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/util/ClientConfigurationManagerTest.java @@ -31,7 +31,6 @@ import com.google.bigtable.v2.GetClientConfigurationRequest; import com.google.bigtable.v2.LoadBalancingOptions; import com.google.bigtable.v2.LoadBalancingOptions.LeastInFlight; -import com.google.bigtable.v2.LoadBalancingOptions.PeakEwma; import com.google.bigtable.v2.SessionClientConfiguration; import com.google.bigtable.v2.SessionClientConfiguration.ChannelPoolConfiguration.DirectAccessWithFallback; import com.google.bigtable.v2.SessionClientConfiguration.SessionPoolConfiguration; @@ -296,55 +295,6 @@ void testDisabledSessionsOverriddenBySysProp() assertThat(manager.areSessionsRequired()).isTrue(); } - @Deprecated - @Test - void testMigrateSessionPool() throws ExecutionException, InterruptedException { - ClientConfiguration defaultConfig = manager.getDefaultConfig(); - - // Override LoadBalancingOptions - LoadBalancingOptions loadBalancingOptions = - LoadBalancingOptions.newBuilder() - .setPeakEwma(PeakEwma.newBuilder().setRandomSubsetSize(0)) - .build(); - - ClientConfiguration.Builder legacyBuilder = defaultConfig.toBuilder(); - - // Enable sessions - legacyBuilder - .getSessionConfigurationBuilder() - .setSessionDiversionConfiguration( - SessionDiversionConfiguration.newBuilder() - .setGlobalDiversion( - SessionScopeDiversionConfiguration.newBuilder().setSessionLoad(0.1f))); - - // Now patch default config to be a legacy config - // During migration, LoadBalancingOptions are a toplevel config, so clear out the - // SessionPoolConfiguration and set the toplevel option - legacyBuilder - .getSessionConfigurationBuilder() - .setLoadBalancingOptions(loadBalancingOptions) - .clearSessionPoolConfiguration() - .clearChannelConfiguration(); - ClientConfiguration legacyCfg = legacyBuilder.build(); - - service.config.set(legacyCfg); - // Fetch initial config - ClientConfiguration resolvedConfig = manager.start().get(); - - // Make sure that SessionPoolConfiguration got patched with SessionPool & ChannelPool configs - // And ensure that the toplevel LoadBalancingOptions got migrated - ClientConfiguration.Builder expectedConfig = legacyCfg.toBuilder(); - expectedConfig - .getSessionConfigurationBuilder() - .clearLoadBalancingOptions() - .setSessionPoolConfiguration( - defaultConfig.getSessionConfiguration().getSessionPoolConfiguration().toBuilder() - .setLoadBalancingOptions(loadBalancingOptions)) - .setChannelConfiguration(defaultConfig.getSessionConfiguration().getChannelConfiguration()); - - assertThat(resolvedConfig).isEqualTo(expectedConfig.build()); - } - @Test void testSysPropOverride() throws Exception { manager.close(); diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/SessionDeadlineTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/SessionDeadlineTest.java index 0fe2401f45eb..3978207c9402 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/SessionDeadlineTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/SessionDeadlineTest.java @@ -26,12 +26,12 @@ import com.google.bigtable.v2.GetClientConfigurationRequest; import com.google.bigtable.v2.OpenSessionResponse; import com.google.bigtable.v2.PeerInfo; -import com.google.bigtable.v2.SessionClientConfiguration; import com.google.bigtable.v2.SessionDiversionConfiguration; import com.google.bigtable.v2.SessionRequest; import com.google.bigtable.v2.SessionResponse; import com.google.bigtable.v2.SessionScopeDiversionConfiguration; import com.google.cloud.bigtable.data.v2.BigtableDataSettings; +import com.google.cloud.bigtable.data.v2.internal.util.ClientConfigurationManager; import com.google.cloud.bigtable.data.v2.models.Query; import com.google.cloud.bigtable.data.v2.models.Row; import com.google.cloud.bigtable.data.v2.models.RowMutation; @@ -254,17 +254,20 @@ public void shutdown() { public void getClientConfiguration( GetClientConfigurationRequest request, StreamObserver responseObserver) { - responseObserver.onNext( - ClientConfiguration.newBuilder() - .setSessionConfiguration( - SessionClientConfiguration.newBuilder() - .setSessionDiversionConfiguration( - SessionDiversionConfiguration.newBuilder() - .setGlobalDiversion( - SessionScopeDiversionConfiguration.newBuilder() - .setSessionLoad(1))) - .build()) - .build()); + ClientConfiguration.Builder builder; + try { + builder = ClientConfigurationManager.loadDefault().toBuilder(); + } catch (IOException e) { + responseObserver.onError(e); + return; + } + builder + .getSessionConfigurationBuilder() + .setSessionDiversionConfiguration( + SessionDiversionConfiguration.newBuilder() + .setGlobalDiversion( + SessionScopeDiversionConfiguration.newBuilder().setSessionLoad(1))); + responseObserver.onNext(builder.build()); responseObserver.onCompleted(); }