Hyperbolic Caching: Flexible Caching for Web Applications

https://www.usenix.org/conference/atc17/technical-sessions/presentation/blankstein

Presentation

  • Multi-tier data center

  • Cache tier: e.x. redis or memcache

    • Properties: web-like request pattern, various item cost, item expiration and so on

  • Number of accesses: Frequency captures independent draws property of workloads

  • Time since i entered cache: Addresses problem of LFU by measuring relative popularity

Item requests: A A B C C

  • t = 1: pr(A) = 1

  • t = 2: pr(A) = 1

  • t = 3: pr(A) = 2/3, pr(B) = 1

  • t = 4, pr(A) = 2/4, pr(B) = 1/2, pr(C) = 1

  • t = 5, pr(A) = 2/5, pr(B) = 1/3, pr(C) = 2/2 = 1

  • Static workload

  • caching as a service company

  • 16 applications with cache sizes chosen by the application developers

    • Only a few which Hyperbolic performs worse

  • item costs

    • CPU / DB load: experience a miss, cause the item is the result of the join rather than simple look up

  • GreedyDual

    • Incorporating cost into LRU

  • Stress one of the backend and measure tail latency

  • Tracking costs per item and per class

    • Load one of the backend, takes time to adjust to the knowledge --> spike in latency that is not experienced by per-class

Last updated