Skip to content
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

WIP mux improvements for 10.2.1 #5077

Draft
wants to merge 11 commits into
base: release/ouroboros-network-0.19
Choose a base branch
from

Conversation

karknu
Copy link
Contributor

@karknu karknu commented Feb 12, 2025

Description

reasonably detailed description of the pull request

Checklist

Quality

  • Commit sequence makes sense and have useful messages, see ref.
  • New tests are added and existing tests are updated.
  • Self-reviewed the PR.

Maintenance

  • Linked an issue or added the PR to the current sprint of ouroboros-network project.
  • Added labels.
  • Updated changelog files.
  • The documentation has been properly updated, see ref.

Lower level benchmark for reading and writing over Sockets.
Uses local TCP sockets over ephemeral ports.
@karknu karknu force-pushed the karknu/10_2_1_read_buffer branch 2 times, most recently from f5a2cca to 6bba9f0 Compare February 18, 2025 10:21
@karknu karknu force-pushed the karknu/10_2_1_read_buffer branch from 2e1b74b to dd44444 Compare February 18, 2025 14:31
@karknu karknu force-pushed the karknu/10_2_1_read_buffer branch 3 times, most recently from 4d6a898 to bb34c24 Compare March 6, 2025 13:51
karknu added 2 commits March 6, 2025 15:23
Enforce at least 1 byte payload data per SDU.
@karknu karknu force-pushed the karknu/10_2_1_read_buffer branch from bb34c24 to 3fe8dbe Compare March 6, 2025 14:38
karknu added 2 commits March 6, 2025 15:41
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.
@karknu karknu force-pushed the karknu/10_2_1_read_buffer branch from 3fe8dbe to b772d9f Compare March 6, 2025 14:41
@karknu karknu force-pushed the karknu/10_2_1_read_buffer branch from b772d9f to 248f449 Compare March 6, 2025 14:53
karknu added 2 commits March 6, 2025 16:33
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.
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.
@karknu karknu force-pushed the karknu/10_2_1_read_buffer branch from 248f449 to 096f32b Compare March 6, 2025 15:34
karknu added 3 commits March 6, 2025 16:42
Use a Builder for ingress. Messages shorter than 128 bytes will be copied.
Use RecvLowWater to signal that we want to read at least the length of
the SDU.
@karknu karknu force-pushed the karknu/10_2_1_read_buffer branch from 096f32b to a45df26 Compare March 6, 2025 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

1 participant