Scalable Redundant Proxy Execution for Low-Latency Web Over Cellular Networks

Ashiwan Sivakumar, Purdue University

Abstract

Web application latency is critical because faster Web sites attract more visitors and it has direct impact on the revenue of many businesses. Further, due to the dramatic upsurge of cellular users it has become imperative for service providers to improve the Quality of Experience of applications. However, Web downloads over cellular networks are 6X slower than that in wired networks. This is because modern Web pages are complex with lots of small objects fetched from many domains. Furthermore, today's Web page load process is ill-suited for cellular networks resulting in a lot of HTTP request-response interactions in the high latency cellular link. While there have been many recent attempts at tackling this challenge, (e.g. cloud browsers and new protocols like HTTP/2) achieving a responsive browsing experience still remains an elusive goal. The primary focus of this thesis is on the question - How to reduce the 6X latency gap? To this end, this thesis makes the following contributions: (i) First, we conduct a study of a cloud offloading solution and show that offloading all browsing functionality to the cloud can hurt user experience because all user interactions result in communication with the cloud that might be unnecessary. (ii) Second, we present a system called PARCEL that explores 'redundant execution', where the proxy parses HTML, CSS and executes JavaScript (JS) to identify objects and proactively pushes them and the client executes again normally. Through experiments in live LTE settings, we show that PARCEL can achieve latency reduction of 49% on average over traditional HTTP/1.1 browsers. Further, we demonstrate the benefits of PARCEL compared to SPDY (a protocol that significantly influenced HTTP/2), and compared to data reduction techniques. (iii) PARCEL is representative of a class of solutions based on proxy-based redundant execution. We take the first step in scaling the proxy to support millions of users, by reducing computational overheads (predominantly JS execution) associated with redundant execution. We develop a technique called Whittling (related to program slicing), to identify and execute only the JS code required to fetch objects and skip other code. We present the design of a system called NutShell incorporating Whittling and addressing several practical system design issues. Experiments with popular Web pages indicate that NutShell can sustain, on average, 27% more user requests per second compared to redundant execution, while preserving and sometimes improving the latency gains.

Degree

Ph.D.

Advisors

Rao, Purdue University.

Subject Area

Computer Engineering

Off-Campus Purdue Users:
To access this dissertation, please log in to our
proxy server
.

Share

COinS