Web pages can be modeled as directed acyclic graphs (dependency graphs) which capture the relationships between all of the page's objects. Polaris is a new system that accelerates web page loads by first creating fine-grained dependency graphs for a page (using Scout), and then exposing these new graphs to browsers such that they can aggresively fetch objects to minimize round trips between clients and servers.
Scout enables developers to automatically track all interactions between objects on a web page. After rewriting a page to support logging, Scout generates a list of reads and writes to a pages state (with detailed information about which script and line number is triggering the read/write). It then processes this list to produce a list of dependencies between the objects on a page.
Today's browsers are constrained by uncertainty regarding how objects on a page interact. As a result, they are forced to use conservative assumptions when loading pages, to ensure correctness. For example, because browsers today don't know whether two objects on a page share state (and thus have a dependency between one another), they are forced to load these objects serially, in the order that the corresponding HTML tags are in. While this ensure correctness, it often fails to fully utilize network and CPU resources during page loads, and thus prevents browsers from loading pages as quickly as possible.
The Polaris research paper, which provides more details about the design and evaluation of Scout and Polaris, was presented at the 2016 USENIX Symposium on Networked Systems Design and Implementation (NSDI '16).