Repository navigation
Sans-IO Refactoring - #47
franklee26 wants to merge 3 commits into
Conversation
Bluefin throughput bench (macOS) ✅ PASSConfig: 5 run(s) × 2 conn(s) on Client throttle: 25 µs sleep every 3000 sends Retries: 1 of 5 run(s) needed retry (+2 extra attempt(s)). See per-run table. why retries vary across runsHosted CI runners occasionally land on a deeply contended host where both bench peers get starved and a run produces 0 GOOD conns despite no actual code regression. To absorb this without weakening the gate, this job uses an asymmetric retry policy (current values:
The retry budget is per-run and only shrinks across attempts: once a partial-good attempt has been observed in a run, that run is locked to the partial budget for the rest of its attempts -- it can never be promoted to the larger 0-good budget by a later attempt happening to collapse to 0. Only the final attempt's data is committed to the aggregate stats; earlier attempts' logs are still on disk under the run's So the same code can show 0, 1, or 2 retries on different CI runs purely from runner-allocation luck. The Aggregate
Per-run
A "good conn" delivered ≥ 700 MB before idle timeout. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #47 +/- ##
==========================================
+ Coverage 69.13% 71.29% +2.16%
==========================================
Files 24 26 +2
Lines 3833 3958 +125
==========================================
+ Hits 2650 2822 +172
+ Misses 1183 1136 -47 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
- new bluefin-io/src/socket/factory.rs exposes tokio_udp_socket + tokio_connected_udp_socket with 32 MiB SO_{RCV,SND}BUF default
- bluefin/src/utils/mod.rs get_udp_socket / get_connected_udp_socket become thin delegating shims; ~50 lines of duplicated socket2 setup removed
- bench unchanged at 2.81/2.82 GB/s
…chitecture skills Replaces the deleted docs/SANS_IO_MIGRATION.md with a post-mortem documenting what landed (wire format extraction, Endpoint, CloseFsm, socket factory), what was reverted (data-path FSMs, ConnectionAdapter mutex, single-task driver), why (per-conn throughput regression on kernel-bound workload from serialising recvfrom/sendto in one task), and lessons learned. Full attempt preserved on branch frank/sans-io-experiment-archive.
e8bce23 to
44c479d
Compare
No description provided.