-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(storage): set flush and get_state to false on the last write in gRPC #9013
Conversation
} | ||
|
||
// Confirm the persisted data if we have not finished uploading the object. | ||
if !lastWriteOfEntireObject { | ||
if resp.GetPersistedSize() != writeOffset { | ||
// Retry if not all bytes were persisted. | ||
writeOffset = resp.GetPersistedSize() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it actually the case that we no longer need to revc() from the stream if we are ready to finalize the object on this msg?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do still receive (see L1775), but only until after CloseSend
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah I see, makes sense.
Also, commit type could be |
Only receive if get_state was true (ie.
remainingDataFitsInSingleReq && !lastWriteOfEntireObject
) (or after CloseSend) to avoid blocking.