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
Institute of Technology (IIT), Kharagpur in 2002.
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.
|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.
|Whats that? Sorry, I am a graduate student ....
Will update this when I graduate.