Open
Conversation
The serializer we use for `rkyv` outputs into an FBuf, which has 512-byte alignment (because we think we might want to use O_DIRECT someday, which requires 4096- or 512-byte alignment depending on the device). However, our exchange code was then copying the FBuf's contents into a Vec<u8>. This commit eliminates the copy by using the FBuf for exchange directly instead of Vec<u8>. (It's questionable whether there's benefit to using FBuf at all. We might be able to get rid of it.) Signed-off-by: Ben Pfaff <blp@feldera.com>
ryzhyk
approved these changes
Mar 27, 2026
Contributor
ryzhyk
left a comment
There was a problem hiding this comment.
Who could say no to eliminating a copy, especially if it's such a simple fix.
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.
The serializer we use for
rkyvoutputs into an FBuf, which has 512-byte alignment (because we think we might want to use O_DIRECT someday, which requires 4096- or 512-byte alignment depending on the device). However, our exchange code was then copying the FBuf's contents into a Vec. This commit eliminates the copy by using the FBuf for exchange directly instead of Vec.(It's questionable whether there's benefit to using FBuf at all. We might be able to get rid of it.)
Describe Manual Test Plan
I ran the dbsp unit tests.