Skip to content

feat(bigtable): Use direct access when supported. Guarded by enabling…#13873

Merged
sushanb merged 2 commits intogoogleapis:mainfrom
sushanb:cc_l
Feb 25, 2026
Merged

feat(bigtable): Use direct access when supported. Guarded by enabling…#13873
sushanb merged 2 commits intogoogleapis:mainfrom
sushanb:cc_l

Conversation

@sushanb
Copy link
Copy Markdown
Contributor

@sushanb sushanb commented Feb 20, 2026

Current limitations:

  1. Does not use PeerInfo for checking transport
  2. Does not have retry logic into Prime (only one attempt for success)
  3. Guarded by enabling CBT_BIGTABLE_CONN_POOL

@sushanb sushanb requested a review from a team February 20, 2026 22:15
@sushanb sushanb requested review from a team as code owners February 20, 2026 22:15
@product-auto-label product-auto-label Bot added the api: bigtable Issues related to the Bigtable API. label Feb 20, 2026
Copy link
Copy Markdown
Contributor

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

Choose a reason for hiding this comment

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

Code Review

The pull request introduces direct access functionality for Bigtable clients, allowing for a more optimized connection path when available. It includes new options for the channel pool to configure direct access dialers and feature flags, and modifies the connection pool initialization to attempt direct access first. New test cases have been added to cover various scenarios of direct access availability and fallback mechanisms. The changes appear to be well-structured and include appropriate logging for debugging direct access attempts. All original comments have been retained as they do not contradict any provided rules and offer valid suggestions for code quality and readability.

Comment thread bigtable/client.go
Comment thread bigtable/internal/transport/connpool.go
Comment thread bigtable/internal/transport/connpool.go
Comment thread bigtable/internal/transport/connpool.go
Comment thread bigtable/internal/transport/connpool.go Outdated
@sushanb sushanb requested a review from bhshkh February 20, 2026 22:24
Comment thread bigtable/internal/transport/connpool.go Outdated
@sushanb sushanb merged commit 5ea1f5f into googleapis:main Feb 25, 2026
12 checks passed
}
}

// WithDirectAccessFeatureFlagsMetadata provides the feature flags required for DirectAccess
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.

Is it documented somewhere what feature flags are ? or what metadata for feature flags is supposed to contain?

I was thinking feature flags is something internal to the library and the Bigtable service and not exposed to the user.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yes, the client automatically creates the feature flags required for direct access and tries to use direct access.

This is hidden to the end users of the client.

bhshkh added a commit that referenced this pull request Mar 16, 2026
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>
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.

3 participants