Alohamora: Reviving HTTP/2 Push and Preload by Adapting Policies On-the-Fly
- Author(s): Kansal, Nikhil
- Advisor(s): Netravali, Ravi
- et al.
Despite their promise of improved performance, HTTP/2's server push and link preload features have seen minimal adoption, largely because designing performant push/preload policies requires complex reasoning about the subtle relationships between page content, browser state, device resources, and network conditions. Static policies and guidelines that sufficiently generalize across these diverse conditions remain elusive.
We present Alohamora, a system that automatically generates push/preload policies using Reinforcement Learning (RL). Alohamora trains a neural network that, given inputs that characterize the page structure and execution environment, outputs a push/preload policy for the page load at hand. To ensure efficient and practical training despite the large space of potential policies, number of pages served by a given site, and high mobile page load times, Alohamora introduces several key innovations: a faithful page load simulator that can evaluate a policy in several milliseconds (compared to 10s of seconds for a regular page load), and a page clustering strategy that appropriately balances insights for push/preload with the number of pages required during training. Experiments across a wide range of pages and mobile execution environments reveal that Alohamora is able to accelerate page loads by 19-57% and 12-34% for page load time and Speed Index, respectively.