feat(experimental): flush the last chunk in append method by Pulkit0110 · Pull Request #1699 · googleapis/python-storage · GitHub
Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

feat(experimental): flush the last chunk in append method#1699

Merged
chandra-siri merged 2 commits into
googleapis:mainfrom
Pulkit0110:fix-append
Jan 11, 2026
Merged

feat(experimental): flush the last chunk in append method#1699
chandra-siri merged 2 commits into
googleapis:mainfrom
Pulkit0110:fix-append

Conversation

@Pulkit0110

Copy link
Copy Markdown
Contributor

Earlier the last chunk was being flushed while calling the close() method. Now it will be done inside the append method itself.

@Pulkit0110 Pulkit0110 requested review from a team January 8, 2026 09:26
@Pulkit0110 Pulkit0110 requested a review from a team as a code owner January 8, 2026 09:26
@product-auto-label product-auto-label Bot added size: m Pull request size is medium. api: storage Issues related to the googleapis/python-storage API. labels Jan 8, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

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

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.

Code Review

This pull request refactors the AsyncAppendableObjectWriter to flush the last chunk of data within the append method itself, rather than waiting for the close method. This change improves the writer's behavior by ensuring data is persisted more promptly. The implementation correctly handles flushing based on both the flush interval and whether a chunk is the last in an append call. The close and finalize methods have been updated to reflect this new behavior, and the stream is now correctly closed within finalize. The accompanying test changes, including a new system test, effectively validate the new logic. I have one suggestion to slightly refactor the flushing logic for improved clarity.

Comment thread google/cloud/storage/_experimental/asyncio/async_appendable_object_writer.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_appendable_object_writer.py Outdated
Comment thread tests/system/test_zonal.py
Comment thread tests/unit/asyncio/test_async_appendable_object_writer.py
Comment thread google/cloud/storage/_experimental/asyncio/async_appendable_object_writer.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_appendable_object_writer.py Outdated
Comment thread tests/system/test_zonal.py
Comment thread tests/system/test_zonal.py
@chandra-siri chandra-siri merged commit 89bfe7a into googleapis:main Jan 11, 2026
18 checks passed
vchudnov-g added a commit that referenced this pull request Jan 13, 2026
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 &#34;append_from_file&#34; (#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>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

api: storage Issues related to the googleapis/python-storage API. size: m Pull request size is medium.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants