CS435 - Distributed Systems
This course introduces students to distributed and parallel systems. It covers process distribution and communication, data distribution, scheduling, concurrency, resource sharing, synchronization, naming, abstraction and modularity, failure handling, distributed programming models, distributed file systems, virtualization, and the use of instrumentation, monitoring and debugging tools in problem solving. Students will learn the design and implementation of today’s popular distributed system paradigms, such as Google File System and MapReduce.
Class Schedule:
10.00AM to 11.00AM Everyday except Thursday. Lab 1A19 Building 105.
Exams Schedule:
Midterm Exam: Monday April 22, 2024.
Final Exam: As scheduled on Edugate.
Important Links: [Syllabus] [This week] [Scores] [Learning Management System]
Course Materials
Week 1-2 Fundamentals
Week 1 Slides: Intro (6 MB)Tutorial 1
Week 2 Slides: Dist Sys Design & Architecture (4.5 MB)
S. M. Thampi ,"Introduction to Distributed Systems", arXiv:0911.4395, 2009.
Introduction to Distributed System Design - Google Code University
Tutorial 2
Week 3-4 Parallel Computing
Week 3 Slides: Parallel Processing (5.6 MB)JavaPoint ForkJoin Tutorial
Tutorial 3
LAB Assignment 1: Posted on LMS
Week 4 Slides: Parallel Processing contd. (2.9 MB)
MapReduce: Simplified Data Processing on Large Clusters
Week 5-7 Communications in Dist Sys
Week 5 Slides: Communication (3.5 MB)Tutorial 4
LAB Assignment 2: Posted on LMS
Week 6 Slides: Communication -> RPC (2.6 MB)
Tutorial 5
Week 7 Slides: Communication Models (3.5 MB)
Week 8-13 Core concepts
Week 8 Slides: Replication and Fault Tolerance (3.4 MB)
The two generals problem
Blockchain, a solution to byzantine generals problem?
A complete history of Amazon outages
Week 9 Slides: Synchronization (5.8 MB)
How NTP works?
G Manepali, Clocks and Causality - Ordering Events in Distributed Systems
Tutorial 6
Week 10 Slides: Consensus (4.6 MB)
A visual guide to understanding Raft.
Raft Github Repo
Paxos vs Raft: Have we reached consensus on distributed consensus?
Tutorial 7
Midterm Exam this week!
Week 11 Slides: Consistency and Distributed Transactions
2PC vs 3PC, a comparison
Eric Brewer, Spanner, TrueTime & The CAP Theorem
Adrian Booth: Designing Data Intensive Applications: Consistency with Linearizability
Week 12 Slides: Distributed File Systems
P Macko and J Hennessey, "Survey of Distributed File System Design Choices", ACM Transactions on Storage, Vol 18, No 1, 2022.
Pan et. al., Navigating the Landscape of Distributed File Systems: Architectures, Implementations, and Considerations
Tutorial Hadoop 1/2
Week 13 Slides: Security
Securing distributed systems: A survey on access control techniques for cloud, blockchain, IoT and SDN
Tutorial Hadoop 2/2
Week 14-15 Dist Systems and Applications
Lecture Notes: P2P systems, Hadoop, Spark, MapReduce, Docker, KubernetesProject