Research, courses, and teaching


Research

This is hopelessly outdated. I'll update it soon!

Self-* Storage Systems: Human administration of storage systems is a large and growing issue in modern IT infrastructures. We are exploring new storage architectures that integrate automated management functions and simplify the human administrative task. Self-* storage systems are self-configuring, self-organizing, self-tuning, self-healing, self-managing systems of storage bricks. Borrowing organizational ideas from corporate structure and technologies from AI and control systems, self-* storage should simplify storage administration, reduce system cost, increase system robustness, and simplify system construction.

NFSv4 Tee (comparison-based server verification): Debugging servers is tough! We aim to simplify matters by introducing a Tee that duplicates NFS client requests to both a reference server and developmental server and logs inconsistencies in their responses. Debugging servers in this manner has many advantages over debugging methods. The most important of which is "Bug Compatibility." Standards are often poorly written and all server implementations contain a few bugs. It is quite feasible for a popular server implementation to become the de facto standard and for clients to come to expect its various quirks and bugs. It might be necessary for a new server implementation to mimic all of the quirks of the popular implementation in order to gain widespread acceptance. A testing tool such as the Tee allows testers to guarantee such bug compatibility, while regular testing tools do not.

Cuckoo/Triberg/Warbler/Sonny: Cuckoo is an implementation of layered clustering that allows unmodified monolithic NFS servers to enjoy many of the performance and load-balancing benefits of clustered filesystems. Within the Cuckoo system, there are parent servers, on which files regularly reside, and surrogate servers, on which files are replicated. The Cuckoo switch sits between clients and servers and transparently offloads requests for files from overloaded parent servers to less busy surrogate servers. For a request to be offloaded to a less-busy surrogate, the surrogate must contain a replica of the file the request references. Hence, the "Replication Policy"--the decision of which files to replicate onto surrogates--is paramount to the success of Cuckoo-style load balancing. Our research within the Cuckoo framework has focused primarily on the identification of replication policies that allow large amounts of work to be offloaded from parent servers while minimizing the effort necessary to keep replicas consistent.

Extra credit: Can you guess the relationship between the various names in the title of this project?


Graduate courses taken

18-741: Advanced Computer Architecture

15-712: Advanced Operating Systems & Distributed Systems

18-730: Computer Security

18-842: Distributed Systems

15-681: Machine Learning

18-746: Storage Systems


Teaching

During the Fall of 2005, I will be a teaching assistant for 18-746: Storage Systems, an ECE graduate course.