real-logic / aeron

Efficient reliable UDP unicast, UDP multicast, and IPC message transport
https://aeron.io
Apache License 2.0
7.43k stars 892 forks source link

Multicast slow consumer on same box behaviour #1669

Closed fquinner closed 2 weeks ago

fquinner commented 1 month ago

I'm trying to evaluate Aeron to see if it is suitable for our use case, but I am finding it's treatment of slow consumers on the same box to be unexpected.

I have seen this (though it's from a while ago - packages, classes etc have all changed) which suggests multiple media drivers to try and isolate the slow consumer, but we are specifically trying to reduce NIC PCIe noise by using Aeron so we would want to avoid that route.

I tried playing with tether configuration too since that seemed like it was designed for this scenario but it did not seem to have any effect no matter what timeouts I tried. I do find the documentation on this topic fairly difficult to get my head around though so perhaps I have misunderstood.

Am I missing something or is this expected behaviour?

mikeb01 commented 1 month ago

Using max flow control should give you the desired behaviour. If you could produce a code example that simulated the problem that you are seeing, then we could investigate in more detail.

vyazelenko commented 2 weeks ago

@fquinner Multiple subscribers to the same channel/stream on the same media driver will share a receiver endpoint. That means that they will all be treated as a single unit for the flow control purposes. If you want to treat those subscriber separately you'll need to set tether=false in the channel uri for the subscribers that you want to be disconnected if they fall behind.