Conversation
aa52d92 to
a274cc2
Compare
coot
reviewed
Mar 7, 2025
Collaborator
coot
left a comment
There was a problem hiding this comment.
I did the first pass, the PR looks nice.
40e5b35 to
93b4382
Compare
coot
approved these changes
Mar 25, 2025
Collaborator
coot
left a comment
There was a problem hiding this comment.
LGTM, just a few minor comments.
ouroboros-network-framework/sim-tests/Test/Simulation/Network/Snocket.hs
Show resolved
Hide resolved
Lower level benchmark for reading and writing over Sockets. Uses local TCP sockets over ephemeral ports.
Enforce at least 1 byte payload data per SDU.
Define msHeaderLength and use it instead of 8 as hardcoded headerlength.
Permit sending of multiple SDUs through a single call to sendMany for Socket bearers Bearers without vector IO support emulate it through multiple calls to write.
This implements an optional read buffer for the Socket bearer. If provided with a read buffer the socket bearer will read as much data available on the socket that can fit in the read buffer. Subsequent read requests will first be served data from the buffer.
Implement buffered and unbuffered mux/demux tests for the socket bearer.
Poll the egress queue at most 1000 times per second. This gives us an oppertunity to pack multiple messages into larger SDUs, and write those SDUs with a single sendMany call.
Use a Builder for ingress. Messages shorter than 128 bytes will be copied.
40d7c99 to
edca550
Compare
Use RecvLowWater to signal that we want to read at least the length of the SDU.
225d73a to
5dd391e
Compare
5dd391e to
93ba932
Compare
93ba932 to
0175d27
Compare
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.
Description
This PR consist of a series of commits aimed to make Mux more efficient.
Mainly this is done by attempting to read and write larger chunks of data.
Checklist
Quality
Maintenance
ouroboros-networkproject.