The up-to-date version of this page is at http://home.pacbell.net/kmahesh
I am a researcher in the Mobile Software Laboratory at NTT DoCoMo Communication Labs, San Jose, California. Prior to joining
DoCoMo Labs, I was researcher in the Storage System Department at Hewlett
Packard Laboratories, Palo Alto, California. I got my Ph.D. in 2001 from the ECE Department at Rice University. Prior to that, I was an undergrad at Indian Institute of Technology, Madras.
If you're looking for, my wife, Suman's web page, it is here.
Research
I love to work at the intersection of theory and systems, leaning more on the systems side. I believe in algorithms problems
motivated by systems issues, and systems that have some sound footing in theory. In general I like to take on all aspects
of developing a system: from algorithm design to system hacking.
My research has focused on storage systems; it has covered many aspects, including security, automatic configuration, and
paging algorithms. I am currently working on research issues related to mobile storage systems -- storage systems for handhelds
and cell-phones. More on these below.
This page describes some of my research. My publications page lists my papers, which should give you specific details. Or you could send me a email.
Recent research
Mobile storage
This research is looking at the implications of having large amounts of storage in small scale devices -- handhelds and cell
phones. The storage available in small scale devices has different characteristics than the storage in traditional desktops
and servers. The applications' requirements and user's attitutude towards these devices is very different from what one would
expect from a "storage system". I am exploring what these mean to the mobile and small scale storage system and how they interact
with servers' "fixed" storage.
Flexible enterprise data-centers
In a world of declining IT budgets, utility computing is an attractive
paradigm. It promises to decrease IT costs by increasing data-center resource sharing between potentially diverse applications.
To realize this vision, we first need a "utilitized" IT infrastructure. The main properties of such an infrastructure are
that (a) the resources (server and storage) are partitionable and (b) the partitions are enforceable. This research is developing
software technologies to enable such software based utility data-centers.
This research is currently in progress. Please contact me for more details. A paper on this vision called the "SoftUDC"
is to appear in the november edition of IEEE Computer
Ram Swaminathan, Mustafa
Uysal, and I started this project; it now involves researchers from several departments at HP Labs.
Plutus: Secure storage system
How trusted is your file system or SAN storage? Are you protected from a person who can plug a machine in
the network? How about from the person who has root on the file servers, or the person who can replace hard disks on the disk
arrays? It turns out that storage security is much more than just encrypting all SAN or network traffic, or storing only encrypted
data. There are several issues in key management to enable easy and secure data sharing.
The first part of this work provided a framework for evaluating different kinds of secure storage systems.
Based on the previous study, we developed,
Plutus, a cryptographic storage system that enables secure file sharing without placing much trust on the file servers. The salient
features of Plutus are (a) it makes novel uses of cryptographic primitives to protect and share files, (b) it features highly
scalable key management while allowing individual users to retain direct control over who gets access to their files, (c)
it features novel mechanisms to reduce the number of cryptographic keys exchanged between users by using filegroups, distinguish
file read and write access, handle user revocation efficiently, and allow an untrusted server to authorize file writes.
This is joint work with Kevin
Fu, Erik Riedel, Ram Swaminathan, and Qian
Wang.
Byzantine fault-tolerant bricks: Securing the FAB protocols
The FAB project at HP Labs aims to build a enterprise class disk array using " smart " commodity storage devices linked with
a high bandwidth link. The FAB protocols currently assume that the faults in the system are not byzantine. This work augments
the FAB procols to support such malicious bricks. The novelty of this work is in the way it brings together concepts from
distributed computing and concepts from security and cryptography.
This work is currently in progress. Please contact me for more details.
This is joint work with Ram Swaminathan and Svend Frolund.
Buttress: Accurate storage benchmarking
Two commonly used techniques in benchmarking I/O systems are (a) trace replay, and (b) synthetic workloads. In both these
cases it is important to accurately generate the I/O access pattern that one is intending to generate. But the sophistication
of today's stock operating systems makes it difficult to issue I/Os at the desired time at high I/O rates. Our results
indicate that we may be introducing substantial errors in observed system metrics when we benchmark I/O systems with inaccurate
trace-replay tools To address this problem, we developed Buttress, a portable and flexible toolkit that can
generate I/O workloads with microsecond accuracy at the I/O throughputs of high-end enterprise storage arrays. In particular,
Buttress can issue I/O requests within 100 microseconds of the desired issue time even at rates of 10000 I/Os per second
(IOPS).
A paper on these results is to appear in the USENIX Conference on File and Storage Technologies. Please contact me for a draft.
This is joint work with Eric Anderson, Ram Swaminathan, and Mustafa Uysal.
Ergastulum: Automating storage system design
The cost of managing a large storage system is by far the
dominant cost of owning such a system. However manual configuration of these systems, which is the current practice, is
error-prone and expensive because of the high complexity of the systems and the applications using them. This work addresses
the problem of designing an appropriate storage system given simple characteristics of the applications using these systems,
business constraints such as cost or existing systems, and headroom. Ergastulum is a new automatic storage designer, which uses a novel search heuristic to search the vast design space efficiently.
Ergastulum can be used to (a) generate an initial design of the system, (b) propose improvements to the existing design
that can be executed with minimal disruption to running applications, (c) evaluate " what-if " questions for different configurations
as might arise in a storage consolidation. It is very flexible in the constraints and optimization criteria, such as accommodating
requests to (a) use existing hardware, (b) have a maximum cost limit, (c) generate a minimum cost design, or (d) generate
a design with minimum average device utilization.
This is joint work with Eric Anderson, Susan Spence, Ram Swaminathan,
and Qian Wang.
Parallel paging algorithms
The traditional metric for caching algorithms,
such as LRU or FIFO, is "the total number of page faults". Though this metric is appropriate when the back-end system
is a single disk, it is not when the storage system has multiple disks that can perform multiple I/Os in parallel. A better
metric is the "total number of parallel I/Os". The question then is "What is an appropriate parallel paging algorithm?"
The first part of this work showed fundamental limits on the performance achievable by traditional prefetching and caching algorithms.
These bounds show that current algorithms have significant limitations in exploiting latent I/O parallelism.
The
latter part of this work presents new prefetching and caching algorithms that optimizing buffer usage and concurrency in
I/O accesses. These algorithms include
This work was part of my Ph.D. dissertation, and my advisor was Peter J. Varman For additional information please check my publications, or you could send me an email.