Skip to content

fix(bigtable): raise default connection-recycler MaxAge to 7 days#19940

Merged
sushanb merged 1 commit into
googleapis:mainfrom
sushanb:fix/bigtable-recycler-default-maxage
Jun 10, 2026
Merged

fix(bigtable): raise default connection-recycler MaxAge to 7 days#19940
sushanb merged 1 commit into
googleapis:mainfrom
sushanb:fix/bigtable-recycler-default-maxage

Conversation

@sushanb

@sushanb sushanb commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Raises DefaultConnectionRecycleConfig from MaxAge: 45m / MaxJitter: 5m / RunFrequency: 1m to MaxAge: 7d / MaxJitter: 12h / RunFrequency: 1h. Mitigates the memory growth reported in #14582 by cutting recycle-driven connection churn by roughly two orders of magnitude.

The connection recycler periodically replaces pool connections after MaxAge
(previously 45 minutes). When DirectPath is in use, each replacement dials a
fresh gRPC ClientConn with EnableDirectPathXds(), spinning up a new ADS
stream whose underlying xDS-client state is not fully released on Close in
the current grpc-go release. The leaked state — adsStreamImpl plus its
subscribedResources map, unstopped watch-expiry timers, and pendingRequests
slice — accumulates linearly with recycle rate, producing the steady heap
growth reported in googleapis#14582.

Raising MaxAge from 45m to 7d (with proportional MaxJitter=12h and
RunFrequency=1h) cuts the recycle-driven churn by roughly two orders of
magnitude until the upstream grpc-go xDS cleanup lands. Users who relied on
the prior 45m cadence can still configure their own ConnectionRecycleConfig.

Refs: googleapis#14582
@sushanb sushanb requested review from a team as code owners June 10, 2026 01:15
@product-auto-label product-auto-label Bot added the api: bigtable Issues related to the Bigtable API. label Jun 10, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the default connection recycle configuration in bigtable/internal/option/option.go by increasing MaxAge to 7 days, MaxJitter to 12 hours, and RunFrequency to 1 hour. This change is intended to mitigate an upstream gRPC-Go xDS client memory leak by reducing connection churn. There are no review comments, and I have no feedback to provide.

@sushanb sushanb requested review from bhshkh and nimf June 10, 2026 01:17
@sushanb sushanb added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Jun 10, 2026
@sushanb sushanb enabled auto-merge (squash) June 10, 2026 01:32
@sushanb sushanb added the kokoro:run Add this label to force Kokoro to re-run the tests. label Jun 10, 2026
@kokoro-team kokoro-team removed kokoro:run Add this label to force Kokoro to re-run the tests. kokoro:force-run Add this label to force Kokoro to re-run the tests. labels Jun 10, 2026
@sushanb sushanb merged commit a7959ef into googleapis:main Jun 10, 2026
18 of 19 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: bigtable Issues related to the Bigtable API.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants