I am a first year Phd Student at the University of British Columbia in the NSSL lab. I work under the supervision of Andrew Warfield.
My research investigates the design and implementation of network available storage systems, particularly with respect to enterprise environments.
Filesystem study: Most evaluations of deduplication rates are small in scale or from highly self-selecting users. This, combined with an interest in deduplication as primary storage, and the lack of recent filesystem metadata studies led us to perform a large scale study of windows filesystem content and structure at Microsoft.
Capo: We performed a deep and detailed analysis of filesystem activity in a production Virtual Desktop Infrastructure (VDI) system at UBC. Based on these findings, we propose and evaluate Capo, which uses caching, multicast, and novel consistency guarantees based on the filesystem namespace to lower peak storage system loads.
Parallax: Virtual block storage designed for virtual machines. Provides fine-grained copy-on-write storage and unlimited, very lightweight snapshotting. Project web page
Dovetail: Storage systems upgrades are often avoided because they are slow, complicated, and dangerous. Dovetail is a storage system upgrade framework, deployed in a real service at UBC, that supports lossless software rollback and protection to make software upgrades easy.
Remus: Virtualization-based invisible, comprehensive disaster protection for commodity operating systems and applications. Project web page
Plastic: False sharing can cause dramatic performance collapse due to workload-, compiler-, or hardware-based characteristics that are sometimes difficult to predict. We present the first system for transparently detecting and correcting false sharing in an Operating System.
Block Mason: Although the block interface is simple, block devices themselves must generally be implemented in the operating system kernel, an environment which is neither simple nor portable. Block Mason allows users to build small, reusable block processing elements in user space, and to connect them together into powerful composite modules using a simple declarative language.
Windows Tracing Software: I've had some requests for the driver I wrote to trace windows clients in the Capo paper, because people need an example of working in the windows kernel, have some unusual behavior to diagnose, or are doing a filesystem study. I've made this code available under a BSD license, I hope I will hear from people that it's useful