And according to Tyler's data (fast.ly CDN data since he's the CTO there), it beats all the current load balancing algorithms including Join-Shortest-Queue. Six years later, I wonder:
a) was there any other novel / better algorithms tops JIQ in LB performance?
b) has Microsoft Azure LB uses JIQ internally in their LB offerings?
c) has any open source LB software implement JIQ algorithm on the horizon? (according to Tyler, he found none.)
Can someone with expertise share some lights on these? Thanks.
The idea being that, on top of a general purpose message stream, you overlay a back-channel where the stream receiver can signal to the producer how many more messages it's ready to handle.
Effectively what this does is moving the implicit back-pressure you get from network buffers up to an application level thing, where something like an app server can reason about how much load it's willing to take on.
Shameless plug: If you think that seems cool and are into Go, I wrote a client+server impl of ReactiveSocket that I'd love API feedback on from more experienced Go devs.. https://github.com/jakewins/reactivesocket-go
I have zero background in academic computer science, so it may take me a while to understand even one of these papers.