> For the complete documentation index, see [llms.txt](https://sliu583.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sliu583.gitbook.io/blog/specific-work/seminar-and-talk/reading-groups/network-reading-group/ml-and-networking/other/marauder-synergized-caching-and-prefetching-for-low-risk-mobile-app-acceleration.md).

# Marauder: Synergized Caching and Prefetching for Low-Risk Mobile App Acceleration

* Apps dominate mobile usage and are projected to continue doing so&#x20;
* App responsiveness is well-studied&#x20;
  * Are apps meeting expectations?&#x20;
* Measuring app performance&#x20;
  * 50 apps across categories (Humanoid)&#x20;
  * Origin servers
  * Record screen and compute IRT (Interaction Response Time)&#x20;
  * Real phones, live networks, live origin servers and realistic interaction traces&#x20;
* App performance today&#x20;
  * 2.9s median on LTE: too slow for users today!
  * Why isn't it better?&#x20;
    * Which is bigger contributor to delay? network or compute?&#x20;
      * Network causes 64% of the delay on LTE&#x20;
      * Improving network performance&#x20;
        * Caching
          * Store previously fetched content to speedup subsequent fetches&#x20;
          * Developer specified TTLs&#x20;
          * Understanding Caching&#x20;
            * 28% of resources in median interaction from cache --> 44% IRT improvement over no-cache&#x20;
            * 2x resources unchanged in cache --> 58% IRT improvement over no-cache&#x20;
          * Cache TTLs are hard to set?
            * Can caching be used optimally?
            * Developers need to set TTLs such that it precisely expires when content changes&#x20;
              * Ideal TTLs for a given resource vary significantly&#x20;
              * High TTL --> good cache performance --> stale content&#x20;
              * Low TTL --> fresh content --> poor cache performance&#x20;
        * Prefetching&#x20;
          * Load content ahead-of-time by predicting users' needs&#x20;
          * Understanding prefetching&#x20;
            * 4 apps use prefetching&#x20;
              * Load content in background periodically&#x20;
              * Avoid network fetches during interaction&#x20;
              * Speedups above 60%, however, up to 4x extra data usage. Difficult to predict user interactions.&#x20;
      * Goal: extract benefits while minimizing drawbacks&#x20;
      * Marauder
        * Not rely on developers&#x20;
        * Work with existing apps and servers&#x20;
      * Insights&#x20;
        * Text files are important&#x20;
        * Text files catalog resources --> prefetching opportunities&#x20;
        * Small size of important text files --> refresh in the background&#x20;
        * Inefficient TTLs --> low cost TTL extensions&#x20;
        * Stability of referenced resources --> prefetching even with uncacheable text files&#x20;
      * ![](/files/eTf59rPVHkPqtgiMGA0y)
      * Evaluation&#x20;
        * Speeds up interactions by 27.4%
        * 1.18x median data usage, JIT prefetching is the larger contributor&#x20;
      * ![](/files/b7OUu6Y7DUzPrlk0sjwP)
