I am a researcher with the Programming Languages and Tools group at Microsoft Research. I am broadly interested in programming language abstractions and tools that simplify the design and implementation of concurrent and distributed systems. I graduated from the department of Computer Science and Automation at the Indian Institute of Science where I worked on efficient and accurate profiling and performance modeling techniques.
|CScale is a programming model that simplifies the task of writing consistent and highly available distributed applications. CScale applications have simple semantics that enables local reasoning, and testing and debugging on the single machine. CScale manages all aspects of execution of a CScale application on a large clusters, including deployment and state management (replication and data partitioning).|
|One of the barriers to adoption cloud database technologies such as SQL Azure is data security and privacy. Data is a valuable asset to most organizations and storing the data in the cloud is often perceived as a security risk. This project investigates encryption as a mechanism to address such data security concerns. In particular, the goal of the project is to research, design, and build a comprehensive database system that supports encryption as a first class citizen. The desired functionality includes: (1) storing encrypted data, (2) issuing encrypted queries and getting back encrypted results. Our goal is to support all sophisticated features of a DBMS such as complex queries, indexes, transactions and stored procedures while maintaining strong security, (3) enabling automated migration of database applications to the cloud.|
|Performance Models for Distributed Applications|
|Programming models such as MapReduce and DryadLINQ provide programmers with declarative abstractions for writing data intensive computations and runtime systems that can execute these computations on a large cluster of machines. However, this level of abstraction comes at a cost – the inability to understand, predict and debug performance. The objective of this project is to construct accurate performance models for predicting the execution time of distributed queries.|
|Side Effect Analysis for .NET (Seal)|
|Seal is a modular static analysis tool that infers side-effects of methods in a .NET application. The side-effects of a method are the set of heap locations in the program state right before the invocation of the method (referred to as prestate) that are modified (or written) by the method. Intuitively, these are the locations on which the method has an effect and hence can be expected to change after the method invocation. A method with no side-effects is said to be pure. Seal supports many sophisticated (and higher-order) C# features such as LINQ, delegates, event-handlers, exceptions, and scales to several thousand lines of code. Check out Seal in action here.|
- Ionel Gog, Jana Giceva, Malte Schwarzkopf, Kapil Vaswani, Dimitrios Vytiniotis, Ganesan Ramalingam, Manuel Costa, Derek Murray, Steven Hand, and Michael Isard, Broom: Sweeping out Garbage Collection From Big Data Systems, in Workshop on Hot Topics in Operating Systems (HotOS), USENIX – Advanced Computing Systems Association, May 2015.
- Ravichandhran Madhavan, G. Ramalingam, and Kapil Vaswani, A Framework for Efficient Modular Heap Analysis, in Foundations and Trends in Programming Languages, vol. 1, no. 4, January 2015.
- Sagar Chordia, Sriram Rajamani, Kaushik Rajan, G. Ramalingam, and Kapil Vaswani, Asynchronous Resilient Linearizability, in International Symposium on Distributed Computing (DISC), October 2013.
- Ken Eguro, Kaushik Rajan, Ravi Ramamurthy, Kapil Vaswani, and Ramarathnam Venkatesan, Migration to the Cloud Made Safe and Secure, in Off the Beaten Track (OBT) Workshop, ACM, January 2013.
- G Ramalingam and Kapil Vaswani, Fault Tolerance via Idempotence, in Principles of Programming Languages (POPL), ACM, January 2013.
- Ravichandhran Madhavan, Ganesan Ramalingam, and Kapil Vaswani, Modular Heap Analysis For Higher Order Programs, in Static Analysis Symposium (SAS), September 2012.
- Jose Faleiro, Sriram Rajamani, Kaushik Rajan, G Ramalingam, and Kapil Vaswani, Generalized Lattice Agreement, in Principles of Distributed Computing (PODC), ACM, July 2012.
- Ravichandhran Madhavan, Ganesan Ramalingam, and Kapil Vaswani, Purity Analysis: An Abstract Interpretation Formulation, in Proceedings of Static Analysis Symposium (SAS), September 2011.
- Dawei Qi, Abhik Roychoudhury, Zhengkai Liang, and Kapil Vaswani, DARWIN: An Approach for Debugging Evolving Programs, in ACM Transactions on Software Engineering and Methodology (TOSEM), ACM, August 2011.
- Jyotirmoy V. Deshmukh, G. Ramalingam, Venkatesh Prasad Ranganath, and Kapil Vaswani, Logical Concurrency Control from Sequential Proofs, in Logical Methods in Computer Science (LMCS), vol. 7, no. 3, 2011.
|Speculate - Language extensions for speculative parallelism|
|WYPIWYG - Inferring concurrency control from sequential proofs|
|Isolator - Dynamically enforcing isolation in concurrent programs|
|Darwin - Software fault localization using program versions|
|Preferential Path Profiling - An approach for improving the efficiency of collecting path coverage data|