Extend the zero-repair FEC-encode bypass beyond Bulk (Realtime/Default pay ~24µs even on clean links) #29
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
femboy/yip#29
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The
repair == 0bypass (skipEncoder::new) fires only for Bulk flows whose adaptive repair ratio has decayed to 0. Realtime/Default flows keep a proactive repair floor (repair > 0) even on a clean link, so they pay the full ~24 µs FEC-encode per packet with no loss to recover.Investigate whether the floor can be smarter: e.g. decay Realtime/Default repair toward 0 on a measured-clean link too (still snapping back on loss, like Bulk), or a cheaper proactive-repair path. This is a direct clean-link CPU/throughput win for non-Bulk traffic (latency-sensitive Realtime especially), complementary to FEC object batching (which only helps the repair>0 case). Must not regress loss recovery — gate on the netns loss + arq suites.
Obsolete after the FEC codec swap in #50: RaptorQ was replaced by a small-K systematic Reed–Solomon codec (encode ~26 µs → ~1.33 µs). The ~24 µs RaptorQ per-object setup this issue targets no longer exists, so the motivation is gone. Closing.