Commit d0df17f
feat(core): adaptive upload parallelism with throughput probe and disk-saturation gate
Close the control loop around the in-flight-file count (DESIGN 11.4.7 /
18.2). A 30s-window ThroughputProbe fed by the executor drives a resizable
UploadPool within [1, 32]: shrink when a window's throughput collapses
below 50% of the prior one (and neither the pacer nor the disk explains the
drop), grow while lifting the pool still improves throughput. A per-OS
disk-busy gate (new driven-diskstat crate: PDH on Windows, /proc/diskstats
on Linux, IOKit on macOS; fail-open to not-saturated so a broken reader
never strangles uploads) blocks growth when the disk is the bound.
Default-on with an adaptive_parallelism_enabled kill-switch; off = today's
fixed pool at default_concurrent_uploads (now wired as the start size). The
control law is a pure, exhaustively unit-tested decide(); an e2e_fake test
asserts a real shrink-then-regrow transition through the shared
executor/probe/pool wiring.
Refs #34
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QZQVP2tUuTLh8oL31D8heC1 parent fa9d622 commit d0df17f
27 files changed
Lines changed: 2209 additions & 60 deletions
File tree
- crates
- driven-core
- src
- migrations
- tests
- driven-diskstat
- src
- driven-test-fixtures
- src
- src-tauri
- src
- commands
- ui/src
- __tests__
- ipc
- locales
- views
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
50 | 54 | | |
51 | 55 | | |
52 | 56 | | |
| |||
0 commit comments