Local benchmarks show TCP distribution achieving 40k+ msg/s for small messages, scaling to
1.4 GB/s for 64KB messages. QUIC distribution provides comparable throughput with the added
benefits above.
Right now the implementation is opening multiple streams but only use the first one for distribution data and then maintain explict ordering. So the multi-stream benefit is limited to:
Priority separation: control stream (stream 0, urgency 0) vs data streams (urgency 4-6)
Ticks bypass congestion: the control stream uses separate flow control allowance
To actually use multiple streams without violating signal ordering guarantee, I think we may have 2 choices:
hash by send-receiver pid pair, the same pair will use the same stream
Hash by sender pid. which would just preserve ordering for a process. Which should be enough.
(1) is more correct imo . But not sure there is a real benefit t of multiple stream. The only benefit is maybe busy flow that would not block others. But there is still the need for a connection flow control, and the receiver will be a single process anyway. Currenyt implementation is more simpler and effective.
in coming 0.12 there will be an api to allow to exploit the distribution connection for data, allowing it to open some kind of βsidecarβ streams.
While I think that (1) is more correct, I think that (2) should be simpler and provide similar performance while being much simpler to implement and easier to manage.