feat(bigtable): add preemptive connection recycler#13860
feat(bigtable): add preemptive connection recycler#13860sushanb merged 6 commits intogoogleapis:mainfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a preemptive connection recycler to manage the lifecycle of connections in the Bigtable client's connection pool, including configuration, background logic, and client integration. However, a security vulnerability was identified: the random number generator used for connection recycling jitter is seeded with a predictable value, which could lead to synchronized connection recycling at scale and impact service availability. It is recommended to use a cryptographically secure random source for seeding. Additionally, there are suggestions to improve code clarity, conventions, and configuration handling, such as addressing a non-idiomatic package name, a silent override of user configuration, and minor typos.
| EnableDynamicChannelPool bool | ||
| // DisableDynamicChannelPool disables the dynamic channel resizing based on load | ||
| // Dynamic channel resizing is enabled by default to resize based on load and avoid queuing of requests. | ||
| DisableDynamicChannelPool bool |
There was a problem hiding this comment.
This makes the code a little hard to read. Is it possible to have a constructor function that returns true for these variables by default?
PR created by the Librarian CLI to initialize a release. Merging this PR will auto trigger a release. Librarian Version: v0.8.0 Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-go@sha256:19bb93e8f1f916c61b597db2bad65dc432f79baaabb210499d7d0e4ad1dffe29 <details><summary>bigtable: 1.43.0</summary> ## [1.43.0](bigtable/v1.42.0...bigtable/v1.43.0) (2026-03-16) ### Features * Add support for creating Instance with tags (#13459) ([1bce843](1bce843e)) * support tiered storage (#13793) ([39a25b9](39a25b92)) * add handling of longupdown metrics aka gauge (#13871) ([519ed9b](519ed9b0)) * Use direct access when supported. Guarded by enabling… (#13873) ([5ea1f5f](5ea1f5f9)) * add preemptive connection recycler (#13860) ([6b69ee3](6b69ee38)) * make downscalling less aggressive (#14123) ([7ac72cc](7ac72cc8)) * add pacemaker in connpool (#13862) ([9af047f](9af047f7)) * populate ip protocol for direct access checker and rename a method to be concise (#14011) ([9c5e655](9c5e6551)) * add connection factory to abstract connection (#13755) ([b08ea15](b08ea15f)) * make pow of 2 default lb policy (#14131) ([b5f7bf2](b5f7bf27)) * derive conn pool from resolver (#14147) ([b903e29](b903e299)) * add load balancing penalty for channel (#14149) ([bb64998](bb649988)) * cap increase in conn for dynamic chan pool (#14144) ([e0701a4](e0701a46)) * switch to rand v2 (#14008) ([ee6f425](ee6f4251)) ### Bug Fixes * slighly change instruction for direct access (#14119) ([7dd4948](7dd4948d)) * refactor bigtable.go into separate file path per interfaces (#13818) ([c8ae2e2](c8ae2e2a)) </details>
No description provided.