CS 380D: Distributed Systems

Welcome to distributed systems! This course will be a discussion and research-oriented course. We will be reading and discussing a series of papers over the course of the semester. There may be one or two midterms. There will be a big research project due at the semester: the quality of the research project should be high enough to be potentially published in a workshop or a conference. The course will be modelled on a similar course at Wisconsin you can check out here.

Some of the topics we will be covering:

  • Google Spanner
  • Gossip protocols and Quorums
  • Eventual Consistency and the CAP theorem
  • Google File System
  • Facebook Haystack, ZippyDB, Dragon
  • NoSQL stores
  • Distributed File Systems such as AFS and NFS
  • Paxos and RAFT
  • Amazon Dynamo
  • Testing Distributed Systems
  • Disaster Recovery

Background

The expected background for this course is an undergraduate operating systems course, in which you learned the basics of an OS: virtualizing the CPU, virtualizing memory, file systems, and so forth. Probably you learned it out of some book like Silberschatz or Tanenbaum or the free OS book from Wisconsin.

You should also have some hardware background, as in a basic understanding of how a machine works, what caches and TLBs are, and things like that. This knowledge is particularly useful because the OS sits at the lowest levels of the system, and thus we sometimes need to know things about the hardware.

Resources

There are no prescribed books for this course. The content will be sourced from publications, blogs, and reading the code.

Course Policies

Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259, http://www.utexas.edu/diversity/ddce/ssd/.

Religious Holy Days: A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the exam on an alternate day or submit the assignment up to 24 hours late without penalty, if proper notice of the planned absence has been given. Notice must be given at least 14 days prior to the classes which will be missed. For religious holy days that fall within the first 2 weeks of the semester, notice should be given on the first day of the semester. Notice must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail. Email notification will be accepted if received, but a student submitting email notification must receive email confirmation from the instructor.

Collaboration

  1. The students are encouraged to do the projects in groups of two or three.
  2. All exams are done individually, with absolutely no collaboration.
  3. Each student must present.
  4. I strongly encourage you to discuss the projects and assignments with anyone you can. That's the way good science happens. But all work and writeup for the assignment must be your own, and only your own.
  5. As a professional, you should acknowledge significant contributions or collaborations in your written or spoken presentations.
  6. The student code of conduct is here. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask.
  7. The penalty for cheating on an exam, project or assignment in this course is an F in the course and a referral to the Dean of Students office.
  8. You cross over from collaboration to cheating when you look at another person/team's source code. Discussing ideas is okay, sharing code is not.
  9. You also may not look at any course project material relating to any project similar to or the same as this course's class projects. For example, you may not look at the work done by a student in past years' courses, and you may not look at similar course projects at other universities.
  10. All submitted work must be new and original.

Exams

  1. You will be allowed a A4 page of notes during exams. I will likely make the exams open book, but I reserve the right not to do so.
  2. Laptops, tablets, and ereaders are BANNED from exams. You should not need them in an exam, and they are far too flexible as communication devices to make enforcement of non-communication policies enforceable. Any use of a communication device for any reason in the exam room will earn an automatic zero on the exam.

Late Policy

  1. All projects/assignments must be submitted in class the day they are due.
  2. For each day a project/assignment is late, you lose 10% of the points for that project. So if you submit two days after the deadline, your maximum points on that project will be 80%.
  3. In this class, it is always better to do the work (even late) than not do it at all.
  4. If you become ill: contact the instructor. A medical note is required to miss an exam.

Schedule

Who: Vijay Chidambaram
When: TuTh 2-3:30 PM
Where: TBD

Office hours: TBD

Acknowledgements

This course is inspired by (and uses material from) courses taught by Alison Norman, Remzi Arpaci-Dusseau, Don Porter, Simon Peter, and Chris Rossbach.

Copyright

Copyright Notice: These course materials, including, but not limited to, lecture notes, homeworks, and projects are copyright protected. You must ask me permission to use these materials.

I do not grant to you the right to publish these materials for profit in any form. Any unauthorized copying of the class materials is a violation of federal law and may result in disciplinary actions being taken against the student or other legal action against an outside entity. Additionally, the sharing of class materials without the specific, express approval of the instructor may be a violation of the University's Student Honor Code and an act of academic dishonesty, which could result in further disciplinary action. This includes, among other things, uploading class materials to websites for the purpose of sharing those materials with other current or future students.