From 4a9dd574ef183541ded622f50253599eab2a7c87 Mon Sep 17 00:00:00 2001 From: Meeral Date: Tue, 18 Jun 2024 19:03:34 +0000 Subject: [PATCH 1/6] mend --- .../v2/stub/EnhancedBigtableStubSettings.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index f07a8fb7fc..cecb6c7254 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -100,6 +100,7 @@ public class EnhancedBigtableStubSettings extends StubSettings IDEMPOTENT_RETRY_CODES = ImmutableSet.of(Code.DEADLINE_EXCEEDED, Code.UNAVAILABLE); @@ -345,7 +346,16 @@ public boolean getEnableRetryInfo() { /** Returns a builder for the default ChannelProvider for this service. */ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { - return BigtableStubSettings.defaultGrpcTransportProviderBuilder() + Boolean isDirectpathEnabled = Boolean.parseBoolean(System.getenv(CBT_ENABLE_DIRECTPATH)); + + InstantiatingGrpcChannelProvider.Builder grpcTransportProviderBuilder = + BigtableStubSettings.defaultGrpcTransportProviderBuilder(); + if (isDirectpathEnabled) { + // Attempts direct access to CBT service over gRPC to improve throughput, + // whether the attempt is allowed is totally controlled by service owner. + grpcTransportProviderBuilder.setAttemptDirectPathXds().setAttemptDirectPath(true); + } + return grpcTransportProviderBuilder .setChannelPoolSettings( ChannelPoolSettings.builder() .setInitialChannelCount(10) @@ -356,10 +366,7 @@ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProvi .setMaxInboundMessageSize(MAX_MESSAGE_SIZE) .setKeepAliveTime(Duration.ofSeconds(30)) // sends ping in this interval .setKeepAliveTimeout( - Duration.ofSeconds(10)) // wait this long before considering the connection dead - // Attempts direct access to CBT service over gRPC to improve throughput, - // whether the attempt is allowed is totally controlled by service owner. - .setAttemptDirectPath(true); + Duration.ofSeconds(10)); // wait this long before considering the connection dead } @SuppressWarnings("WeakerAccess") @@ -373,6 +380,11 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde .setJwtEnabledScopes(JWT_ENABLED_SCOPES); } + @Override + public String getServiceName() { + return "bigtable"; + } + /** * Returns the object with the settings used for calls to ReadRows. * From c7802d4e6d1beb0b6dadd82858e54c4605fa6367 Mon Sep 17 00:00:00 2001 From: Meeral Date: Tue, 18 Jun 2024 20:04:14 +0000 Subject: [PATCH 2/6] mend --- .../bigtable/data/v2/stub/EnhancedBigtableStubSettings.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index cecb6c7254..84aa96e694 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -380,11 +380,6 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde .setJwtEnabledScopes(JWT_ENABLED_SCOPES); } - @Override - public String getServiceName() { - return "bigtable"; - } - /** * Returns the object with the settings used for calls to ReadRows. * From 76c4bdb304ef75b8cc054961e7cf4ccb97746390 Mon Sep 17 00:00:00 2001 From: Meeral Date: Wed, 26 Jun 2024 16:40:31 +0000 Subject: [PATCH 3/6] address code comments --- google-cloud-bigtable/pom.xml | 1 + .../data/v2/stub/EnhancedBigtableStubSettings.java | 1 + .../google/cloud/bigtable/test_helpers/env/CloudEnv.java | 7 ------- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 08b8135714..df18a068da 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -498,6 +498,7 @@ ${bigtable.enable-grpc-logs} ${project.build.directory}/test-grpc-logs/directpath-it REQUIRE_DIRECT_PATH + true diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index 8663305d38..0ef63f60cc 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -100,6 +100,7 @@ public class EnhancedBigtableStubSettings extends StubSettings IDEMPOTENT_RETRY_CODES = ImmutableSet.of(Code.DEADLINE_EXCEEDED, Code.UNAVAILABLE); diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java index d10fd5ea5d..d7b9523b83 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/CloudEnv.java @@ -168,21 +168,18 @@ private static void injectTracingCookie( private void configureConnection(StubSettings.Builder stubSettings) { // Build an remote address restricting interceptor final ClientInterceptor interceptor; - boolean enableDirectPath = false; switch (getConnectionMode()) { case DEFAULT: // nothing special return; case REQUIRE_DIRECT_PATH: - enableDirectPath = true; interceptor = buildRemoteAddrInterceptor( "DirectPath IPv4 or IPv6", Predicates.or(DIRECT_PATH_IPV4_MATCHER, DIRECT_PATH_IPV6_MATCHER)); break; case REQUIRE_DIRECT_PATH_IPV4: - enableDirectPath = true; interceptor = buildRemoteAddrInterceptor("DirectPath IPv4", Predicates.or(DIRECT_PATH_IPV4_MATCHER)); break; @@ -205,10 +202,6 @@ private void configureConnection(StubSettings.Builder stubSettings) { final ApiFunction oldConfigurator = channelProvider.getChannelConfigurator(); - if (enableDirectPath) { - channelProvider.setAttemptDirectPath(true).setAttemptDirectPathXds(); - } - @SuppressWarnings("rawtypes") final ApiFunction newConfigurator = new ApiFunction() { From 825d497a3e4b73d91ea5450d45875f11b1be677f Mon Sep 17 00:00:00 2001 From: Meeral Date: Wed, 26 Jun 2024 18:29:14 +0000 Subject: [PATCH 4/6] formatting fix --- .../bigtable/data/v2/stub/EnhancedBigtableStubSettings.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index 0ef63f60cc..97ed177c47 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -100,7 +100,7 @@ public class EnhancedBigtableStubSettings extends StubSettings IDEMPOTENT_RETRY_CODES = ImmutableSet.of(Code.DEADLINE_EXCEEDED, Code.UNAVAILABLE); @@ -348,7 +348,6 @@ public boolean getEnableRetryInfo() { /** Returns a builder for the default ChannelProvider for this service. */ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { Boolean isDirectpathEnabled = Boolean.parseBoolean(System.getenv(CBT_ENABLE_DIRECTPATH)); - InstantiatingGrpcChannelProvider.Builder grpcTransportProviderBuilder = BigtableStubSettings.defaultGrpcTransportProviderBuilder(); if (isDirectpathEnabled) { From 37c11a96ace40bf0fdaa5540e9cd05e26b0e8fee Mon Sep 17 00:00:00 2001 From: Meeral Date: Fri, 28 Jun 2024 15:21:13 +0000 Subject: [PATCH 5/6] fixed pom to set environment variable and not a system property --- google-cloud-bigtable/pom.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index df18a068da..0c26a8b333 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -498,8 +498,10 @@ ${bigtable.enable-grpc-logs} ${project.build.directory}/test-grpc-logs/directpath-it REQUIRE_DIRECT_PATH - true + + true + com.google.cloud.bigtable.data.v2.it.*IT From ccfa72cc423ba167a5d76a661aa4af2ebb790daa Mon Sep 17 00:00:00 2001 From: Meeral Date: Fri, 28 Jun 2024 16:05:18 +0000 Subject: [PATCH 6/6] tagged myself in todo,added environment variable to directpath ipv4 only profile --- google-cloud-bigtable/pom.xml | 3 +++ .../bigtable/data/v2/stub/EnhancedBigtableStubSettings.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 0c26a8b333..1a9d1ab4e4 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -578,6 +578,9 @@ ${project.build.directory}/test-grpc-logs/directpath-ipv4only-it REQUIRE_DIRECT_PATH_IPV4 + + true + com.google.cloud.bigtable.data.v2.it.*IT diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index 97ed177c47..5a9e03cf10 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -100,7 +100,7 @@ public class EnhancedBigtableStubSettings extends StubSettings IDEMPOTENT_RETRY_CODES = ImmutableSet.of(Code.DEADLINE_EXCEEDED, Code.UNAVAILABLE);