• How Uber Conquered Database Overload: The Journey from Static Rate-Limiting to Intelligent Load Management 13 January / GlobalIntroduction Uber’s thousands of microservices handle traffic for over 170 million monthly active users: riders, Uber Eats users, drivers, and couriers. • At the heart of this infrastructure are Docstore and Schemaless, Uber’s in-house distributed databases built on top of MySQL®. • These databases span thousands of clusters, store tens of petabytes of operational data, and serve tens of millions of requests per second with billions of rows read or updated. • They back some of the most latency-sensitive and mission-critical workloads, powering every business vertical at Uber: from rides and deliveries to maps, payments, and beyond. • At this scale, even minor overloads aren’t isolated events, they cascade. • A brief spike in one part of the system can ripple outward: downstream services time out, retries pile up, and degradation amplifies into broader failure.
Article Summaries:
- Uber’s microservice ecosystem, serving 170 million active users, relies on its in‑house databases Docstore and Schemaless built atop MySQL. These systems handle tens of petabytes and millions of requests per second, making any overload a cascading failure. Initially, Uber tried a quota‑based rate limiter in the stateless query engine, assigning capacity units to requests and using Redis to track quotas. The approach added complexity, extra network hops, and failed to provide real‑time shedding of traffic to overloaded partitions. In response, Uber developed an intelligent load manager that aggregates multiple signals to detect overload and enforce fair, stable access to its distributed databases.
Sources: