Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry
- C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony
Tung, Venkateshwaran Venkataramani
Scaling Memcache at Facebook Rajesh Nishtala, Hans Fugal, Steven - - PowerPoint PPT Presentation
Scaling Memcache at Facebook Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony Tung, Venkateshwaran Venkataramani Cesar Stuardo 2
Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry
Tung, Venkateshwaran Venkataramani
2
Scaling MemCache at Facebook @ CS34702 - 2018
❑ What is MemCached (or what was MemCached in 2013)?
Same Machine? Same Rack? 1-2 should be “cheaper” than 1-3
3
Scaling MemCache at Facebook @ CS34702 - 2018
▪ Hundreds of millions of people use it every day and impose computational, network, and I/O demands
❑ Main requirements ▪ Near realtime communication ▪ Aggregate content on the fly from multiple sources
▪ Access and update popular content
in a time window. ▪ Scale to process billions of user requests per second
4
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Workload characterization
5
Scaling MemCache at Facebook @ CS34702 - 2018
Read Write Look-Aside: Client controls cache (adds/deletes/updates data)
6
Scaling MemCache at Facebook @ CS34702 - 2018
MemCache Cluster MemCache Region MemCache Across Regions MemCache Single Server
1 2 3 4
7
Scaling MemCache at Facebook @ CS34702 - 2018
8
Scaling MemCache at Facebook @ CS34702 - 2018
❏ Memory Allocation ▪ Originally, slab classes with different sizes. When memory ran
▪ Modifications
met
short-lived keys
9
Scaling MemCache at Facebook @ CS34702 - 2018
15 clients generating traffic to a single memcache server with 24 threads Hit/Miss for different versions UDP vs TCP performance Each request fetches 10 keys
MemCache Server Web Server
10
Scaling MemCache at Facebook @ CS34702 - 2018
MemCache Client Web Server MemCache Client
MemCache Server
11
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Data is partitioned using
12
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Reducing Latency
▪ UDP for get requests
13
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Reducing Load
MemCache Server Web Server
14
Scaling MemCache at Facebook @ CS34702 - 2018
MemCache Server
Web Server Storage Server Storage Server
15
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Positive ▪ Smaller Failure Domain
❑ Negative
❑ Main challenges on replication
16
Scaling MemCache at Facebook @ CS34702 - 2018
Daemon extracts delete statements from database and broadcasts to other memcache nodes Deletes are batched to reduce packet rates
17
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Regional Pools ▪ Requests are randomly routed to all clusters
▪ Multiple front end clusters share the same
18
Scaling MemCache at Facebook @ CS34702 - 2018
19
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Positive ▪ Latency reduction (locality
❑ Negative
❑ Main challenges on consistency
20
Scaling MemCache at Facebook @ CS34702 - 2018
❑ From Master Region
21
Scaling MemCache at Facebook @ CS34702 - 2018
22
Scaling MemCache at Facebook @ CS34702 - 2018
23
Scaling MemCache at Facebook @ CS34702 - 2018
24
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Lessons learned (by them) ▪ Separating cache and persistent storage systems allowed to
25
Scaling MemCache at Facebook @ CS34702 - 2018
❑ Lessons Learned (by us)
26
Scaling MemCache at Facebook @ CS34702 - 2018