MIT Attempts To Speed Up The Web

On Wednesday Polaris,  a software framework which attempts to speed up the web by addressing the way in which web browsers and web servers interact, was announced. This was developed by a team of researchers at MIT’s Computer Science and Artificial Intelligence Lab; the framework might reduce the time span of waiting for the webpages by at least 34 percent.
 
 
Image Source: csail.mit.edu
 
The company states,
 
“To help combat this problem, researchers from MIT’s Computer Science and Artificial Intelligence Lab (CSAIL) and Harvard have developed a system that decreases page-load times by 34 percent. Dubbed “Polaris,” the framework determines how to overlap the downloading of a page's objects, such that the overall page requires less time to load.”
 
Usually, when you type something, take for example CNN.com, into the address bar, the browser will contact the server and fetch objects like HTML, JavaScript and images from the server. Where things might get bogged down is when these objects then trigger additional dependencies; a snippet of the JavaScript code say, that it needs to then fetch additional images in the photo gallery.
 
Evaluating one object often means the requirement of fetching and evaluating more objects, which are described as “dependencies” of the originals. For example, a browser might require executing a file’s JavaScript code so that it can discover more images to fetch and render.
 
The problem arises that the browser can’t actually see all these dependencies because of the way in which the objects are represented by HTML. Hence, browsers need to be conservative about the order in which they load the objects, which leads to increases in the number of cross-network trips and also the slowing down of the loading of the page.
 
PhD student Ravi Netravali, who is the first author on a paper about Polaris that he will present at this week’s USENIX Symposium on Networked Systems Design and Implementation (NSDI '16), states,
 
“It can take up to 100 milliseconds each time a browser has to cross a mobile network to fetch a piece of data. As pages increase in complexity, they often require multiple trips that create delays that really add up. Our approach minimizes the number of round trips so that we can substantially speed up a page’s load-time.”
 
Polaris, however, automatically tracks all the interactions between objects, which can number in the thousands for a single page. For example, it notes when one object reads the data in another object or updates a value in another object. After this, it uses its detailed logs of these interactions in order to creat ae “dependency graph” for the page.
 
Mickens states,
 
“For a web browser, loading all of a page’s objects is like visiting all of the cities. Polaris effectively gives you a list of all the cities before your trip actually begins. It’s what allows the browser to load a webpage more quickly.”
 
Mark Marron, a senior research software development engineer at Microsoft, state,
 
“Tracking fine-grained dependencies has the potential to greatly reduce page-load times, especially for low-bandwidth or high-latency connections. On top of that, the availability of detailed dependence information has a wide range of possible applications, such as tracking the source statement of an unexpected value that led to a crash at runtime.”
 
Also, the researchers are planning to open source Polaris.