Conversation
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 17, 2026 22:08
ba8840b to
6d89325
Compare
whowes
added this pull request to stack #14429
September 17, 2026 22:16
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 18, 2026 02:23
6d89325 to
da1275c
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
2 times, most recently
from
September 18, 2026 03:21
589ef8e to
f130ccc
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 18, 2026 15:05
f130ccc to
0e94df8
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 19, 2026 01:36
0e94df8 to
00f7932
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 19, 2026 21:12
00f7932 to
c6c28b1
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 19, 2026 22:57
c6c28b1 to
4a4b890
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 19, 2026 23:17
4a4b890 to
14f6204
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 20, 2026 00:19
14f6204 to
0a389c4
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 20, 2026 05:23
0a389c4 to
7d192ff
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 20, 2026 06:51
7d192ff to
33b9862
Compare
whowes
removed this pull request from stack #14429
September 20, 2026 07:20
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 21, 2026 20:26
5e5a95e to
cac0e5d
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 21, 2026 22:16
cac0e5d to
efa09b6
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 21, 2026 22:34
efa09b6 to
be3497e
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
2 times, most recently
from
September 22, 2026 01:19
a431bf0 to
954f899
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 22, 2026 06:46
954f899 to
a46fb8f
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
2 times, most recently
from
September 22, 2026 07:57
cfc83ff to
2f7c89c
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 22, 2026 08:52
2f7c89c to
715822d
Compare
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
2 times, most recently
from
September 22, 2026 16:07
0925229 to
11ab9b0
Compare
whowes
removed this pull request from stack #14454
September 22, 2026 16:21
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
2 times, most recently
from
September 22, 2026 16:45
3ae0f6e to
97fb372
Compare
whowes
added this pull request to stack #14476
September 22, 2026 17:47
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 22, 2026 18:52
97fb372 to
3258c60
Compare
Introduce RewindableStreamBuffer managing a single-chunk buffer over an InputStream, supporting forward compaction and topping up upon recovery realignment without mark()/reset(). Enforces boundaries by throwing FailedPreconditionException when a server offset is below the base offset or beyond the current buffer window. Use payloadLength in ChunkUploadRequest to avoid allocating temporary byte arrays for full-sized chunks while reusing a single backing array.
whowes
force-pushed
the
whowes/resumable-upload-buffer-window
branch
from
September 22, 2026 19:56
3258c60 to
074e557
Compare
|
|
blakeli0
reviewed
Sep 23, 2026
| public abstract byte[] getPayload(); | ||
|
|
||
| /** The number of bytes within {@link #getPayload()} to upload. */ | ||
| public abstract int getPayloadLength(); |
Contributor
There was a problem hiding this comment.
Do we have to expose getPayloadLength in the request? I think we can do the slicing in RewindableStreamBuffer and getPayload should always return the byte[] that we can upload directly.
blakeli0
reviewed
Sep 23, 2026
| * offset or beyond the current buffer window | ||
| * @throws IOException if reading from the stream fails | ||
| */ | ||
| void realignTo(long committedOffset) throws IOException { |
Contributor
There was a problem hiding this comment.
Is this method used in this PR?
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.





Introduces
RewindableStreamBufferto manage a single-chunk buffer for the user-providedInputStream.Recovery is not implemented in this PR - the buffer is wired up in the chunk coordinator here and the query-command-based recovery process will be implemented in the next.
The length of upload request payloads is now included in the
ChunkUploadRequestto allow for more efficient propagation of the content bytes from stream -> buffer -> wire.