# Hyperbolic Caching: Flexible Caching for Web Applications

### Presentation&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fIbOEbcZH87awRn35%2Fimage.png?alt=media\&token=89c93a2e-d090-4542-b243-9f564dc810e8)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fIeAA6asvM0N_S8BC%2Fimage.png?alt=media\&token=48e858a8-72b8-4da9-8b82-ace3d6a2717a)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fIhc5ulatgyGDA0mz%2Fimage.png?alt=media\&token=4eaee501-ddbd-47e2-8af9-4594fbf04c92)

* Multi-tier data center&#x20;
* Cache tier: e.x. redis or memcache&#x20;
  * Properties: web-like request pattern, various item cost, item expiration and so on&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fJ3g3Ax8WR7W8olM5%2Fimage.png?alt=media\&token=99648c8a-05e6-4107-9e4c-6ef517ee7c24)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fJ8V3IV3wflIMXvV_%2Fimage.png?alt=media\&token=b218a7dc-6447-4caa-aecb-3a512c34bc8c)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fJHL85tcmV6D7zMUw%2Fimage.png?alt=media\&token=8ddcdf2a-02e2-4da9-ae1e-f931ec58a5ab)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fJUjS3UoPC9i5D70E%2Fimage.png?alt=media\&token=6a777736-16ed-494f-a689-a7c9ad37a9c3)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fJagby3VyDN8Xjb1_%2Fimage.png?alt=media\&token=962f4b65-f9ac-4d13-a370-0ff3918a629c)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fJlyI1iTNdBJKKiae%2Fimage.png?alt=media\&token=b6ba58e6-e64d-4085-ad6c-73d02d90591b)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fJpwhawhCgIXFHnyc%2Fimage.png?alt=media\&token=c708516a-4cd8-454c-adea-14d621fdf240)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fK17r25xFKY17Yah8%2Fimage.png?alt=media\&token=bbb688fb-b909-4c78-9980-ac69343517da)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fK4oKgYds1HCx-bnp%2Fimage.png?alt=media\&token=ac868ce7-69e9-4712-b445-1284fd1f91c4)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fXxNNOUkHmuvSzwVJ%2Fimage.png?alt=media\&token=525f62ac-9322-4e1b-a251-0d41dcdfd9d7)

* Number of accesses: Frequency captures independent draws property of workloads&#x20;
* Time since i entered cache: Addresses problem of LFU by measuring relative popularity&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fYgxbUSMdCPGXun-K%2Fimage.png?alt=media\&token=d25ea1f6-991d-465a-b0f7-09b3ac968dc0)

Item requests: A A B C C&#x20;

* t = 1: pr(A) = 1&#x20;
* t = 2: pr(A) = 1&#x20;
* t = 3: pr(A) = 2/3, pr(B) = 1&#x20;
* t = 4, pr(A) = 2/4, pr(B) = 1/2, pr(C) = 1&#x20;
* t = 5, pr(A) = 2/5, pr(B) = 1/3, pr(C) = 2/2 = 1&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fZkbvUnycozU0moW-%2Fimage.png?alt=media\&token=54845717-015c-47a9-8e90-b0b8359bc090)

* Static workload&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fZwcAKNYmS14TzKWK%2Fimage.png?alt=media\&token=015ac5b2-801f-434d-8b3f-b7cd1770f89c)

* caching as a service company&#x20;
* 16 applications with cache sizes chosen by the application developers&#x20;
  * Only a few which Hyperbolic performs worse&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_f_G8F3e4FF19beFwy%2Fimage.png?alt=media\&token=bba11dca-2756-4581-94ae-61b6a226f7b4)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_f_Jb_sN6BiRukMHf6%2Fimage.png?alt=media\&token=768d3246-f954-462c-a55e-f0bec8d4de1e)

* item costs&#x20;
  * CPU / DB load: experience a miss, cause the item is the result of the join rather than simple look up&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_f_zdWuOYhhFsWkTJb%2Fimage.png?alt=media\&token=a9e9a403-33e8-4047-8a5f-2f52e5d6b5a4)

* GreedyDual&#x20;
  * Incorporating cost into LRU&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_faEL88FJWRoP3LuVR%2Fimage.png?alt=media\&token=634c002d-837c-4e82-a133-bde70e54fd87)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_faQVwrbETeMCYOgG2%2Fimage.png?alt=media\&token=586dab99-1535-40e8-967e-cd3da61f4c3f)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fadsYb7ptPwkqyQv0%2Fimage.png?alt=media\&token=340de5b0-77fa-4814-91c3-307108c791ce)

* Stress one of the backend and measure tail latency&#x20;
* Tracking costs per item and per class&#x20;
  * Load one of the backend, takes time to adjust to the knowledge --> spike in latency that is not experienced by per-class&#x20;

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fb-eHcex32SJXF051%2Fimage.png?alt=media\&token=26473c8a-8e4d-4a0a-a103-23d496ab2bfa)

![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVORxAomcgtzVVUqmws%2F-M_fIP7yx1wfCPSJsZIl%2F-M_fb5Bla01J4vAw43Ez%2Fimage.png?alt=media\&token=04a7f99b-6588-4454-bbdc-9da4c1c5b683)
