skip to main content
10.1145/3287324.3287473acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
research-article

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

Published:22 February 2019Publication History

ABSTRACT

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.

References

  1. 2017. strace. https://www.cs.hmc.edu/~geoff/classes/hmc.cs135.201109/ homework/fuse/.Google ScholarGoogle Scholar
  2. 2018. libfuse. https://github.com/libfuse/libfuse.Google ScholarGoogle Scholar
  3. Daniel J Abadi. 2012. Consistency tradeoffs in modern distributed database system design: CAP is only part of the story. Computer 2 (2012), 37--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. ACM/IEEE-CS Joint Task Force on Computing Curricula. 2013. Computer Science Curricula 2013. Technical Report. ACM Press and IEEE Computer Society Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Jeannie R Albrecht. 2009. Bringing big systems to small schools: Distributed systems for undergraduates. In ACM SIGCSE Bulletin, Vol. 41. ACM, 101--105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Jeremy Andrus and Jason Nieh. 2012. Teaching operating systems using android. In Proceedings of the 43rd ACM technical symposium on Computer Science Education. ACM, 613--618. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Andrew D Birrell and Bruce Jay Nelson. 1984. Implementing remote procedure calls. ACM Transactions on Computer Systems (TOCS) 2, 1 (1984), 39--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Navin Budhiraja and Keith Marzullo. 1992. Tradeoffs in Implementing Primary- Backup Protocols. Technical Report. CORNELL UNIV ITHACA NY DEPT OF COMPUTER SCIENCE.Google ScholarGoogle Scholar
  9. Justin Cappos, Ivan Beschastnikh, Arvind Krishnamurthy, and Tom Anderson. 2009. Seattle: a platform for educational cloud computing. Acm sigcse bulletin 41, 1 (2009), 111--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Martin Casado and Nick McKeown. 2005. The virtual network system. In ACM SIGCSE Bulletin, Vol. 37. ACM, 76--80. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Henrik Bærbak Christensen. 2016. Teaching DevOps and cloud computing using a cognitive apprenticeship and story-telling approach. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education. ACM, 174--179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Jeffery Forrester. 2015. Platforms for Teaching Distributed Computing Concepts to Undergraduate Students. (2015).Google ScholarGoogle Scholar
  13. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. 2003. The Google file system. Vol. 37. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Sarah Heckman, Kathryn T Stolee, and Christopher Parnin. 2018. 10+ years of teaching software engineering with itrust: the good, the bad, and the ugly. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training. ACM, 1--4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. David A Holland, Ada T Lim, and Margo I Seltzer. 2002. A new instructional operating system. In ACM SIGCSE Bulletin, Vol. 34. ACM, 111--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Mark A Holliday, J Traynham Houston, and E Matthew Jones. 2008. From sockets and RMI to web services. In ACM SIGCSE Bulletin, Vol. 40. ACM, 236--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Cheng Huang, Huseyin Simitci, Yikang Xu, Aaron Ogus, Brad Calder, Parikshit Gopalan, Jin Li, Sergey Yekhanin, et al. 2012. Erasure Coding in Windows Azure Storage.. In Usenix annual technical conference. Boston, MA, 15--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Steve R Kleiman et al. 1986. Vnodes: An Architecture for Multiple File System Types in Sun UNIX.. In USENIX Summer, Vol. 86. 238--247.Google ScholarGoogle Scholar
  19. Geoff Kuenning. 2011. CS 135 FUSE Homework Assignments, Fall 2011. https: //www.cs.hmc.edu/~geoff/classes/hmc.cs135.201109/homework/fuse/.Google ScholarGoogle Scholar
  20. Chris McDonald. 1996. User-level distributed file systems projects. In ACM SIGCSE Bulletin, Vol. 28. ACM, 333--337. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Halli Elaine Meth. 2014. Decafs: A modular distributed file system to facilitate distributed systems education. (2014).Google ScholarGoogle Scholar
  22. Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang, et al. 2014. f4: Facebook's warm blob storage system. In Proceedings of the 11th USENIX conference on Operating Systems Design and Implementation. USENIX Association, 383--398. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. David Oppenheimer, Jeannie Albrecht, David Patterson, and Amin Vahdat. 2005. Design and implementation tradeoffs for wide-area resource discovery. In High Performance Distributed Computing, 2005. HPDC-14. Proceedings. 14th IEEE International Symposium on. IEEE, 113--124. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Sushil K Prasad, Almadena Yu Chtchelkanova, et al. 2011. NSF/IEEE-TCPP curriculum initiative on parallel and distributed computing: core topics for undergraduates.Google ScholarGoogle Scholar
  25. Ariel S Rabkin, Charles Reiss, Randy Katz, and David Patterson. 2012. Experiences teaching MapReduce in the cloud. In Proceedings of the 43rd ACM technical symposium on Computer Science Education. ACM, 601--606. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Aditya Rajgarhia and Ashish Gehani. 2010. Performance and extension of user space file systems. In Proceedings of the 2010 ACM Symposium on Applied Computing. ACM, 206--213. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Mahadev Satyanarayanan, James J. Kistler, Puneet Kumar, Maria E. Okasaki, Ellen H. Siegel, and David C. Steere. 1990. Coda: A highly available file system for a distributed workstation environment. IEEE Transactions on computers 39, 4 (1990), 447--459. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Sam Silvestro, Timothy T Yuen, Corey Crosser, Dakai Zhu, Turgay Korkmaz, and Tongping Liu. 2018. A User Space-based Project for Practicing Core Memory Management Concepts. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education. ACM, 98--103. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Jaime Spacco, David Hovemeyer, William Pugh, Fawzi Emad, Jeffrey K Hollingsworth, and Nelson Padua-Perez. 2006. Experiences with marmoset: designing and using an advanced submission and testing system for programming courses. ACM Sigcse Bulletin 38, 3 (2006), 13--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Michael Stonebraker, Sam Madden, and Pradeep Dubey. 2013. Intel big data science and technology center vision and execution plan. ACM SIGMOD Record 42, 1 (2013), 44--49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Red Hat Storage. 2011. Linus Torvalds doesn't understand userspace filesystems. https://redhatstorage.redhat.com/2011/06/28/ linus-torvalds-doesnt-understand-user-space-storage/.Google ScholarGoogle Scholar
  32. Douglas B Terry, Marvin M Theimer, Karin Petersen, Alan J Demers, Mike J Spreitzer, and Carl H Hauser. 1995. Managing update conflicts in Bayou, a weakly connected replicated storage system. In ACM SIGOPS Operating Systems Review, Vol. 29. ACM, 172--182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Maarten van Steen and Andrew S Tanenbaum. 2016. A brief introduction to distributed systems. Computing 98, 10 (2016), 967--1009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Maarten Van Steen and Andrew S Tanenbaum. 2017. Distributed Systems. Pearson Education.Google ScholarGoogle Scholar
  35. Bharath Kumar Reddy Vangoor, Vasily Tarasov, and Erez Zadok. 2017. To FUSE or Not to FUSE: Performance of User-Space File Systems. In Proceedings of FAST'17: 15th USENIX Conference on File and Storage Technologies. 59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Ivan Voras and Mario Zagar. 2006. Network distributed file system in user space. In Information Technology Interfaces, 2006. 28th International Conference on. IEEE, 669--674.Google ScholarGoogle ScholarCross RefCross Ref
  37. Sage AWeil, Scott A Brandt, Ethan L Miller, Darrell DE Long, and Carlos Maltzahn. 2006. Ceph: A scalable, high-performance distributed file system. In Proceedings of the 7th symposium on Operating systems design and implementation. USENIX Association, 307--320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Joel Wein, Kirill Kourtchikov, Yan Cheng, Ron Gutierez, Roman Khmelichek, Matthew Topol, and Chris Sherman. 2009. Virtualized games for teaching about distributed systems. ACM SIGCSE Bulletin 41, 1 (2009), 246--250. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            SIGCSE '19: Proceedings of the 50th ACM Technical Symposium on Computer Science Education
            February 2019
            1364 pages
            ISBN:9781450358903
            DOI:10.1145/3287324

            Copyright © 2019 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 22 February 2019

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            SIGCSE '19 Paper Acceptance Rate169of526submissions,32%Overall Acceptance Rate1,595of4,542submissions,35%

            Upcoming Conference

            SIGCSE Virtual 2024
            SIGCSE Virtual 2024: ACM Virtual Global Computing Education Conference
            November 30 - December 1, 2024
            Virtual Event , USA

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader