Rotunda: Profiling the Cloud

Microsoft Research is working on a project to deliver a profiler for Web applications.

Microsoft Research is working on a project named Rotunda to deliver a profiler for Web applications, which can profile end-to-end performance of applications and enable developers to create more efficient, higher performing applications for the Web tier.

Ben Livshits, the Microsoft researcher leading the Rotunda effort, said the goal of the project is to be able to profile the performance of a Web application from the time a user clicks on a link and triggers an event in the browser—which triggers a database lookup—through each point of the resolution of the transaction.

"Rotunda allows you to connect all these things together and do a profile to enable the developer to figure out what the bottleneck is" in their application, Livshits said. And as Rotunda runs, it creates a log file that gets dumped into XML so developers can drill down into what exactly happened while their application ran.

A profiler is a performance analysis tool that measures the behavior of a program as it is running, particularly the frequency and duration of function calls. Profiling enables developers to learn where their program spends time and which functions call which other functions while the program executes.


To read Steve Ballmers thoughts on Cloud, advertising and SAAS, click here.

This information could help developers determine the parts of their application that run slower than expected, and helps pinpoint the applications that might be candidates for rewriting in order to make them run faster. In addition, because profilers use information collected during the execution of an application, they can be used on programs that are too large or too complex to analyze by reading the source code.

Livshits is an expert in compilers and programming languages who has worked on tools for finding bugs, some of which are used internally at Microsoft, he said. "But performance is becoming more important again, so I decided to change gears and focus on this stuff," he said.

Rotunda will possibly be used in conjunction with the Volta technology Microsoft is working on to "democratize the cloud." According to Erik Meijer, a Microsoft architect in the companys SQL Server group who is heading up the Volta project, Volta will enable developers to create Web applications as easily as people have built Visual Basic applications.

But one of the key concepts of Volta is its support for tier splitting, or enabling parts of a program to run off different tiers and allowing the developer to make the decision as to which tier later in the deployment process, rather than early on in the development of the application. Therein lies a potential connection with Rotunda.

"Were hoping to have a set of automated analysis tools to help you figure how and where to split" the execution of programs, Livshits said.

Indeed, Livshits said he could envision something Rotunda/Volta related in Microsofts Visual Studio toolset "to say were looking at your code and these five things are candidates to move to the server or to the client," he said. "It could be a suggestive tool that gives you good advice and reasons for that advice."

Page 2: Rotunda: Profiling the Cloud