Comment by readthenotes1
Comment by readthenotes1 a day ago
I wonder how many times reliable UDP has been implemented? It's gotta be gazillions...
Comment by readthenotes1 a day ago
I wonder how many times reliable UDP has been implemented? It's gotta be gazillions...
In general most people don't do networking right, especially within real-time systems.
As people discover the problems with their approach, they rewrite it.
I'm my experience it's generally better not to have transparently reliability for lost data as well. The correct handling should be application-specific.
With Aaron I would think the focus should be on 'efficiƫnt', not reliable. Within a datacenter they are orders of magnitude faster than plan UDP. You get this crazy efficiency at the cost of reduced flexibility in how you send messages.
I haven't seen the makers of Aeron (or anyone else) claim it's "orders of magnitude faster than plain UDP." Do you have a link to something about this? It doesn't pass the smell test for me unless you're talking specifically about using Aeron within a single machine (where it uses shared memory instead of the network)...but you said "Within a datacenter" not "Within a computer."
It has been a while since I saw their presentation. What I remember is that Aaron has an insanely low delay even in the high percentiles, that is orders of magnitude better. Throughput for a large stream of data is probably similar to plain UDP. Please correct me if I remember wrong.
It does have great tail latency. But it's not a silver bullet, but careful engineering. And you pay for the latency with spinning threads. It's the architecture that makes it to stand out. In the end, it's just the same old UDP sockets, not even io_uring at least in the free public version. But one can use LD_PRELOAD if hardware has this trick - but again, it's not specific to Aeron.
Millions of times every year by all university students doing introduction to UNIX networking protocols projects across the planet.