Polaris framework adds dependency graphs to Web pages

Mar 9, 2016 18:30 GMT  ·  By

The problem of slow pages is one that has been tackled before by many companies and researchers, but none of them have managed to announce a success rate of 34% when reducing total page load times, unlike a team of researchers working at MIT's Computer Science and Artificial Intelligence Lab (CSAIL).

The MIT team, which also includes a Harvard professor, created an algorithm that they dubbed Polaris, which is focused on determining the proper time to start network requests for Web resources.

How websites work

Websites work in a simple manner. A user accesses a website by typing in a URL in their browser. A DNS server redirects the user to the IP address where that website is hosted, and the browser starts downloading the site's index file, an HTML page.

Inside this HTML page, the website's source code loads different resources in the form of CSS and JS files, images, Flash content, or other information. Each of this resource is a separate network request, which the user's browser needs to make.

As previous studies have shown, the problem of slow loading pages is not always users with small bandwidth, but the time needed to set up the connections for each network request, the file's size, and delays on the network itself.

How Polaris works

To address these issues, MIT's Polaris framework will work by creating dependency graphs for each Web page, which dictates the most efficient order in which all the page resources need to be loaded.

Dependency graphs are widely used today in software development, and are at the core of some neat software building tools. Implementing such solution for handling a website's network requests is a simple, clever and efficient move. To tell the truth, it is a surprise companies obsessed with page loading time metrics, such as Amazon, Yahoo or Google, haven't thought of it on their own.

Polaris works by first watching how the website loads and how its objects interact with each other. It then creates a dependency graph for each Wep page, ordering the requests in such a way that only the needed content is loaded first, if it's used on the page.

MIT tested Polaris in 200 different network conditions and determined that, on average, the framework reduced page loading times by 34%. Best results were achieved with larger websites and with JS-heavy pages, where Polaris' efficiency grows with the number of requests that need to be loaded.

The researchers will present the Polaris framework at this week’s USENIX Symposium on Networked Systems Design and Implementation conference, and more details will be published on MIT's portal.