Reduce copying when creating scroll/PIT ids#99219
Merged
DaveCTurner merged 2 commits intoelastic:mainfrom Sep 6, 2023
Merged
Conversation
These IDs can be pretty large at high shard counts. This commit removes an unnecessary copy while base64-encoding/decoding, specifies ISO_8859_1 so that the unavoidable copy operations work directly on the bytes, and also skips the temporary creation of an O(#shards)-sized map in favour of just writing the entries directly and then reading them into a map at the other end.
Collaborator
|
Hi @DaveCTurner, I've created a changelog YAML for you. |
Collaborator
|
Pinging @elastic/es-search (Team:Search) |
97 tasks
original-brownbear
approved these changes
Sep 6, 2023
Contributor
original-brownbear
left a comment
There was a problem hiding this comment.
LGTM, I wonder if this is hot enough to justify even more effort. We could go one step further here and avoid one more round of copying by using something like org.apache.commons.io.output.WriterOutputStream but might not be necessary, this is a nice improvement already thanks!
Member
Author
|
I suspect fundamentally we should reconsider the whole concept of IDs that can grow to MiBs in size... |
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.
These IDs can be pretty large at high shard counts. This commit removes
an unnecessary copy while base64-encoding/decoding, specifies ISO_8859_1
so that the unavoidable copy operations work directly on the bytes, and
also skips the temporary creation of an O(#shards)-sized map in favour
of just writing the entries directly and then reading them into a map at
the other end.