Skip to main content
Engineering, Backend, Data / ML

How Uber Serves Over 40 Million Reads Per Second from Online Storage Using an Integrated Cache

15 February / Global
Featured image for How Uber Serves Over 40 Million Reads Per Second from Online Storage Using an Integrated Cache
Image
Figure 1: Docstore architecture.
Image
Figure 2: CacheFront design.
Image
Figure 3: CacheFront read path.
Image
Figure 4: CacheFront read and write paths for invalidation.
Image
Figure 5: Example Docstore schemas and data modeling.
Image
Image
Figure 6: CacheFront Redis codec.
Image
Figure 7: Compare cache design.
Image
Figure 8: Cache warming design.
Image
Figure 9: Redis sharding request flows.
Image
Figure 10: Sliding window design.
Image
Figure 11: Adaptive timeouts latency improvements.
Image
Figure 12: Cache vs storage engine latency comparison.
Image
Figure 13: Total cache reads across all instances.
Preetham Narayanareddy

Preetham Narayanareddy

Preetham Narayanareddy is a Senior Software Engineer on the Core Storage team at Uber. He has worked on the design and implementation of many Docstore and CacheFront features and is focused on creating customer-centric products that enhance user experiences. In his free time he enjoys solving Rubik's cubes, cycling, bouldering, and sharing his passions through writing and videos.

Eli Pozniansky

Eli Pozniansky

Eli Pozniansky is a Sr Staff Engineer on the Core Storage team at Uber. He is the tech lead and one of the main developers of both CacheFront and Flux, responsible for leading the design, development and rollout to production of both projects from their inception to serving 10s of millions of cache hits per second.

Zurab Kutsia

Zurab Kutsia

Zurab Kutsia is a Staff Engineer, TLM on the Core Storage team at Uber. He is one of the main authors of Docstore and has designed and implemented multiple critical components of the database since its inception. Zurab now leads and manages the query engine layer of the Docstore ecosystem.

Afshin Salek

Afshin Salek

Afshin Salek is a Staff Engineer on the Core Storage team at Uber leading the Redis team. The Redis team at Uber manages tens of thousands of Redis nodes serving 100s of TiBs of capacity and 100s of millions of requests-per-second. Redis is used by 100s of microservices and virtually all the critical ones providing super low latency access to required data. In his free time, he enjoys traveling, photography, reading books and building Legos.

Piyush Patel

Piyush Patel

Piyush Patel is a Sr. Engineering Manager on the Core Storage Platform team at Uber. The team provides a world-class platform that powers all the critical functions and lines of business at Uber. The Core Storage Platform serves tens of millions of QPS with an availability of 99.99% or more and stores tens of Petabytes of operational data. His interests include large scale distributed systems, data storage and retrieval, and cloud computing.

Posted by Preetham Narayanareddy, Eli Pozniansky, Zurab Kutsia, Afshin Salek, Piyush Patel