Maglev: A Fast and Reliable Software Network Load Balancer
Venue
13th USENIX Symposium on Networked Systems Design and Implementation (NSDI 16), USENIX Association, Santa Clara, CA (2016), pp. 523-535
Publication Year
2016
Authors
Danielle E. Eisenbud, Cheng Yi, Carlo Contavalli, Cody Smith, Roman Kononov, Eric Mann-Hielscher, Ardas Cilingiroglu, Bin Cheyney, Wentao Shang, Jinnah Dylan Hosein
BibTeX
Abstract
Maglev is Google’s network load balancer. It is a large distributed software system
that runs on commodity Linux servers. Unlike traditional hardware network load
balancers, it does not require a specialized physical rack deployment, and its
capacity can be easily adjusted by adding or removing servers. Network routers
distribute packets evenly to the Maglev machines via Equal Cost Multipath (ECMP);
each Maglev machine then matches the packets to their corresponding services and
spreads them evenly to the service endpoints. To accommodate high and
ever-increasing traffic, Maglev is specifically optimized for packet processing
performance. A single Maglev machine is able to saturate a 10Gbps link with small
packets. Maglev is also equipped with consistent hashing and connection tracking
features, to minimize the negative impact of unexpected faults and failures on
connection-oriented protocols. Maglev has been serving Google's traffic since 2008.
It has sustained the rapid global growth of Google services, and it also provides
network load balancing for Google Cloud Platform.