-
Multi-Hoster-Upload v3.3.98 Stable
released this
2026-06-21 17:56:49 +02:00 | 11 commits to master since this releasev3.3.98 — 1MB read-ahead to absorb read-bursts + config-persist/load instrumentation
v3.3.97 (
UV_THREADPOOL_SIZE64→8) was a decisive win: mean event-loop-delay at ~70 simultaneous uploads dropped 200 ms → ~11 ms (18×) and rss fell from 577 MB to ~287 MB, with the renderer healthy in 14 of 15 sampled windows. This release chases the residual roughness with a single behavioral change plus measurement.Localized residual (two separate, measured spike sources):
- Read-bursts. In the tail windows the file-read histogram inverts — file reads in flight climb to 66–70 against the 8-slot threadpool while socket writes collapse, and mean delay rises to 30–42 ms. GC is ruled out (max GC pause ≤27 ms in every window).
- A suspected synchronous config-persist stall — instrumented this build rather than asserted, because it rests on a single confounded sample.
Changes:
highWaterMark256 KB → 1 MB in all five streaming upload read loops (the 16 MB clouddrop chunked protocol size is untouched).UV_THREADPOOL_SIZEstays 8. This deepens each stream's read-ahead cushion from ~0.43 s to ~1.7 s, so a stream tolerates the threadpool queue without starving its socket write, and cuts read-completion callbacks and per-chunk buffer allocations ~4×. Upload byte-correctness is unaffected (Content-Length and multipart boundaries are independent of chunk size). Fully reversible.- Config-store instrumentation: the synchronous config load (full reparse) and serialize paths now log their wall-time, byte size, history length and queue length when they exceed 20 ms, to confirm or rule out a periodic persist stall in the next real-load measurement.
No upload behavior changed beyond the read-ahead size.
Downloads