feat(experimental): add write resumption strategy#1663
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces a generic retry manager for bidi streams and applies it to read operations, which is a great improvement for resiliency. It also adds a resumption strategy for write operations. The overall structure is well-designed and the new tests are comprehensive. I've found one critical issue that will cause a TypeError at runtime due to a method being called with an unexpected argument. I've also included a couple of medium-severity comments to improve documentation clarity and maintainability in the new strategy classes.
7d63612 to
8c2a143
Compare
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces a write resumption strategy for handling bidi write operations, which is a valuable addition for improving error handling in experimental async features. The implementation is well-structured and accompanied by a comprehensive set of unit tests that cover various scenarios, including initial uploads, resumption, and failure recovery. My feedback focuses on enhancing type safety, improving code clarity by addressing a potentially unused flag, and increasing the robustness of the tests by using mocks instead of None.
|
/gemini summary |
8aba092 to
a3f6254
Compare
PR created by the Librarian CLI to initialize a release. Merging this PR will auto trigger a release. Librarian Version: v0.7.0 Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:8e2c32496077054105bd06c54a59d6a6694287bc053588e24debe6da6920ad91 <details><summary>google-cloud-storage: 3.8.0</summary> ## [3.8.0](v3.7.0...v3.8.0) (2026-01-13) ### Features * expose persisted size in mrd (#1671) ([0e2961b](0e2961be)) * implement "append_from_file" (#1686) ([1333c95](1333c956)) * compute chunk wise checksum for bidi_writes (#1675) ([139390c](139390cb)) * flush the last chunk in append method (#1699) ([89bfe7a](89bfe7a5)) * add write resumption strategy (#1663) ([a57ea0e](a57ea0ec)) * add bidi stream retry manager. (#1632) ([d90f0ee](d90f0ee0)) * make flush size configurable (#1677) ([f7095fa](f7095faf)) ### Bug Fixes * no state lookup while opening bidi-write stream ([2d5a7b1](2d5a7b16)) * no state lookup while opening bidi-write stream (#1636) ([2d5a7b1](2d5a7b16)) * close write object stream always (#1661) ([4a609a4](4a609a4b)) * add system test for opening with read_handle (#1672) ([6dc711d](6dc711da)) </details> --------- Co-authored-by: Victor Chudnovsky <vchudnov@google.com>

Adding writes resumption strategy which will be used for error handling of bidi writes operation.