aquatic_ws (WebTorrent tracker) rewritten with glommio, achieves up to 1.6 million responses a second in load tests
I've rewritten aquatic\_ws, my WebTorrent tracker implementation, to utilise glommio, a Rust thread-per-core async runtime using io\_uring. I did a fresh round of load test benchmarks to get an idea of performance relative to other implementations.
Results:
- aquatic\_ws (Rust) reached up to 1.6 million (!) responses a second with 24 worker threads. With 2 workers, the minimum, it reached 84 thousand.
- wt-tracker (nodejs, single-threaded) reached 31 thousand responses a second
- openwebtorrent-tracker (C++, single-threaded) reached 9 thousand responses a second
I don't know of any multithreaded WebTorrent tracker implementations besides aquatic\_ws.
Copy-pasted caveats from full load test result document:
This is a performance comparison of several WebTorrent tracker implementations, using aquatic\_ws\_load\_test. It is somewhat unrealistic, as it simulates a relatively small number of clients, each sending a large number of requests. Nonetheless, I think that it gives a useful indication of relative performance.