Presenter: Ramesh Govidan (Microsoft Research)
Co-Authors: Yurong Jiang (USC), Lenin Ravindranath (Microsoft Research), Suman Nath (Microsoft Research)
Simple web applications, such as note taking, can have significant underlying complexity in the cloud. Moreover, since web applications are hosted in the cloud, latency is critical. This talk looks particularly in the latency experienced by these web applications in the cloud. In fact, developers find it very hard to optimize latency for such applications.
The paper argues that the reason for that is simple: the front-end of cloud services offer a variety of hardware options, all impact the overall latency of the application. Latency is impacted by almost every other component in the application, each of which have several configuration choices.
In all these different configurations, is not clear what the latency is. Ideally, a developer would like to have a What-If capability that would tell what the new latency would be in case of a configuration change. However, there are several challenges of doing such estimation, multiple dependencies for instance.
This paper presents WebPerf. A What-If scenario estimation. It tells the developers what happens when you change a configuration. WebPerf has four components: a dependency graph, a baseline performance, a profile dictionary, and a predictor, which combines all that information. More details
of these components are described in the paper. Also, WebPerf is cheap, fast, and can be automated. The reason for that is because many of the profiles are application independent. Another insight is that the depency graph is independent of the scenario.
The last part of the talk presents the evaluation, more specifically how accurate WebPerf is, and efficiency quantification. To perform this evaluation, the authors ran WebPerf in six different applications with different complexity. Results have showed that, indeed, configuration choices can really impact latency and that WebPerf is very accurate.
Summarizing, this paper presents a tool that help developers to reason about latency for Web applications when the configuration of its components is changed.
Q: Based on the individual profiling of each component to estimate the latency and the observation that Microsoft, Google, and Facebook already have many
data sets available, how would WebPerf benefit from the existing data sets?
A: As described in the paper, the profiling the components is made offline and it's plausible to use those measurements to profile existing components.
Q: Is there a way to get the dependency graph binary synchronization for use in cloud applications?
A: The paper discussed a few other alternatives, such as monitoring network traffic. It turns out it is hard to instrument the binaries with more indirect
methods, because you risk missing the synchronization points and you only get indirect information about dependencies observing latencies.
Q: Cloud providers do a lot of reactive management to respond to changes in the workload. The paper presented very stable results, which seems a bit unusual.
A: Most dynamic management is done on aggregate loads. The difference of WebPerf is that we do for the performance of the application, more per developer.
Q: What are the next steps, in terms of how to turn certain latency and how to make certain configuration changes based on the desired code?
A: In fact, it adds another layer of search on top to look for specific how-to questions.