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.
Speaker Biography
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.