WatDFS: A Project for Understanding Distributed Systems in the Undergraduate Curriculum

The ubiquity of distributed computing systems has led to an increased focus on distributed systems in the undergraduate curriculum. In this paper, we describe the design of, and our experiences with, a new distributed systems project where students implement the core components of a distributed file system called WatDFS. The WatDFS project enables students to meet learning objectives from across the distributed systems curriculum and interact with real systems, while providing a high-quality testing environment that yields actionable feedback to students on their submissions.

[1]  Margo I. Seltzer,et al.  A new instructional operating system , 2002, SIGCSE '02.

[2]  Mark A. Holliday,et al.  From sockets and RMI to web services , 2008, SIGCSE '08.

[3]  Keith Marzullo,et al.  Tradeoffs in implementing primary-backup protocols , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[4]  Andrew S. Tanenbaum,et al.  A brief introduction to distributed systems , 2016, Computing.

[5]  Daniel J. Abadi,et al.  Consistency Tradeoffs in Modern Distributed Database System Design: CAP is Only Part of the Story , 2012, Computer.

[6]  Andrew Birrell,et al.  Implementing Remote procedure calls , 1983, SOSP '83.

[7]  Jeannie R. Albrecht Bringing big systems to small schools: distributed systems for undergraduates , 2009, SIGCSE '09.

[8]  Cory Hill,et al.  f4: Facebook's Warm BLOB Storage System , 2014, OSDI.

[9]  Ashish Gehani,et al.  Performance and extension of user space file systems , 2010, SAC '10.

[10]  David Hovemeyer,et al.  Experiences with marmoset: designing and using an advanced submission and testing system for programming courses , 2006, ITICSE '06.

[11]  Nick McKeown,et al.  The virtual network system , 2005 .

[12]  Randy H. Katz,et al.  Experiences teaching MapReduce in the cloud , 2012, SIGCSE '12.

[13]  Steve R. Kleiman,et al.  Vnodes: An Architecture for Multiple File System Types in Sun UNIX , 1986, USENIX Summer.

[14]  Howard Gobioff,et al.  The Google file system , 2003, SOSP '03.

[15]  Carlos Maltzahn,et al.  Ceph: a scalable, high-performance distributed file system , 2006, OSDI '06.

[16]  Jeremy Andrus,et al.  Teaching operating systems using android , 2012, SIGCSE '12.

[17]  Amin Vahdat,et al.  Design and implementation tradeoffs for wide-area resource discovery , 2005, HPDC.

[18]  Sarah Smith Heckman,et al.  10+ Years of Teaching Software Engineering with iTrust: The Good, the Bad, and the Ugly , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET).

[19]  Henrik Bærbak Christensen Teaching DevOps and Cloud Computing using a Cognitive Apprenticeship and Story-Telling Approach , 2016, ITiCSE.

[20]  M. Zagar,et al.  Network distributed file system in user space , 2006, 28th International Conference on Information Technology Interfaces, 2006..

[21]  Chris McDonald User-level distributed file systems projects , 1996, SIGCSE '96.

[22]  Jie Wu,et al.  NSF/IEEE-TCPP curriculum initiative on parallel and distributed computing: core topics for undergraduates , 2011, SIGCSE '11.

[23]  Ivan Beschastnikh,et al.  Seattle: a platform for educational cloud computing , 2009, SIGCSE '09.

[24]  Mahadev Satyanarayanan,et al.  Coda: A Highly Available File System for a Distributed Workstation Environment , 1990, IEEE Trans. Computers.

[25]  Erez Zadok,et al.  To FUSE or Not to FUSE: Performance of User-Space File Systems , 2017, FAST.

[26]  J. Forrester Platforms for Teaching Distributed Computing Concepts to Undergraduate Students , 2015 .

[27]  Dakai Zhu,et al.  A User Space-based Project for Practicing Core Memory Management Concepts , 2018, SIGCSE.

[28]  Halli Elaine Meth,et al.  DecaFS: A Modular Distributed File System to Facilitate Distributed Systems Education , 2014 .

[29]  Marvin Theimer,et al.  Managing update conflicts in Bayou, a weakly connected replicated storage system , 1995, SOSP.

[30]  Michael Stonebraker,et al.  Intel "big data" science and technology center vision and execution plan , 2013, SGMD.

[31]  Cheng Huang,et al.  Erasure Coding in Windows Azure Storage , 2012, USENIX Annual Technical Conference.

[32]  Andrew S. Tanenbaum,et al.  Distributed Systems , 2007 .

[33]  Joel Wein,et al.  Virtualized games for teaching about distributed systems , 2009, SIGCSE '09.