Overview
Explore a conference talk from SREcon19 Asia/Pacific that delves into Aperture, a non-cooperative, client-side load balancing algorithm developed by Twitter. Discover how Twitter's RPC framework, Finagle, employs this unique approach to load balancing and the challenges it faces as service clusters grow to thousands of instances. Learn about the evolution of Twitter's client-side load balancer, service-to-service load balancing, and the intricacies of random aperture and its limitations. Gain insights into the development of discrete coordinates, destination rings, and composite rings, as well as the implementation of continuous coordinates and multiple service rings. Understand the dynamic aperture size, resilience measures, and the migration process from random aperture to D-Aperture. Examine the reduction in request retries achieved through this algorithm and consider the limitations and future work in this area of load balancing technology.
Syllabus
Intro
TWITTERS CLIENT-SIDE LOAD BALANCER EVOLUTION
SERVICE-TO-SERVICE LOAD BALANCING
EXAMPLE SERVICE TOPOLOGY
RANDOM APERTURE: UNFAIR
RANDOM IS STATISTICAL
CONFIGURED RANDOM APERTURE
DISCRETE COORDINATES
DESTINATION RING
COMPOSITE RINGS
SESSION HISTOGRAM
CONTINUOUS COORDINATES
MULTIPLE SERVICE RINGS
CONTINUOUS COORDINATE MODEL
DYNAMIC APERTURE SIZE
RESILIENCY
MIGRATION FROM RANDOM APERTURE TO D-APERTURE
REDUCTION IN REQUEST RETRIES
LIMITATIONS
FUTURE WORK
Taught by
USENIX