Skip to content

"Turn off" recent grpc/proto artifacts move change#3229

Merged
vam-google merged 1 commit intomasterfrom
proto-grpc-refactoring-rollback
May 3, 2018
Merged

"Turn off" recent grpc/proto artifacts move change#3229
vam-google merged 1 commit intomasterfrom
proto-grpc-refactoring-rollback

Conversation

@vam-google
Copy link
Copy Markdown
Contributor

This effective rolls back the change, as all the new files are excluded from build, the old modified files are rolled back to the original state.

…llbacks the change, as all the new files are excluded from build, the old modified files are rolled back to the original state.
@vam-google vam-google requested a review from pongad as a code owner May 3, 2018 01:15
@googlebot googlebot added the cla: yes This human has signed the Contributor License Agreement. label May 3, 2018
<role>Developer</role>
</roles>
</developer>
<developer>

This comment was marked as spam.

This comment was marked as spam.

@vam-google
Copy link
Copy Markdown
Contributor Author

@pongad PTAL

Copy link
Copy Markdown
Contributor

@garrettjonesgoogle garrettjonesgoogle left a comment

Choose a reason for hiding this comment

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

LGTM

@vam-google vam-google merged commit 33a392f into master May 3, 2018
@vam-google vam-google deleted the proto-grpc-refactoring-rollback branch May 11, 2018 19:10
chingor13 pushed a commit that referenced this pull request Mar 24, 2026
…nsaction (#3229)

* feat(spanner): support multiplexed session for blind write with single use transaction.

* test(spanner): added test for the support of multiplexed session for blind writes (writeAtLeastOnce)

* chore(spanner): lint

* fix(spanner): updated the adoption for blind write into GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS.

* chore: simplify code to make it easier to reuse for later additions

* feat(spanner): added flag to control use of multiplexed session for blind write. This flag will be used by systest.

* lint(spanner): javadoc fixes.

---------

Co-authored-by: Knut Olav Løite <koloite@gmail.com>
chingor13 pushed a commit that referenced this pull request Mar 24, 2026
🤖 I have created a release *beep* *boop*
---


## [6.75.0](https://togithub.com/googleapis/java-spanner/compare/v6.74.1...v6.75.0) (2024-09-19)


### Features

* Support multiplexed session for blind write with single use transaction ([#3229](https://togithub.com/googleapis/java-spanner/issues/3229)) ([73899b8](https://togithub.com/googleapis/java-spanner/commit/73899b866fcef32c63efe44ee28cf7fecd8e0871))

---
This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
chingor13 pushed a commit that referenced this pull request Mar 30, 2026
## Description
feat: *breaking behavior* rewrite Storage.blobAppendableUpload to be non-blocking and have improved throughput (#3231)

Rewrite internals of BlobAppendableUpload to provide non-blocking write calls, and it take advantage of grpc async message handling.

When `AppendableUploadWriteableByteChannel#write(ByteBuffer)` is called, an attempt will be made to enqueue the bytes in the outbound queue to GCS.
If there is only enough room to partially consume the bytes provided in the `ByteBuffer` the write call will return early specifying the number of bytes actually consumed.

As acknowledgements come in from gcs, enqueued messages will be evicted freeing space in the outbound queue. Thereby allowing more bytes to be consumed and enqueued.

Given appendable objects are still in private preview I can't quote any metrics here, however preliminary benchmarking of several million objects across a range of sizes show across the board throughput improvments.

Because the channel's write call is now non-blocking, if you want to block your application until the full buffer is consumed some new helper methods have been added in StorageChannelUtils to provide blocking behavior.

A new method `MinFlushSizeFlushPolicy#withMaxPendingBytes(long)` has been added to allow limiting the number of pending outbound bytes. The default values is 16MiB, but can be configured lower if necessary.

## Release Notes

BEGIN_COMMIT_OVERRIDE

BEGIN_NESTED_COMMIT
feat: *breaking behavior* rewrite Storage.blobAppendableUpload to be non-blocking and have improved throughput (#3231)
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
feat: add StorageChannelUtils to provide helper methods to perform blocking read/write to/from non-blocking channels (#3231)
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
feat: add MinFlushSizeFlushPolicy#withMaxPendingBytes(long) (#3231)
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
fix: update BlobAppendableUploadConfig and FlushPolicy.MinFlushSizeFlushPolicy to default to 4MiB minFlushSize and 16MiB maxPendingBytes (#3249)
END_NESTED_COMMIT

BEGIN_NESTED_COMMIT
fix: make FlushPolicy${Min,Max}FlushSizeFlushPolicy constructors private (#3217)
END_NESTED_COMMIT

END_COMMIMT_OVERRIDE

## Sub PRs
This PR is made of up the following PRs, in sequence
1. #3217
2. #3218 
3. #3219
4. #3220
5. #3221
6. #3222
7. #3223
8. #3224 
9. #3225 
10. #3226 
11. #3227 
12. #3228 
13. #3229 
14. #3230 
15. #3235 
16. #3236 
17. #3241
18. #3242
19. #3246
20. #3248
21. #3249
22. #3252
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla: yes This human has signed the Contributor License Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants