Me at Eiffel tower

Ajay Gulati  

Computer Science Department
Rice University

Fifth year graduate student
Email: gulati AT rice DOT edu
Email: agulati AT vmware DOT com
3064, Duncan Hall
phone: 713-348-5060

About Me


Tools and Hacks

Fun Stuff

About Me

I was a PhD candidate at Rice University in Computer Science department. I worked with Dr. Peter Varman on Resource allocation in Storage systems. I graduated in Fall 2007 and started working as a member of resource management team at VMware. Before coming to Rice I got a B.Tech. degree from Indian Institute of Technology (IIT), Kharagpur in 2002. 

CV: ps pdf html

I mainly work on storage performance virtualization. The idea is to isolate clients accesing a shared storage system from each other and provide some guarantess in terms of performance such as throughput and latency, while absorbing bursts in their workloads. Sometimes I tinker with file systems and linux kernel to enter the dark caves filled with kernel crashes, reboots and sparks of light shown by printk's. Some of the projects I have worked on and currently working are:

 dClock (RBFQ): This project targets the problem of providing reservations along with proportionate fairness. We target two use cases for this work: (1) IO access in virtualized environments and (2) IO Scheduling in distributed storage environments where multiple servers collaborate to provide a scalable, cheap and efficient storage functionality. This extends beyond the current work done for CPU and memory allocation with fairness and minimum guarantees, because of variable capacity in storage systems and dependency on workload access pattern. A recent paper was submitted to OSDI 08. The extended version of submitted paper is available here: RePAIR: Reservation-Based Proportionate Allocation For IO Resources.

 pClock:This project targets the problem of scheduling multiple clients concurrently accessing a storage system. Each client has requirements represented in terms of throughput, latency and maximum burst size. We develop pClock algorithm based on arrival curve (computed using static parameters), that guarantees that no client following its desired arrival pattern will be affected by others. The algorithm has been evaluated using DiskSim and as a module in linux kernel. More details can be found in the following paper.
"pClock: An Arrival Curve Based Approach for QoS Scheduling in Shared Storage Systems ", Ajay  Gulati, Peter J. Varman, Arif Mechant (HP Labs, Palo Alto). To Be Published at ACM Sigmetrics 2007, San Diego, California pdf.

 Nache: This is a caching proxy designed for NFS version 4 to improve performance of Wide area file systems. Nache leverages the features of NFSv4 to improve the performance of file accesses in a wide-area distributed setting by bringing the data closer to the client. This is implemented in linux kernel 2.6.17 by modifying kernel modules for nfs client and server (named nfs and nfsd respectively). This work was done during my intership at IBM Almaden research center. Please look at the following paper for more details:

"Nache: Design and Implementation of a Caching Proxy for NFSv4" Ajay Gulati, Manoj Naik and Renu Tewari (IBM Almaden Research Center) published at Usenix FAST 2007, San Jose pdf.

Tools and Hacks
I am putting some of the tools that I have used, modified, developed in course of my graduate studies. Hopefully someone can find some use of them. If you find them useful, please let me know and I will be encouraged to put more stuff here.

Filebench: Filebench is file system benchmarking tool developed by Sun Microsystems. The version on their website works on solaris but has not been ported to Linux. I am putting a version that seems to work on linux and I have used it for some of the testing I did for my research. Some people requested it on the mailing list, so I am putting it here.
Filebench for linux.
Note: As we all know how consistent linux and its packages are over multiple versions. The code here compiles fine on my setup (check README.linux for details). If for some reason it doesn't compile/run on your machine, please check the version of all the packages needed. Also the code given here seems to compile fine and run for most cases I tried. If you face any runtime issues, please let me know and I would be glad to look into it.

DiskSim: Another great tool developed and maintained by people at CMU. Many users have talked about compilation issues with DiskSim-3.0. I am posting a version here that I could compile after some modifications on my machine. Trying this out might save you quite some time and effort. Just use the instructions in file HOW-TO-COMPILE.Ajay for compilation. If it works out of the box for you, please let me know.
DiskSim for linux.


Fun Stuff
Whats that? Sorry, I am a graduate student ....
Will update this when I graduate.

Music Lyrics