Improving Web Applications with Fine-grained Data Flows
Abstract
Web applications are integral to today's society, hosting a variety of
services ranging from banking and e-commerce to mapping and social
media. To support these rich services, web applications have evolved
into complex distributed systems, making critical tasks such as
performance optimization and debugging difficult.
In this talk, I will describe how we can address this growing
complexity by efficiently identifying and analyzing the fine-grained,
distributed data flows in web applications. Tracking data flows at the
granularity of individual pieces of program state, like JavaScript
variables on the client-side, and key/value pairs in storage systems
on the server-side, provides invaluable insights into the low-level
behavior of complex web services. This information enables a variety
of systems with new, more powerful performance optimizations and
debugging techniques. I will describe two such systems that we have
built. The first is Polaris, a web page load optimizer that identifies
data dependencies between web objects to improve browser request
scheduling and reduce page load times by 34%-59%. I will then discuss
Vesper, the first system to accurately measure how quickly web pages
become interactive for users. Vesper uses fine-grained data flows to
automatically identify a page's interactive state and reduce page
time-to-interactivity by 32%. I will conclude by discussing some
future research challenges involving large-scale web services.
Bio
Ravi Netravali is a Ph.D. student at MIT, advised by Professors Hari Balakrishnan and James Mickens. His research interests are in computer systems and networks, with a recent focus on building practical systems to improve the performance and debugging of large-scale, distributed web applications. He is a recipient of the 2017 Qualcomm Innovation Fellowship, and shared the Internet Research Task Force's Applied Networking Research Prize in 2018. Netravali graduated from Columbia University in 2012 with a B.S. in Electrical Engineering.