fix(bigtable): disable dynamic channel pool by default and raise default pool size to 10#19945
Merged
Merged
Conversation
…ult pool size to 10 Disable dynamic channel pool scaling by default and bump the default gRPC connection pool size from 4 to 10. These mitigate steady heap growth caused by the upstream gRPC-Go xDS client memory leak: scale events churn DirectPath-xDS connections often enough to expose the leak, and the prior default of 4 connections amplified the problem under load. The dynamic pool can still be opted into by constructing a DynamicChannelPoolConfig with Enabled: true. ClientConfig.DisableDynamicChannelPool keeps its existing semantics so users who already opt out are unaffected. See #14582.
Contributor
There was a problem hiding this comment.
Code Review
This pull request disables dynamic channel pool scaling by default to mitigate a memory leak issue in the upstream gRPC-Go xDS client. To compensate, the default GRPC connection pool size in the client is increased from 4 to 10. A review comment suggests using the defaultBigtableConnPoolSize constant instead of hardcoding the value 10 to maintain consistency and avoid duplication.
…RPC pool size Use the existing defaultBigtableConnPoolSize constant instead of hardcoding 10, to avoid duplication and keep the default in one place.
nimf
approved these changes
Jun 10, 2026
bhshkh
added a commit
that referenced
this pull request
Jun 10, 2026
PR created by the Librarian CLI to initialize a release. Merging this PR will auto trigger a release. Librarian Version: v0.20.0 Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-go@sha256:b7e38e80d677dc6b7266896bb99a33fa62348d3e39d7b8f2f6423e7dc4b35a60 <details><summary>bigtable: v1.49.0</summary> ## [v1.49.0](bigtable/v1.48.0...bigtable/v1.49.0) (2026-06-10) ### Features * enable new auth library and remove async refresh (#19943) ([0d3697b](0d3697b2)) * add traffic diverter and table shim for bigtable (#14633) ([2f3c918](2f3c9184)) * add virtual RPC descriptors (#14648) ([5eedda1](5eedda18)) * add opensession descriptors for bigtable (#14647) ([8968f4f](8968f4fd)) * update API sources and regenerate (#14701) ([a9b7921](a9b79215)) ### Bug Fixes * retry unexpected EOF errors (#13157) ([2b4ac42](2b4ac429)) * disable dynamic channel pool by default and raise default pool size to 10 (#19945) ([5ddf8d4](5ddf8d46)) * raise default connection-recycler MaxAge to 7 days (#19940) ([a7959ef](a7959efc)) </details>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DefaultDynamicChannelPoolConfig().Enabledflipped fromtruetofalse).defaultBigtableConnPoolSizeand compensate for the loss of dynamic scale-up.Why
Mitigates steady heap growth caused by the upstream gRPC-Go xDS client memory leak in DirectPath-xDS connections. Scale events churn connections often enough to expose that leak, and the prior pool default of 4 amplified the problem under load. See #14582.
Pairs with the connection-recycler
MaxAgebump (7d) in a sibling PR — both reduce DirectPath-xDS connection churn while the upstream fix lands.Compatibility
ClientConfig.DisableDynamicChannelPoolkeeps its existing semantics; users who already opt out are unaffected.DynamicChannelPoolConfigwithEnabled: true.Test plan
go build ./...cleango vet ./...cleango test ./internal/transport/... ./internal/option/... ./(targeted: TestDynamic/TestValidate/TestConnPool/TestNewClient) — pass