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

Switch QUIC ACKs to use a faster algorithm #1801

Open
mmcgee-jump opened this issue May 9, 2024 · 1 comment
Open

Switch QUIC ACKs to use a faster algorithm #1801

mmcgee-jump opened this issue May 9, 2024 · 1 comment
Assignees
Labels
perf Performance optimization Priority: Medium quic RFC 9000: QUIC

Comments

@mmcgee-jump
Copy link
Contributor

No description provided.

@mmcgee-jump mmcgee-jump added quic RFC 9000: QUIC perf Performance optimization Priority: Medium labels May 9, 2024
@nbridge-jump
Copy link
Contributor

There is a bit vector stored in the uchar array stream->tx_ack.
Each bit in this vector represents the ack status of each byte in the circular buffer stream->tx_buf. That is, a bit is '1' iff the corresponding byte in tx_buf has been ack'ed and is no longer required.
Probably the simplest improvement would be to change the type to a ulong array. Then implement branchless versions of the setting and clearing algos. This is likely sufficient
Alternatively, we could track ack ranges, and implement ack range merging and so on. Note that the client can only ack packets, and therefore cannot ack arbitrary bytes of a stream. This means we can link the ack processing with the pkt_meta ranges either logically or directly. This may not be any faster

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
perf Performance optimization Priority: Medium quic RFC 9000: QUIC
Projects
None yet
Development

No branches or pull requests

2 participants