6LB: Scalable and Application-Aware Load Balancing with Segment Routing In IEEE Transactions on Networking

Saturday morning, after a long (and, very constructive) process, came the long-awaited email from the IEEE: our paper “6LB: Scalable and Application-Aware Load Balancing with Segment Routing” was definitely accepted for publication in the IEEE Transactions on Networking.  The paper is currently available from the IEEE as an Early-Access paper — and, as the IEEE has the most fair author-rights policies, also from my personal website.

What we propose in the paper is actually really exciting: using the emerging paradigm of Segment Routing, we’re able to offer application-instance load aware, yet application-agnostic, load balancing as a network service – that is, directly in the forwarding plane and below Layer 4 – and that, without any out-of-band signaling.

And best of all, it turns out to be really efficient – on the figure below, SR is the mechanism proposed, and “lower is better. Go read the paper for details of why, how, and by how much 😉

The abstract of the paper reads:

Network load-balancers generally either do not take application state into account, or do so at the cost of a central- ized monitoring system. This paper introduces a load-balancer running exclusively within the IP forwarding plane, i.e. in an application protocol agnostic fashion – yet which still provides application-awareness and makes real-time, decentralized deci- sions. To that end, IPv6 Segment Routing is used to direct data packets from a new flow through a chain of candidate servers, until one decides to accept the connection, based solely on its local state. This way, applications themselves naturally decide on how to fairly share incoming connections, while incurring minimal network overhead, and no out-of-band signaling. A consistent hashing algorithm, as well as an in-band stickiness protocol, allow for the proposed solution to be able to be reliably distributed across a large number of instances.
Performance evaluation by means of an analytical model and actual tests on different workloads (including a Wikipedia replay as a realistic workload) show significant performance benefits in terms of shorter response times, when compared to a traditional random load-balancer. In addition, this paper introduces and compares kernel bypass high-performance implementations of both 6LB and a state-of-the-art load-balancer, showing that the significant system-level benefits of 6LB are achievable with a negligible data-path CPU overhead