-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
release-21.2: util/encoding: support deep copying when decoding bytes ascending #70768
Merged
Conversation
This file contains 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
There is an optimization when decoding bytes ascending when it might return the decoded value that shares the same storage as the input buffer. However, this optimization might not be desirable in all cases: in particular, if the input buffer came from the large BatchResponse, then the decoded value might keep that whole response from being GCed. This commit adds a couple of methods to avoid using the shared storage by always performing a deep copy. It also audits all callers of the relevant methods on the KV-SQL boundary (the fetchers) to make sure they perform the deep copy when needed. Release note: None
cad10ba
to
51f6304
Compare
Thanks for opening a backport. Please check the backport criteria before merging:
If some of the basic criteria cannot be satisfied, ensure that the exceptional criteria are satisfied within.
Add a brief release justification to the body of your PR to justify this backport. Some other things to consider:
|
I think it's worth getting this in for 21.2.1. |
mgartner
approved these changes
Oct 29, 2021
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.
LGTM for 21.2.1.
bors r+ |
Build succeeded: |
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.
Backport 1/1 commits from #70740 on behalf of @yuzefovich.
/cc @cockroachdb/release
There is an optimization when decoding bytes ascending when it might
return the decoded value that shares the same storage as the input
buffer. However, this optimization might not be desirable in all cases:
in particular, if the input buffer came from the large BatchResponse,
then the decoded value might keep that whole response from being GCed.
This commit adds a couple of methods to avoid using the shared storage
by always performing a deep copy. It also audits all callers of the
relevant methods on the KV-SQL boundary (the fetchers) to make sure they
perform the deep copy when needed.
Release note: None
Release justification: