Skip to content

test: benchmark MPMC on Tokio and replace Pollster - #300

Merged
tisonkun merged 2 commits into
apache:mainfrom
tisonkun:test/mpmc-tokio-benchmarks
Sep 11, 2026
Merged

test: benchmark MPMC on Tokio and replace Pollster#300
tisonkun merged 2 commits into
apache:mainfrom
tisonkun:test/mpmc-tokio-benchmarks

Conversation

@tisonkun

@tisonkun tisonkun commented Sep 11, 2026

Copy link
Copy Markdown
Member

Summary

MPMC comparisons currently measure dedicated OS threads driving async operations through Pollster. Add Tokio task benchmarks for asyncband, async-channel, and Flume, covering bounded/unbounded queues, current-thread/four-worker runtimes, and four producer/consumer topologies. Share the fixtures between the asyncband-only and ecosystem suites.

Replace Pollster in integration tests and channel benchmarks with the existing asyncband::blocking::FutureExt API, and remove the workspace dependency.

Design Notes

Keep the dedicated-thread workload as blocking_threads: it measures synchronous callers bridging into async channel APIs, including polling and parking overhead. The new tokio_tasks workload runs every producer and consumer in a spawned task; consumers compete until disconnection and drain all messages.

Regression coverage checks completion, received counts/checksums, capacity-one backpressure, uneven consumer counts, and last-sender drop. Related to #298.

Validation

  • cargo x lint, cargo x check, cargo x test, cargo +1.86.0 x test, cargo x miri, and cargo x bench --no-run.
  • Executed all 72 ecosystem and 24 asyncband-only MPMC cases with 20 samples each, plus smoke checks of the affected MPSC workloads.

@tisonkun
tisonkun enabled auto-merge (squash) September 11, 2026 06:50
@tisonkun
tisonkun merged commit ad5c96b into apache:main Sep 11, 2026
9 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