| Contact |
James.Hendricks@cs.cmu.edu Computer Science Department Carnegie Mellon University 5000 Forbes Avenue Pittsburgh, PA 15213 |
|---|---|
| Citizenship |
U.S. |
| Research Interests |
I am interested in the applied and experimental aspects of computer science, in particular storage, security, and distributed systems.
I am also interested in operating systems, networking, architecture, and the design and deployment of real systems.
I am currently building a prototype of a Byzantine fault-tolerant storage system that uses a novel cryptographic primitive that I designed (homomorphic fingerprinting) along with several other new techniques. The protocol used in this prototype is linearizable and wait-free. The prototype performs nearly as well as modern systems that tolerate only crash failures. I am continuing work on mechanisms to further improve performance, guarantee performance in the presence of malicious faults, and implement the block protocol in a file system. I recently finished projects on access control in object-based storage, metadata scalability in object-based storage, and high performance computing storage benchmarking. |
| Education |
(Expected Spring 2009) Ph.D. Computer Science, Carnegie Mellon University M.S. Computer Science, Carnegie Mellon University, Pittsburgh, PA (May 2006) B.S. University of California, Berkeley (May 2002)
Electrical Engineering and Computer Science with honors focus in Mathematics
Tau Beta Pi (officer) and Phi Beta Kappa |
| Honors |
Best Paper Award, 4th USENIX Conference on File and Storage Technologies (FAST 2005) U.S. National Defense Science and Engineering Graduate Fellowship (NDSEG), 2003-2006 U.S. National Science Foundation (NSF) Graduate Fellowship, 2002-2003, 2006-2007 Goldwater Scholar in Mathematics, Science, and Engineering, 2000-2002 |
| Employment History |
Research Assistant, Carnegie Mellon Computer Science Department (8/2002 ‑ present) Researched fault tolerance in distributed data distribution and storage systems. Built a low-overhead Byzantine fault-tolerant storage system protocol. Researched access control and security in object-based storage. Researched more scalable metadata in object-based storage from two perspectives: making fewer metadata requests and replicating metadata servers. Worked on storage benchmarking. Helped start the Self-* Storage project; debugged network performance. Researched the availability and deployment of the Domain Name System (DNS). Researched trusted computing and secure architectures. Teaching Assistant, Carnegie Mellon Computer Science Department (8/2007 ‑ 12/2007) Teaching Assistant, Advanced Operating Systems and Distributed Systems (15-712), for professor David Andersen. Intern, IBM Almaden Research Center, Storage Systems group (6/2006 ‑ 8/2006) Worked on a distributed storage system research prototype. Teaching Assistant, Carnegie Mellon Computer Science Department (8/2003 ‑ 12/2003) Teaching Assistant, Advanced Operating Systems and Distributed Systems (15-712), for professor Gregory Ganger. Intern, Cisco Systems, Gigabit Systems Business Unit (GSBU) (6/2002 ‑ 8/2002) Worked on bugs and features for the Catalyst 4000 series switch. Learned about software (IOS, CatOS) and hardware architecture of Cisco switches. Intern, Los Alamos National Laboratory, Advanced Computing Lab (1/1998 ‑ 8/1998, Summers 1999 ‑ 2001) Worked on Verilog prototype of high performance network interface. Developed LinuxBIOS proof of concept and SMP support. Worked on LinuxBIOS RAM initialization and video driver. Reverse engineered flash memory write sequence for LinuxBIOS. Worked on cluster benchmarking. |
| Publications | |
| Refereed papers |
Low-overhead Byzantine fault-tolerant storage. James Hendricks, Gregory R. Ganger, Michael K. Reiter. In Proceedings of the Twenty-First ACM Symposium on Operating Systems Principles, Stevenson, WA, October 2007. Verifying distributed erasure-coded data. James Hendricks, Gregory R. Ganger, Michael K. Reiter. In Proceedings of the Twenty-Sixth Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, Portland, August 2007. //TRACE: Parallel trace replay with approximate causal events. Michael Mesnier, Matthew Wachs, Raja R. Sambasivan, Julio Lopez, James Hendricks, Gregory R. Ganger, David O'Hallaron. In Proceedings of the 5th USENIX Conference on File and Storage Technologies, San Jose, February 2007. Ursa Minor: Versatile Cluster-based Storage. Michael Abd-El-Malek, William V. Courtright II, Chuck Cranor, Gregory R. Ganger, James Hendricks, Andrew J. Klosterman, Michael Mesnier, Manish Prasad, Brandon Salmon, Raja R. Sambasivan, Shafeeq Sinnamohideen, John D. Strunk, Eno Thereska, Matthew Wachs, and Jay J. Wylie. In Proceedings of the 4th USENIX Conference on File and Storage Technologies, San Francisco, December 2005. (Best Paper Award) Availability, Usage, and Deployment Characteristics of the Domain Name System. Jeffrey Pang, James Hendricks, Aditya Akella, Bruce Maggs, Roberto De Prisco, and Srinivasan Seshan. In Proceedings of the Second ACM/USENIX Internet Measurement Conference, Taormina, Sicily, October 2004. Secure Bootstrap is Not Enough: Shoring up the Trusted Computing Base. James Hendricks and Leendert van Doorn. In Proceedings of the Eleventh SIGOPS European Workshop, ACM SIGOPS, Leuven, Belgium, September 2004. The Linux BIOS. Ron Minnich, James Hendricks, and Dale Webster. In Proceedings of The Fourth Annual Linux Showcase and Conference, Atlanta, GA, October 2000. USENIX Association. |
| Other papers |
Early experiences on the journey towards self-* storage. Michael Abd-El-Malek, William V. Courtright II, Chuck Cranor, Gregory R. Ganger, James Hendricks, Andrew J. Klosterman, Michael Mesnier, Manish Prasad, Brandon Salmon, Raja R. Sambasivan, Shafeeq Sinnamohideen, John D. Strunk, Eno Thereska, Matthew Wachs, Jay J. Wylie. Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, September 2006. Eliminating cross-server operations in scalable file systems. Shafeeq Sinnamohideen, James Hendricks, Raja R. Sambasivan, and Gregory R. Ganger. Carnegie Mellon University Parallel Data Lab Technical Report CMU-PDL-06-105, May, 2006. Improving small file performance in object-based storage. James Hendricks, Raja R. Sambasivan, Shafeeq Sinnamohideen, and Gregory R. Ganger. Carnegie Mellon University Parallel Data Lab Technical Report CMU-PDL-06-104, May, 2006. |