Mike Feeley - Research

Selected projects

The Mammoth peer-to-peer filesystem. Mammoth is a standard-looking file system constructed from a possibly huge number of peer to peer nodes. Files are versioned and selected versions are replicated on multiple nodes. Storage nodes are loosely coupled: connections among nodes appear only in file meta data, which list the nodes that store each version of a file.

Mobile ad hoc networks. We are designing and prototyping a set of protocols that allow mobile nodes to self organize for wireless communication. These protocols support efficient global resource discovery and unicast routing using peer-to-peer, ad-hoc networking.

Network virtual memory. NetVM is a network adaptor prototype that implements user-mode, remote DMA between the unpinned memory of two distributed applications. Previously RDMA required that source and destination memory be pinned by the operating system to prevent paging. NetVM removes this restriction by placing a partial, inverse page table on the network interface. The operating system uses a lightweight protocol to maintain this page table and to synchronize with the adaptor before paging data out of memory.

Elephant: the filesystem that never forgets. Elephant is a file system that protects data from accidental update or delete by versioning files and directories and retaining old versions as long as possible. A simple extension to the standard UNIX file system interface allows users to view the filesystem, a directory or a file as it existed at any arbitrary point in the past. User assigned reclamation policies determine if and when old versions are eventually removed from disk.

The GMS global memory system. GMS is an operating system extension that allows a program running on one PC to automatically use idle memory on remote PCs to store valuable data. The file and virtual memory systems of each node treat idle memory as a global cache. Nodes page out to global memory and check global memory when paging in, avoiding costly disk reads for data found in the cache.

Aspect oriented structure of operating systems. Some of the complexity of operating system code is due to features that naturally cross cut module boundaries. Aspect-oriented programming represents these cross-cutting features in a modular way. This project implemented an aspect-oriented version of the C language and used it to refactor several cross-cutting features of the FreeBSD operating system.

Students

Current

Ph.D Dima Brodsky The Mammoth filesystem (co-supervised with Norm Hutchinson)
Geoff Lefebvre Scalable system structure
M.Sc. Suprio Ray Mobile ad hoc routing
Kan Cai Mobile ad hoc service discovery

Graduated

Ph.D. Joon S. Ong (Google) Network virtual memory
M.Sc. Oleg Afonin, Ryan Chapman, Shihao Gong, Stephan Gudmundson, Jody Pomkoski, Ross Carton, Jacob Ofir, Yanping Gu, Arthur Yung, Douglas Santry, and Jasmine Wong.

Current and former undergrads involved in research

Stephan O'Dor, Hubert Sun, James Slack, Alexandar Jaksic, Radmila Jaksic, Lu Wang, Daniel Ferstay, Hieu Le, Edmund Tam, Samuel Leung, Stephan Gudmundson, Arthur Yung, Neil Chong-Kit, Chris Conover, and Tim Bohlman.

Publications