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

https://dl.acm.org/doi/10.1145/3458864.3466866

  • Apps dominate mobile usage and are projected to continue doing so

  • App responsiveness is well-studied

    • Are apps meeting expectations?

  • Measuring app performance

    • 50 apps across categories (Humanoid)

    • Origin servers

    • Record screen and compute IRT (Interaction Response Time)

    • Real phones, live networks, live origin servers and realistic interaction traces

  • App performance today

    • 2.9s median on LTE: too slow for users today!

    • Why isn't it better?

      • Which is bigger contributor to delay? network or compute?

        • Network causes 64% of the delay on LTE

        • Improving network performance

          • Caching

            • Store previously fetched content to speedup subsequent fetches

            • Developer specified TTLs

            • Understanding Caching

              • 28% of resources in median interaction from cache --> 44% IRT improvement over no-cache

              • 2x resources unchanged in cache --> 58% IRT improvement over no-cache

            • Cache TTLs are hard to set?

              • Can caching be used optimally?

              • Developers need to set TTLs such that it precisely expires when content changes

                • Ideal TTLs for a given resource vary significantly

                • High TTL --> good cache performance --> stale content

                • Low TTL --> fresh content --> poor cache performance

          • Prefetching

            • Load content ahead-of-time by predicting users' needs

            • Understanding prefetching

              • 4 apps use prefetching

                • Load content in background periodically

                • Avoid network fetches during interaction

                • Speedups above 60%, however, up to 4x extra data usage. Difficult to predict user interactions.

        • Goal: extract benefits while minimizing drawbacks

        • Marauder

          • Not rely on developers

          • Work with existing apps and servers

        • Insights

          • Text files are important

          • Text files catalog resources --> prefetching opportunities

          • Small size of important text files --> refresh in the background

          • Inefficient TTLs --> low cost TTL extensions

          • Stability of referenced resources --> prefetching even with uncacheable text files

        • Evaluation

          • Speeds up interactions by 27.4%

          • 1.18x median data usage, JIT prefetching is the larger contributor

Last updated