<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/frzlndmaf" -->

---
title: How Uber Conquered Database Overload: The Journey from...
description: Uber evolved its database overload protection from simple quota-based rate limiting to an intelligent load management system. The journey involved replacing...
canonical: https://daily.dev/posts/frzlndmaf
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How Uber Conquered Database Overload: The Journey from Static Rate-Limiting to Intelligent Load Management | daily.dev
og:description: Uber evolved its database overload protection from simple quota-based rate limiting to an intelligent load management system. The journey involved replacing...
og:url: https://daily.dev/posts/frzlndmaf
og:image: https://api.daily.dev/og/posts/FRZLNdmAF.png
og:image:alt: Post cover image
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How Uber Conquered Database Overload: The Journey from Static Rate-Limiting to Intelligent Load Management

**[SeyoungCho](https://daily.dev/sources/o3uczsadxc0iladsoh3rx)** · [@seyoungcho](https://daily.dev/seyoungcho) · 47 upvotes · 3 comments

## Summary

Uber evolved its database overload protection from simple quota-based rate limiting to an intelligent load management system. The journey involved replacing static CoDel queues with Cinnamon, a priority-aware load shedder that uses PID-based control to dynamically adjust queue timeouts and inflight limits. The final architecture unifies multiple overload signals (concurrency, memory, write bytes, follower lag) into a single pluggable decision-making engine that sheds traffic by priority while maintaining fairness across tenants. This resulted in 80% higher throughput under overload, ~70% reduction in P99 latency, and ~93% fewer goroutines during stress.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.uber.com/en-KR/blog/from-static-rate-limiting-to-intelligent-load-management/>

## Community discussion

Top comments from developers on daily.dev.

**@ghost** · 3 upvotes

> Cool. But still remember that your app isn’t uber so just use something simpler first before over engineering into 999 microservices and load balancers

**@gaburayondev** · 1 upvotes

> The shift from static CoDel queues to a PID-controlled, priority-aware shedder is the real architectural leap here. Static thresholds always break under novel traffic patterns — PID controllers adapt in real time, which explains those gains (80% throughput, ~70% P99 latency drop). What's underrated is the unified signal layer: combining concurrency, memory, write bytes, AND follower lag into one pluggable engine means the system degrades gracefully instead of catastrophically. Most teams bolt on overload protection as an afterthought — this is a first-class design. Would love to see how...

## Similar posts on daily.dev

- [Uber Moves from Static Limits to Priority-Aware Load Control for Distributed Storage](https://daily.dev/posts/uber-moves-from-static-limits-to-priority-aware-load-control-for-distributed-storage-238nm1f0q) · InfoQ · 0 upvotes · 0 comments
- [How Uber Serves over 150 Million Reads per Second from Integrated Cache](https://daily.dev/posts/how-uber-serves-over-150-million-reads-per-second-from-integrated-cache-mjlsygxjr) · ByteByteGo · 218 upvotes · 5 comments
- [Why Queues Don’t Fix Overload \(And What To Do Instead\)](https://daily.dev/posts/why-queues-don-t-fix-overload-and-what-to-do-instead--z9coej1wx) · P99 Conf · 0 upvotes · 0 comments
- [Why Our Services Were Shedding Load Too Early, And How We Fixed It](https://daily.dev/posts/why-our-services-were-shedding-load-too-early-and-how-we-fixed-it-hqqortijp) · Groww Engineering · 3 upvotes · 0 comments

---

Tags: [#database](https://daily.dev/tags/database), [#mysql](https://daily.dev/tags/mysql), [#distributed-systems](https://daily.dev/tags/distributed-systems), [#uber](https://daily.dev/tags/uber)

[View this post on daily.dev](https://daily.dev/posts/frzlndmaf)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/frzlndmaf","headline":"How Uber Conquered Database Overload: The Journey from Static Rate-Limiting to Intelligent Load Management","text":"Shared: How Uber Conquered Database Overload: The Journey from Static Rate-Limiting to Intelligent Load Management","url":"https://daily.dev/posts/frzlndmaf","datePublished":"2026-02-02T23:06:45.691Z","dateModified":"2026-02-02T23:07:24.346Z","author":{"@type":"Person","name":"SeyoungCho","url":"https://daily.dev/seyoungcho","image":"https://media.daily.dev/image/upload/s---QniJFEK--/f_auto/v1724901542/avatars/avatar_O3ucZSadxc0iLADSOH3rX","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":9350}},"image":"https://media.daily.dev/image/upload/s--OHB84bZF--/f_auto/v1722860399/public/Placeholder%2010","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":47},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":3}],"sharedContent":{"@type":"WebPage","url":"https://api.daily.dev/r/vQGUwttwZ"},"comment":[{"@type":"Comment","text":"Cool. But still remember that your app isn’t uber so just use something simpler first before over engineering into 999 microservices and load balancers","datePublished":"2026-03-14T10:10:00.117Z","url":"https://daily.dev/posts/FRZLNdmAF#c-C5ULDYB5H","author":{"@type":"Person","name":"Deleted user","url":"https://daily.dev/ghost","image":"https://media.daily.dev/image/upload/s--hNIUzLiO--/f_auto/v1705327420/public/ghost_vlftth"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":3}},{"@type":"Comment","text":"The shift from static CoDel queues to a PID-controlled, priority-aware shedder is the real architectural leap here. Static thresholds always break under novel traffic patterns — PID controllers adapt in real time, which explains those gains (80% throughput, ~70% P99 latency drop). What’s underrated is the unified signal layer: combining concurrency, memory, write bytes, AND follower lag into one pluggable engine means the system degrades gracefully instead of catastrophically. Most teams bolt on overload protection as an afterthought — this is a first-class design. Would love to see how Cinnamon handles priority inversion edge cases at extreme load.","datePublished":"2026-03-13T14:29:29.744Z","url":"https://daily.dev/posts/FRZLNdmAF#c-OBWf21sLV","author":{"@type":"Person","name":"Gabu Rayon Dev","url":"https://daily.dev/gaburayondev","image":"https://media.daily.dev/image/upload/s--5hPC52y_--/f_auto/v1773412842/avatars/avatar_8fkdziGASnSSBES6c4Ml9?_a=BAMAMiiu0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/o3uczsadxc0iladsoh3rx","name":"SeyoungCho"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"SeyoungCho","item":"https://daily.dev/sources/o3uczsadxc0iladsoh3rx"},{"@type":"ListItem","position":3,"name":"How Uber Conquered Database Overload: The Journey from Static Rate-Limiting to Intelligent Load Management"}]}
```

