Repository navigation
v0.1.7
Highlights
backend-sharding autois the default. The proxy runs one experiment for itself, judged on its whole command rate: sessions start on their worker's own connections, a probe moves the proxy to the shared per-node pipes when the workers are busy and thin batches, and the move stays only where the measured rate is higher; a later fall in that rate re-arms the probe. On a 128-master rigautosits within the noise floor of the best fixed mode in the fan-out lane (P16 GET 8.98M vsyes9.01M,no5.54M) and within 2% in the sliding-pipeline lane whereyesloses 17%. A single worker with one connection per node has nothing to share and runs asno.INFOreportspipes_prefer_shared,pipe_probes,pipe_keeps,pipe_revertsand per-workerworker_busy.- A refused
CLIENT CACHINGopt-in is harmless. A backend answering a reply-cache fill's opt-in with the tracking-off error now gets its tracking frame again on that connection, the request runs once more without the opt-in (a fan-out part at its slot's current owner, following one redirect), and the client sees its reply; nothing fills. Dials, rearms and tracker arrivals log at debug level, a refusal at warn. - Ownership pass over the whole crate: a remembered script is stored as its
SCRIPT LOADframe (a watchedEVALSHAno longer copies the script body per command), the dispatch subcommand lookup reuses the parsed argument iterator, and the writer's ready buffer sheds a large excursion's capacity. Measured on the rig: the single-key path allocates 0.02 times per command, all of it read-buffer chunk turnover. - Hot path: every batch was A/B-measured against its base on the 128-master rig; the release head is flat against v0.1.6 inside the A/A floor (P16 GET +1.3% with A/A +0.9%, SET −0.2% with A/A −0.6%).
Changelog
Performance
- 3df1b1c perf: backend-sharding defaults to auto
- 3e10ce1 perf: only a lighter load on the shared pipes voids the decision
- b1db534 perf: a rate shift is judged once the rate is steady, and a pause changes nothing
- d49a99e perf: a changed workload ends the tuner's wait
- fd9042c perf: one experiment for the whole proxy, judged on its whole command rate
- 1d5a0a4 perf: the auto tuner keeps the shared pipes only where they measure faster
Bug fixes
- 039682e fix: a rerun fan-out part follows one redirect
- 9440101 fix: a refused fan-out part reruns at the slot's current owner
- 5571c6e fix: rerun a refused opt-in for fan-out parts and only for a filled request
- 6902904 fix: a refused caching opt-in re-tracks the connection and reruns the request
- b78dff4 fix: one worker with several connections per node still has a lane to choose
- d65e426 fix: one worker has nothing to share, and the docs qualify the shared-nothing claim
- 993286c fix: an idle pause is not a settled rate
- 3be4008 fix: a probe after a rate shift waits one window, and a steady baseline spreads under a quarter
- a96c935 fix: a probe needs a steady baseline
- ea3c0d7 fix: a losing trial left in the rate ring is not a changed workload
- 762682c fix: only a switch that stays wanted pauses a session to drain
- 611b6cd fix: a pipelining session drains for the move back to its worker's connections
Other
Full Changelog: v0.1.6...v0.1.7