Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al....

49
Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae for CS6410 Most slides from Qi Huang (SOSP 2013 ) and Peter Vajgel (OSDI 2010 )

description

Dynamic (hard to cache; TAO) Static (photos, normally easy to cache)

Transcript of Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al....

Page 1: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Serving Photos at Scaaale:

Caching and StorageAn Analysis of Facebook Photo Caching. Huang et al.

Finding a Needle in a Haystack. Beaver et al.

Vlad Niculae for CS6410Most slides from Qi Huang (SOSP 2013) and Peter Vajgel (

OSDI 2010)

Page 2: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 3: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Dynamic (hard to cache; TAO)

Static (photos, normally easy to cache)

Page 4: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Dynamic (hard to cache; TAO)

Static (photos, normally easy to cache)

Page 5: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Dynamic (hard to cache; TAO)

Static (photos, normally easy to cache)

CDN

Page 6: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Qi Huang, Ken Birman, Robbert van Renesse (Cornell), Wyatt Lloyd (Princeton, Facebook),

Sanjeev Kumar, Harry C. Li (Facebook)

An Analysis ofFacebook Photo Caching

Page 7: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Dynamic (hard to cache; TAO)

Static (photos, normally easy to cache)“Normal” site CDN hitrate ~99%

CDN

Page 8: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Dynamic (hard to cache; TAO)

Static (photos, normally easy to cache)“Normal” site CDN hitrate ~99%For Facebook, CDN hitrate ~80%

CDN

Page 9: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

CacheLayers

StorageBackend

Page 10: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Facebook Edge Cache

DatacenterBrowse

r Cache

Client

AkamaiOrigin Cache

Backend

Cache layers

Page 11: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Facebook Edge Cache

DatacenterBrowse

r Cache

Client

Akamai Origin Cache

Backend

Cache layers

(no access)

Page 12: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Facebook Edge Cache

DatacenterBrowse

r Cache

Client

Origin Cache

Backend

Cache layers

Points of presence:IndependentFIFOMain goal: reduce bandwidth

Page 13: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Facebook Edge Cache

DatacenterBrowse

r Cache

Client

Origin Cache

Backend

Cache layers

Origin:CoordinatedFIFOMain goal: traffic sheltering

Page 14: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Facebook Edge Cache

DatacenterBrowse

r Cache

Client

Origin Cache

Backend

Cache layers

Origin:Coordinated.FIFOMain goal: traffic sheltering

hash

Page 15: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Facebook Edge Cache

DatacenterBrowse

r Cache

Client

Origin Cache

Backend

Cache layers

Analyze traffic in production!

Instrument client JS

Log successful requests.

Correlate across layers.

Page 16: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

18

Sampling on Power-law

Object-based

Object rank• Object-based: fair coverage of unpopular content• Sample 1.4M photos, 2.6M photo objects

Page 17: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Data analysis

Page 18: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

21

77.2M

26.6M11.2M

7.6M

Backend (Haystack

)

Browser

Cache

Edge Cache

OriginCache

PoPClient

Data Center

65.5%58.0%

31.8%

R

Traffic Share

65.5% 20.0% 4.6% 9.9%

Page 19: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

22

Object rank

Page 20: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

23

Popularity Distribution

• Backend resembles a stretched exponential dist.

Page 21: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

24

Popularity Impact on Caches

• Backend serves the tail

70% Haystack

Page 22: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

A B C D E F G0

10

20

30

40

50

60

70

80

90

100

Hit rates for each level (fig 4c)

Browser Edge Origin

Page 23: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

What if?

Page 24: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

29

Edge Cache with Different Sizes

• “Infinite” size ratio needs 45x of current capacity

Infinite Cache

65% 68%59%

• Picked San Jose edge (high traffic, median hit ratio)

Page 25: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

30

Edge Cache with Different Algos

• Both LRU and LFU outperform FIFO slightly

Infinite Cache

Page 26: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

31

S4LRUCache Space

More Recent

L3

L2

L1

L0

Page 27: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

35

Edge Cache with Different Algos

• S4LRU improves the most

68%

1/3x

Infinite Cache

59%

Page 28: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

36

Edge Cache with Different Algos

• Clairvoyant => room for algorithmic improvement.

Infinite Cache

Page 29: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

37

Origin Cache

• S4LRU improves Origin more than Edge

14%Infinite Cache

Page 30: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

38

Geographic Coverage of EdgeSmall working set

Page 31: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

39

Geographic Coverage of Edge

Atlanta

20% local

5% Dallas

35% D.C.

5% NYC

20% Miami

5% California

10% Chicago

• Atlanta has 80% requests served by remote Edges. Not uncommon!

Page 32: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

40

Geographic Coverage of Edge

Amplified working set

Page 33: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

41

Collaborative Edge

Page 34: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

42

Collaborative Edge

• “Collaborative” Edge increases hit ratio by 18%

18%

Collaborative

Page 35: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 36: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 37: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 38: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

What Facebook Could Do:• Improve cache algorithm (+invest in cache algo

research)• Coordinate Edge caches• Let some phones resize their own photos• Use more machine learning at this layer!

Page 39: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 40: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.

Backend storage for blobs• Some requests are bound to miss the caches.• Reads >> writes >> deletes.• Writes often come in batches (Photo Albums)• In this regime, Facebook found default solutions not to

work.

Page 41: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 42: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 43: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 44: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 45: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 46: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 47: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 48: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.
Page 49: Serving Photos at Scaaale: Caching and Storage An Analysis of Facebook Photo Caching. Huang et al. Finding a Needle in a Haystack. Beaver et al. Vlad Niculae.