Skip to content

ps-st3 0.6.2: correct parking, short-idle locality and no_std OS waits - #6

Merged
pathscale merged 8 commits into
mainfrom
fix/ready-work-before-idle-backoff
Sep 11, 2026
Merged

pathscale merged 8 commits into
mainfrom
fix/ready-work-before-idle-backoff

Conversation

@pathscale

@pathscale pathscale commented Sep 11, 2026 •

Copy link
Copy Markdown
Owner

ps-st3 0.6.2 fixes ready-work handling and a parking race, exposes the OS parker without Rust std, and selects a short idle budget for locality.

A worker that reaches its LIFO quota now continues ready work without an idle backoff. The final check after announcing sleep includes peer queues, closing the gap between the last search and sleep. Publication and wake ordering have deterministic regression coverage.

Locality uses four empty search rounds of 128 spin hints before host parking. The opt-in Rust preset almost_tokio() exposes displaced jobs through a FIFO inbox, exposes the warm task at a three-poll quota and parks without idle spin rounds. This is the policy named parking in historical reports; the earlier aggressive-spin preset was retired. Existing presets retain their routing semantics; LowLatency in WorkTable keeps its explicit aggressive idle budget. There is no DSL grammar change.

atomic-host exposes AtomicHost with a caller-supplied monotonic clock and retained wake permits. StdHost delegates to the same implementation. Host creation does not create worker threads or drive timers.

Release tests, Clippy with warnings denied, deterministic handshakes and queue/fanout regressions pass. The final head 2374640 passes every remote CI lane, including Rust 1.60, stable, Loom, lint and documentation checks. The no_std host was checked on macOS, Windows GNU and ARM Linux musl; portable fanout was checked on a bare-metal target.

The consolidated perf-benchmarks PR records throughput, CPU use between bursts, OS-policy controls and the default decision. The prior large spin budget is retained in dated evidence, not treated as the final baseline. Merge and publish 0.6.2 before Nagoya 0.1.2's registry-only checks.

At the LIFO quota, a lone task remains stealable without waking a sleeping peer. Wakeups are retained when the owner has other ready work. Deterministic tests cover both cases. In the paired twelve-worker/four-client arithmetic control this removed over 200 task migrations and improved throughput about fivefold, with CPU use falling from about eleven CPU-time cores to four. Long table reads did not improve: throughput fell 6–9% while CPU efficiency improved. This is an opt-in scheduler overhead fix, not a database throughput claim. The default non-stealable Locality path is unchanged.

@pathscale pathscale changed the title Fix idle backoff on ready local tasks and release 0.6.2 ps-st3 0.6.2: fix parking races and expose no_std OS waits Sep 11, 2026
@pathscale pathscale changed the title ps-st3 0.6.2: fix parking races and expose no_std OS waits ps-st3 0.6.2: correct parking, short-idle locality and no_std OS waits Sep 11, 2026
@pathscale
pathscale merged commit 8f65dbc into main Sep 11, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant