2.6 KiB
2.6 KiB
RPC Pressure Evidence
This file records the current synthetic RPC responsiveness guard for
aria2-rust-pro.
Scope
Current guard coverage is synthetic but no longer limited to a single
tellStatus loop:
- in-process dispatcher
- BT-like magnet workload
- repeated
aria2.tellStatus - sampled
aria2.getFiles - repeated
aria2.tellActive - repeated
aria2.tellGlobalStat - Criterion
rpc_mixed_pressureandbt_visibility_pressureanchors
This is not a public-swarm benchmark. It is a deterministic regression guard for scheduler/RPC responsiveness while the runtime is still approximation-heavy.
Guard Tests
rpc_bt_pressure_guard_keeps_status_active_and_global_stat_responsiverpc_bt_mixed_pressure_guard_covers_churned_status_files_and_global_views
Basic guard shape:
- 64 BT-like magnet tasks
- 4 pressure rounds
- 256 total
tellStatuscalls - 4
tellActivecalls - 4
tellGlobalStatcalls - runtime tick updates injected during the loop to keep non-zero BT-like state
Mixed guard shape:
- 96 BT-like magnet tasks
- 6 pressure rounds
- 576 total
tellStatuscalls - 72 sampled
getFilescalls - 6
tellActivecalls - 6
tellGlobalStatcalls - per-download runtime tick churn before every status probe
Current Thresholds
These thresholds are deliberately broad. They are there to catch obvious regressions, not to certify final performance:
- cumulative
tellStatustime across the run:<= 2000ms - cumulative
tellActivetime across the run:<= 500ms - cumulative
tellGlobalStattime across the run:<= 500ms - cumulative mixed guard time across the run:
<= 4000ms
Current Criterion Anchors
Current focused Criterion runs on this host:
| Benchmark | Mean | 95% CI |
|---|---|---|
rpc_mixed_pressure/mixed_rpc/96 |
92.383 us |
90.867 .. 93.895 us |
rpc_mixed_pressure/mixed_rpc/192 |
175.169 us |
160.464 .. 192.884 us |
bt_visibility_pressure/bt_visibility/32 |
2.3293 ms |
1.0756 .. 4.0986 ms |
bt_visibility_pressure/bt_visibility/64 |
2.1302 ms |
2.0707 .. 2.2057 ms |
Interpretation:
- the deterministic integration tests now cover mixed BT/RPC status, file, and global-stat surfaces under runtime churn
- the Criterion anchors give a current non-HTTP performance regression guard
- the thresholds remain intentionally broad so host-local noise does not turn a synthetic guard into a flaky gate
Next Steps
Further work should extend this guard with:
- explicit scheduler tick pressure
- resource counters suitable for later perf reporting
- a documented comparison against the C++ reference once comparable benchmark suites exist