Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web...

26
Hyperbolic Caching: Flexible Caching for Web Applications Aaron Blankstein Princeton University (now @ Blockstack Inc.) Siddhartha Sen Microsoft Research NY Michael J. Freedman Princeton University

Transcript of Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web...

Page 1: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Hyperbolic Caching: Flexible Caching for Web Applications

Aaron Blankstein

Princeton University

(now @ Blockstack Inc.)

Siddhartha Sen

Microsoft Research NY

Michael J. Freedman

Princeton University

Page 2: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Modern Web Applications

• Ubiquitous, important, diverse

2

Page 3: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Users Expect Performance

• Diversity of app ecosystem makes this hard

• Improving web app performance is not trivial

• Application caches are aggressively deployed for this

• But can hit rates be improved?

Page 4: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Application Caching on the Web

4

Web Tier Storage Tier

A-L

M-Z

Cache Tier

• Web-like Request Patterns

• Varying item costs• Item Expirations• Etc.

Page 5: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Cache Performance is About Eviction

• For long-tailed workloads, you CANNOT cache everything

• Hit rate (and miss rate) will depend on what you kick out

• Ideally – kick out things that are least likely to be requested

5

Page 6: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Tailoring Cache Eviction

• Web apps are different than disk or CPU caches:

• Size and cost are important!

• Request patterns are different

• Two goals of a tailored eviction strategy:

• Tailor to web-specific request distributions

• Tailor to the varying needs of different app settings

6

Page 7: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Traditional Caching Strategies Have Issues

• LRU and other recency based approaches:• Perform generally very well, but on stable, memoryless distributions,

outperformed by frequency strategies

• LFU:• Problems with traditional implementation (evict item with fewest hits)

• Punishes new items

• Old items may survive even after dropping in importance

7

Page 8: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Many Variants to Improve These Strategies

• GreedyDual incorporates cost with recency

• k-LRU uses multiple LRU queues (ARC is a self-balancing approach)

• Some even model this as an optimization problem

Page 9: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Many Variants to Improve These Strategies

• GreedyDual incorporates cost with recency

• k-LRU uses multiple LRU queues (ARC is a self-balancing approach)

• Some even model this as an optimization problem

Problem: All limited by use of an eviction data structure!

Page 10: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Key Insight:

Decouple item priorities from eviction data structures

Page 11: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

But How to Evict? Use Random Sampling

• We can use random sampling for eviction

• Now, item priorities do not necessarily need to be tied to a particular data structure

• This opens up the design space for prioritization

Page 12: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Why Now?

• Systems such as Redis already use random sampling• Use for efficiency and simplicity of implementation

• Approximates LRU

• Theoretical justification already exists (Psounis and Prabhakar)

• However, no one has proposed a strategy that leverages this flexibility

Page 13: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Hyperbolic Caching

• Flexible caching scheme

• Define priority function and do lazy evaluation with sampling to evict

• Focus on defining how important an object is, not data structures!

13

Page 14: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Hyperbolic Caching

• We define priority function

𝑝𝑟 𝑖 =𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑎𝑐𝑐𝑒𝑠𝑠𝑒𝑠

𝑡𝑖𝑚𝑒 𝑠𝑖𝑛𝑐𝑒 𝑖 𝑒𝑛𝑡𝑒𝑟𝑒𝑑 𝑐𝑎𝑐ℎ𝑒

• We allow for many different variations on this priority scheme

14

Page 15: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Hyperbolic Caching

• We define priority function

𝑝𝑟 𝑖 =𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑎𝑐𝑐𝑒𝑠𝑠𝑒𝑠

𝑡𝑖𝑚𝑒 𝑠𝑖𝑛𝑐𝑒 𝑖 𝑒𝑛𝑡𝑒𝑟𝑒𝑑 𝑐𝑎𝑐ℎ𝑒

• We allow for many different variations on this priority scheme

15

Frequency captures independent draws

property of workloads

Addresses problems of LFU by measuring relative popularity

Page 16: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Implementing Hyperbolic Caching

• Traditional eviction uses data structures for ordering

• Hyperbolic caching creates item re-orderings

• Example:

Item requests: A A B C C

A and B reordered when unrelated item is requested!

We can only do this because of random sampling!

16

Page 17: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Performance on Static Workload

• Items sampled from a static zipfian popularity distribution

-30%

-25%

-20%

-15%

-10%

-5%

0%

1.E+02 1.E+03 1.E+04 1.E+05

% C

han

ge in

Mis

s R

ate

Cache Size (in objects)

Miss Rate Performance compared to LRU

HC LFU

17

Page 18: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Performance on Memcachier Traces

• Cache sizes chosen by app developers

-25%

-20%

-15%

-10%

-5%

0%

5%

10%

15%

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

% M

iss

Rat

e D

elta

Memcachier Application #

HC Miss Rate Compared to LRU Miss Rate

18

Page 19: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Tailoring Caching for App Needs

Page 20: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Tailoring Hyperbolic Caching

• Item costs

• Items may impose different CPU or DB load on misses

• Item sizes affect per-item hit rate

• Expiration times

• Apps can give expirations to prevent staleness

• Item classes

• Items may have related costs, and should have grouped costs

21

𝑝𝑟′ 𝑖 = 𝑐𝑜𝑠𝑡𝑖 ∙ 𝑝𝑟(𝑖)

𝑝𝑟′ 𝑖 = (1 − 𝑒𝛼∙(𝑡𝑖𝑚𝑒 𝑡𝑖𝑙𝑙 𝑒𝑝𝑖𝑟𝑒𝑠)) ∙ 𝑝𝑟(𝑖)

𝑝𝑟′ 𝑖 = 𝑐𝑜𝑠𝑡(𝑔𝑟𝑜𝑢𝑝𝑖) ∙ 𝑝𝑟(𝑖)

Page 21: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Cost-Aware Caching: State of the Art

• GreedyDual is well-known approach for incorporating cost

• However, implementation is not trivial• LRU->GD requires changing the cache’s data structures

• HC -> HC+Cost just adds metadata and redefines priority function

• Furthermore, GD suffers on web workloads, because it is a recencybased approach

Page 22: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Cost-Aware Perf. on Memcachier Traces

-60%

-40%

-20%

0%

20%

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

% M

iss

Rat

e D

elta

Memcachier Application #

Miss Rates Compared to LRU Miss Rate

HC HC Size GD Size

23

Page 23: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Cost Classes

• Measure moving average of item costs over the class

• Cost of class can be updated while item A in cache

• Updating whole class very easy in our scheme

• Example use cases:• Class of items shares the same backend and related load

24

𝑝𝑟′ 𝑖 = 𝑐𝑜𝑠𝑡(𝑔𝑟𝑜𝑢𝑝𝑖) ∙ 𝑝𝑟(𝑖)

Page 24: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Dealing with Backend Load

• Items are requested from two different backends

• At time t=120, one server is stressed

14

15

16

17

18

19

20

21

22

0 50 100 150 200 250 300 350

95

th p

cnti

leLa

ten

cy (

ms)

Time (s)

Per-Item

Per-Class

25

Page 25: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Hyperbolic Caching Related Work

• Recent Application Cache Eviction Work• RIPQ – implementing size-awareness on flash

• GDWheel – fast implementation of GD

• CliffScaler – improving the LRU approx. of Memcached

• Web Proxy Caching• Many different projects demonstrating performance benefits of GD

• Hyperbolic Caching’s prioritization outperforms these on our workloads

26

Page 26: Hyperbolic Caching: Flexible Caching for Web Applications...Application Caching on the Web 4 Web Tier Storage Tier A-L M-Z Cache Tier •Web-like Request Patterns •Varying item costs

Conclusion

• Focusing on prioritizing items, hyperbolic caching improves caching performance on web-like workloads

• The scheme allows for a multitude of easily constructed variants

• We demonstrate performance as good as competitive baselines, and in many cases much better

• Fork us! Our Redis prototype and simulation code are at:github.com/kantai/hyperbolic-caching