My research interests lie in the general area of “Computer Systems”. More specifically, I am interested in software techniques for tackling the challenges brought on by distribution, scale and failures. Here is a partial list of the topics I have worked on during my career, in roughly chronological order. For each topic, I have linked a few publications that are most representative of my work in that area.
- Operating Systems. During my PhD work at UC Berkeley, I was one of the architects of “BSD Unix” which was a major factor in the rapid growth of the Internet through its builtin TCP/IP stack and which has influenced numerous other modern operating systems including Linux, Mac OS/X and iOS.
- Byzantine Agreement. My students and I have studied the role of communication network topologies on this fundamental problem and have made contributions to both lower-bound results and algorithms.
- Parallel Computing on Networks of Workstations. My work on the Paralex system for turning a collection of workstations on a local-area network into a “supercomputer” defined a brand new line of research that later became known as “Networks of Workstations (NOW)”.
- Peer-to-Peer Systems. My group has contributed to peer-to-peer computing through paradigms, algorithms, frameworks (Anthill) and a widely-used open source simulation software package (PeerSim). This topic was responsible for kindling my interest in complex systems and bio-inspired computing.
- Autonomic Computing and Self-Management. I was an early advocate of new “grassroots” and “data-driven” approaches to autonomic computing that achieve self-* properties through emergence and machine learning rather than self-awareness and explicit programming.
- Biology and Nature-Inspired Computing. As part of our work on the EU Project BISON which I coordinated, we developed a library of “design patterns” for distributed computing that draw inspiration from biological or natural processes.
- Cloud Computing. I have proposed architectures for peer-to-peer cloud computing and algorithms for server consolidation that leverage our experience with peer-to-peer systems and gossip-based primitives in very large distributed systems. The resulting architectures not only lower the cost of entry to cloud computing but also lower energy consumption.