| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
There was a problem hiding this comment.
This pull request introduces significant changes to the gRPC-GCP library, including the addition of GcpClientCall, GcpManagedChannel, GcpMultiEndpointChannel, and related configuration and utility classes to support advanced channel management, affinity, and multi-endpoint routing. It also updates the project dependencies in pom.xml. My feedback highlights concerns regarding the use of an unbounded thread pool for state notifications, which could lead to resource exhaustion, and suggests explicitly managing the version of the newly added auto-value-annotations dependency to ensure build reproducibility.
Sorry, something went wrong.
| private final ExecutorService stateNotificationExecutor = | ||
| Executors.newCachedThreadPool( | ||
| GcpThreadFactory.newThreadFactory("gcp-mc-state-notifications-%d")); |
There was a problem hiding this comment.
Using Executors.newCachedThreadPool() for state notifications can lead to resource exhaustion under high load. Consider using a bounded thread pool or a shared executor service.
References
Sorry, something went wrong.
|
It seems you're copying the code from grpc-gcp to google-cloud-spanner. I'm afraid this will cause many NoSuchMethodError or NoClassDefFoundError going forward. https://jlbp.dev/JLBP-5 "Do not include a class in more than one classpath entry" The right way is create grpc-gcp module with the same group ID and artifact ID as before. Maven and Gradle ensure that only one version of grpc-gcp artifact exists in the class path. |
Sorry, something went wrong.
|
@suztomo You're right. I switched this from vendoring classes into google-cloud-spanner to a local grpc-gcp module with the same com.google.cloud:grpc-gcp coordinates, and restored google-cloud-spanner to depend on that artifact. That avoids duplicate-classpath issues while still allowing local iteration. |
Sorry, something went wrong.
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | ||
| <github.global.server>github</github.global.server> | ||
| <site.installationModule>google-cloud-spanner-parent</site.installationModule> | ||
| <grpc-gcp.version>1.9.3-SNAPSHOT</grpc-gcp.version> |
There was a problem hiding this comment.
This line should be managed by Release Please.
I believe there's one in sdk-platform-java/java-shared-dependencies.
Sorry, something went wrong.
|
Let me merge #12746 first to make a releasable source tree and avoid unexpected unknown problem due to grpc-gcp. (com.google.cloud:grpc-gcp:1.9.2 already exists in Maven Central) |
Sorry, something went wrong.
|
There are actually more things you need to consider, such as importing Git history and setting up CIs. Mike is the best contact. @meltsufin Would you help Rahul about how they release grpc-gcp (currently at https://github.com/GoogleCloudPlatform/grpc-gcp-java) going forward? |
Sorry, something went wrong.
|
Are you trying to migrate the grpc-gcp repo to the monorepo here? |
Sorry, something went wrong.
|
@meltsufin yes please help us to complete migration. |
Sorry, something went wrong.
I responded by email. |
Sorry, something went wrong.
|
Closing this in favor of #13184 |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Summary
This change vendors the grpc-gcp library directly into google-cloud-spanner so local grpc-gcp changes can be used in java-spanner without publishing a Maven snapshot first.
What changed
Why
Today, making grpc-gcp changes available to java-spanner requires:
That slows down iteration. Vendoring the library into google-cloud-spanner makes local development and testing of grpc-gcp changes possible in a single repo without relying on a published Maven artifact.