-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Better handling for large packets #1684
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
Merged
Merged
Conversation
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
Contributor
|
This looks like it still calls conn->read() with a request for a large amount of bytes to be copied, we should have a loop with a yield that reads incrementally until the buffer is filled |
Contributor
Author
|
@fdb-build test this please |
Contributor
|
Tag reviewer and assignee! |
etschannen
reviewed
Jun 21, 2019
etschannen
reviewed
Jun 21, 2019
On the sending side, a large packet is split into smaller pieces. On the receiving side, use packet length to allocate buffer to avoid multiple memcpy and allocations.
And add yield between consecutive reads.
Co-Authored-By: Evan Tschannen <[email protected]>
For large packet, allocate sizeof(uint32_t) more bytes for next packet size. Also add knob MIN_PACKET_BUFFER_FREE_BYTES, which is used to trigger allocation of a new arena when free bytes are lower than this threshold.
Contributor
Author
|
@fdb-build test this please |
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.
On the sending side, a large packet is split into smaller pieces. On the
receiving side, use packet length to allocate buffer to avoid multiple memcpy
and allocations.
This fixes #1466 and #1680 .