Repository navigation
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces a new overload for the blobReadSession method in the Storage interface and its implementations, enabling a "fast open" feature that allows a read operation to be sent in the same request that opens the session. This optimization saves a round trip. The changes include validation logic to ensure only stream read projections are accepted, as well as comprehensive integration tests to verify the new functionality, error handling, and tracing. I have no feedback to provide as the implementation is clean and well-tested.
Dhriti07
force-pushed
the
fast-open/06-fast-open-through-wrappers
branch
from
October 31, 2026 18:48
3108ca7 to
dedf4d1
Compare
Dhriti07
force-pushed
the
fast-open/07-public-api
branch
from
October 31, 2026 18:48
7c4262e to
63fb3c4
Compare
Seventh step of fast open BiDi reads (go/fast-open-bidi-read, b/552263062). Storage.blobReadSession(BlobId, ReadProjectionConfig, BlobSourceOption...) sends the read described by the config in the same request that opens the session. The first readAs with an equal config is given that read, saving the round trip a separate first read would take. Only asFutureBytes, asFutureByteString and asChannel configs are accepted, and a null config only opens the session. This is additive: blobReadSession(BlobId, BlobSourceOption...) is unchanged. OtelStorageDecorator passes the config through, so fast open also works with OpenTelemetry tracing enabled, and a fast open read that fails is recorded as an error on its readAs span.
Dhriti07
force-pushed
the
fast-open/07-public-api
branch
from
November 1, 2026 12:01
63fb3c4 to
d14e2a9
Compare
Dhriti07
force-pushed
the
fast-open/06-fast-open-through-wrappers
branch
from
November 1, 2026 12:01
dedf4d1 to
49d3976
Compare
This branch has not been deployed
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.
7/n fast open BiDi reads
Storage.blobReadSession(BlobId, ReadProjectionConfig, BlobSourceOption...) sends the read described by the config in the same request that opens the session. The first readAs with an equal config is given that read, saving the round trip a separate first read would take. Only asFutureBytes, asFutureByteString and asChannel configs are accepted, and a null config only opens the session.
This is additive: blobReadSession(BlobId, BlobSourceOption...) is unchanged. OtelStorageDecorator passes the config through, so fast open also works with OpenTelemetry tracing enabled.