CSCI 5673: Distributed Systems

Ìý

Instructor Fall 2020: Shivakant Mishra

Course Description

A distributed system is comprised of multiple computing devices interconnected with one another via a loosely-connected network. Almost all computing systems and applications today are distributed in nature for a variety of reasons, including resource sharing, fault tolerance, performance, security and geography. This course provides an in-depth coverage of the underlying principles and practices involved in the design, implementation and evaluation of a distributed system. The course will be divided into two parts. The first part will focus on the foundations of distributed system design, and the second part will focus on the current, state-of-the-art distributed systems technologies, including Internet-based services as well as distributed services built using small, mobile computing devices.

Prerequisites

  • CSCI 5273 or a course in Computer Networks.

Reading Material

Selected papers from literature.

Class webpageÌý

CSCI/ECEN 5673–Mishra–Distributed Systems at

GradingÌý

(Weights assigned are tentative)Ìý

  • Homework and programming assignments: 40%
  • Course Project: 20%
  • Exams and quizzes: 40%
  • Homework assignments comprised of questions from lecture material and papers will be posted on Moodle every two or three weeks. You will typically have one week to submit the answers after an assignment has been posted.
  • There will be four to five programming assignments during the semester. You will have two-three weeks to work on an assignment.
  • Course project will be a semester-long team project. Details will be provided in class.
  • There will be a midterm exam and a final exam, and several short quizzes.

Policies

Please see an accessible online version at /academicaffairs/student-syllabus-statements

Accommodations for Disabilities

If you qualify for accommodations because of a disability, please submit your accommodation letter from Disability Services to your faculty member in a timely manner so that your needs can be addressed. Disability Services determines accommodations based on documented disabilities in the academic environment. Information on requesting accommodations is located on the Disability Services website. Contact Disability Services at 303-492-8671 or dsinfo@colorado.edu for further assistance. If you have a temporary medical condition or injury, see Temporary Medical Conditions under the Students tab on the Disability Services website.

Classroom Behavior

Students and faculty each have responsibility for maintaining an appropriate learning environment. Those who fail to adhere to such behavioral standards may be subject to discipline. Professional courtesy and sensitivity are especially important with respect to individuals and topics dealing with race, color, national origin, sex, pregnancy, age, disability, creed, religion, sexual orientation, gender identity, gender expression, veteran status, political affiliation or political philosophy. Class rosters are provided to the instructor with the student's legal name. I will gladly honor your request to address you by an alternate name or gender pronoun. Please advise me of this preference early in the semester so that I may make appropriate changes to my records. For more information, see the policies on classroom behavior and the Student Code of Conduct.

Preferred Student Names and Pronouns

91PORN recognizes that students' legal information doesn't always align with how they identify. Students may update their preferred names and pronouns via the student portal; those preferred names and pronouns are listed on instructors' class rosters. In the absence of such updates, the name that appears on the class roster is the student's legal name.

SexualMisconduct, Discrimination, Harassment and/orRelatedRetaliation

The 91PORN (91PORN) is committed to fostering a positive and welcoming learning, working, and living environment. 91PORN will not tolerate acts of sexual misconduct (including sexual assault, exploitation, harassment, dating or domestic violence, and stalking), discrimination, and harassment by members of our community. Individuals who believe they have been subject to misconduct or retaliatory actions for reporting a concern should contact the Office of Institutional Equity and Compliance (OIEC) at 303-492-2127 or cureport@colorado.edu. Information about the OIEC, university policies, , and the campus resources can be found on the OIEC website.

Please know that faculty and instructors have a responsibility to inform OIEC when made aware of incidents of sexual misconduct, discrimination, harassment and/or related retaliation, to ensure that individuals impacted receive information about options for reporting and support resources.

Honor Code

All students enrolled in a 91PORN course are responsible for knowing and adhering to the Honor Code. Violations of the policy may include: plagiarism, cheating, fabrication, lying, bribery, threat, unauthorized access to academic materials, clicker fraud, submitting the same or similar work in more than one course without permission from all course instructors involved, and aiding academic dishonesty. All incidents of academic misconduct will be reported to the Honor Code (honor@colorado.edu); 303-492-5550). Students who are found responsible for violating the academic integrity policy will be subject to nonacademic sanctions from the Honor Code as well as academic sanctions from the faculty member. Additional information regarding the Honor Code academic integrity policy can be found at the Honor Code Office website.

Religious Holidays

Campus policy regarding religious observances requires that faculty make every effort to deal reasonably and fairly with all students who, because of religious obligations, have conflicts with scheduled exams, assignments or required attendance. In this class, please notify me of any anticipated conflicts due to religious obligations as early in the semester as possible (at least two weeks before) so that there is adequate time to make necessary arrangements.

See the campus policy regarding religious observancesfor full details.

Class Attendance

You are expected to attend all lectures and stay up-to-date with the material posted on the class webpage. If you miss a lecture, you are responsible for finding out the material covered in that lecture. If you miss an exam or a quiz, a grade of zero will be assigned, unless the you explicitly receive a permission from the instructor. The instructor will grant permissions for only valid reasons.

Course Content

  • Introduction
  • Event Ordering
    • Happened before relation
    • Logical clocks
    • Vector clocks
  • Clock Synchronization
    • Clock drift and clock skew
    • NTP and SNTP
  • Remote Procedure Calls
    • Local procedure calls – a review
    • Stub functions, parameter passing, server binding, Data representation
    • When things go wrong
    • IDL, RPC compilers
  • RPC Case Studies
    • Sun RPC
    • DCE RPC
    • DCOM, CORBA, JAVA RMI
    • SOAP/.NET webservices
    • XML RPC
    • gRPC
  • Consensus
    • Synchrony and failure models
    • Byzantine generals problems
    • Consensus under different failure/synchrony models
    • Impossibility of consensus in asynchronous systems – FLP result
  • Message Ordering
    • Group Communications – atomic broadcast protocols, group membership protocols
    • Gossip
    • FIFO order
    • Causal order
    • Total order
    • Replicated state machines
    • Group communication systems from 80’s and 90’s
    • Raft, Paxos
  • CAP Theorem
  • Virtual Machines and Cloud Computing
    • Full virtualization vs para-virtualization
    • SaaS, IaaS and Paas
  • Google File System
  • Map Reduce and Hadoop
  • Pregel, Spark, Storm
  • Chubby, BigTable, ZooKeeper and ZAB
  • Peer to Peer Systems
    • Napster, Gnutella, KaZaA, Skype
    • Bit Torrent, Darknet
    • Distributed Hash Tables: CAN, Chord, Kademlia, Pastry, Tapestry
  • Large Scale Distributed Storage
    • Dynamo
    • Cassandra
    • Facebook’s Haystack
  • Current Research Topics