Skip to content
This repository was archived by the owner on May 8, 2026. It is now read-only.

feat: add new session based protocol stack#2862

Merged
gcf-merge-on-green[bot] merged 8 commits into
googleapis:mainfrom
igorbernstein2:merge-sessions
Apr 9, 2026
Merged

feat: add new session based protocol stack#2862
gcf-merge-on-green[bot] merged 8 commits into
googleapis:mainfrom
igorbernstein2:merge-sessions

Conversation

@igorbernstein2

@igorbernstein2 igorbernstein2 commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

The new protocol changes the paradigm of bigtable service from an RPC server where each operation is independent to more of a file like model where a table is opened and allows many read & write operations. This will have a significant impact on lowering latencies. All of the changes are internal to the client and the existing public surface remains the same. By default the new protocol is disabled and will be slowly enabled in the future using the client config api.

Notable changes:

  • When the new protocol is enabled, the BigtableClientFactory doesnt share the underlying ChannelPool. The new ChannelPool is tracks the connected server, so sharing a channel between multiple resource is no longer possible.
  • The new protocol does not support custom TransportProviders, setting one will force a fallback to the classic protocol
  • Retries have been revamped:
    • the client now tracks how far an rpc went which allows the client to retry non-idempotent rpcs safely
    • attempt timeouts are no longer relevant, they have been replaced with heartbeats
    • Mutations that are not idempotent (have serverside timestamps or counters) are now correctly identified and will be retried if they left the client
  • The new transport supports the ambient grpc Context and will consistently respect the ambient deadlines and cancellation
  • Customers can opt out of the slow rollout by setting the env var CBT_DISABLE_SESSIONS=true

@igorbernstein2 igorbernstein2 requested review from a team as code owners April 8, 2026 20:37
@product-auto-label product-auto-label Bot added size: xl Pull request size is extra large. api: bigtable Issues related to the googleapis/java-bigtable API. labels Apr 8, 2026
@generated-files-bot

generated-files-bot Bot commented Apr 8, 2026

Copy link
Copy Markdown

Warning: This pull request is touching the following templated files:

  • grpc-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableGrpc.java
  • proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java
  • proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/bigtable.proto

The new protocol changes the paradigm of bigtable service from an RPC server where each operation is independent to more of a file like model where a table is opened and allows many read & write operations. This will have a significant impact on lowering latencies. All of the changes are internal to the client and the existing public surface remains the same. By default the new protocol is disabled and will be slowly enabled in the future using the client config api.

Change-Id: I92db1ec5929019a06b1490b06ed0fd85893696c4
… it doesnt need em

Change-Id: I9924d7b9f1cf40b81e11a66030109c877eba6a75
… them part 2

Change-Id: I7b446d2f0e5951a160659dd628c9ef00f47af04c
Change-Id: Iad72d2a9d012938f24c0ad91876effbbf67a853c
@igorbernstein2 igorbernstein2 added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Apr 9, 2026
@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Apr 9, 2026
@igorbernstein2 igorbernstein2 added the automerge Merge the pull request once unit tests and other checks pass. label Apr 9, 2026
@gcf-merge-on-green gcf-merge-on-green Bot merged commit d5565b5 into googleapis:main Apr 9, 2026
25 checks passed
@gcf-merge-on-green gcf-merge-on-green Bot removed the automerge Merge the pull request once unit tests and other checks pass. label Apr 9, 2026
@igorbernstein2 igorbernstein2 deleted the merge-sessions branch April 9, 2026 13:39
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

api: bigtable Issues related to the googleapis/java-bigtable API. size: xl Pull request size is extra large.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants