This course will be an in-depth study of the algorithmic and implementation challenges in building large scale distributed applications. Topics include distributed coordination, scheduling, consistency issues, and fault tolerance algorithms. The course will cover how fundamental distributed systems concepts are applied to cloud computing environments. The course will mix algorithmic concepts and practical implementations; substantial programming experience is required.

Announcements

  • The exam will be online during class Thursday November 12
  • The Final Project Milestone 0-1 details have been announced.
  • If you have feedback for us, please fill out this anonymous form!
  • Check the Syllabus for more info.
  • Both sections 10 and 11 of CSCI 6421 will meet together as one class. You can register for either section with no difference.
  • We will meet online using Blackboard Collaborate Ultra. If we have problems with Blackboard, check here or on Slack for a backup plan!
  • The course will use the Go programming language. Get ready to code!

Schedule

All deadlines are 11:59PM Eastern Time

Part 1: Building Blocks
Overview
9/3/2020
Lecture Slides and Video (on BlackBoard Collaborate click the Menu icon and go to Recordings)
Tasks: Join Slack today! -- Student Survey due Monday 9/7
Scalable Execution
9/10/2020
Lecture Slides and Video
Tasks: Readings in Chapters 1, 3 -- Watch Azure HWaaS Video -- HW1: Parallel Sum due Tuesday 9/15
Communication
9/17/2020
Lecture Slides and Video
Tasks: Readings in Chapters 3, 4 -- Read MapReduce paper
Architectures
9/24/2020
Lecture Slides and Video
Tasks: Readings in Chapter 2
Resource Management
10/1/2020
Lecture Slides and Video
Tasks: HW2: Map Reduce due 10/1, -10 points by 10/8 -- MapReduce Help Video
Resource Management 2
10/8/2020
Lecture Slides and Video
Tasks: HW2: Map Reduce -10 points by 10/8 -- Partner Feedback Form
Part 2: Principles of Distributed Systems
Clocks and Timing
10/15/2020
Lecture Slides and Video -- Clock Worksheet and Solution Video
Tasks: Readings in Chapter 6 -- Milestone 1: Select a Topic - 10/19
Distributed Coordination
10/22/2020
Lecture Slides and Video
Tasks: Readings in Chapter 6
Fault Tolerance
10/29/2020
Lecture Slides and Video
Tasks: Readings in Chapter 8 -- Milestone 2: Literature Review - 10/29
Replication
11/5/2020
Lecture Slides and Video -- Consistency Problems Worksheet
Tasks: Readings in Chapter 7 -- Milestone 3: Design Document - 11/8 (extended)
Midterm Exam
11/12/2020
Practice problems
Tasks:Study!
Part 3: Distributed Systems in Practice
Performance Modeling
11/19/2020
Lecture Slides and Video
Tasks:Work on your project!
Cloud Computing
12/3/2020
Lecture Slides and Video
Tasks:Work on your project!
Internet of Things and Big Data
12/10/2020
Lecture Slides and Video
Tasks: Milestone 4: Final Report - 12/14 -- Bonus HW3: Leader Election - 12/10