After discussing broader topics for a couple of meetups, we are taking on something more specific this time - Google's network load balancer. While general topics like writing testable code, REST, etc. are more applicable in day-to-day work, the deeper articles usually provide some insight into clever algorithms and architectures, which expand one's horizons. We hope that you will find the article enlightening, even if you don't happen to work on massively distributed systems or implement load balancers.
Maglev: A Fast and Reliable Software Network Load Balancer
Meeting Lifeguard: Konrad Malawski
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.
• Morning Paper's notes on the article