Advanced Distributed Systems

Course: COL 819
Semester II, 2020-21
Credits: 4 (3-0-2)



Instructor: Prof. Smruti R. Sarangi

Lectures
: Tuesday, Wednesday and Friday: 10 to 11 AM, [Online on Teams]

Piazza link:  piazza.com/iit_delhi/spring2021/col819
Course Description:
This course will give an introduction to some advanced aspects of distributed systems.

Evaluation: Midterm (25%), End term (30%), Assignment 1 (12.5%), Assignment 2(12.5%),
                     Assignment 3 (20%)
                   
                    Passing criteria: 25% in exams, 30% in assignments, 30% overall
                    Audit pass: 25% in exams, 30% in assignments, 40% overall

Teaching Assistants:
 
1. Shubhankar Suman Singh
2. Pratik Karia

Reference Books:
[Relevant Reference for Most Concepts] Distributed Systems: An Algorithmic Approach (Sukumar Ghosh, CRC)
[For relevant background] Distributed Systems: Principles and Paradigms (Andrew S. Tanenbaum and Martin V. Steen)
[Reference on distributed algorithms] Distributed Algorithms by Nancy Lynch
    OR
    Introduction to Distributed Algorithms by Gerard Tel
[Reference on advanced OS concepts] Advanced Concepts in Operating Systems (Singhal and Shivaratri)


Lectures and Slides:

Date
Lecture
References
Information Storage and Retrieval (Gossiping, P2P Networks, DHTs)

Feb 5th
Epidemic Based Algorithms Epidemic Algorithms for Replicated Database Maintenance
Gossip Based Algorithms
A Gossip-Style Failure Detection Service
Youtube link: YouTube video (gossip and epidemic based protocols)

Feb 9th and 10th
Napster and Gnutella
Napster and Gnutella: A Comparison of Two Popular Peer to Peer Protocols
Youtube link: YouTube video
Pastry DHT
Pastry: Scalable, decentralized object location and
routing for large-scale peer-to-peer systems


Youtube link:  YouTube video
Feb 15th
Chord DHT
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
Youtube link:YouTube video
Feb 20th
Freenet
Freenet: A Distributed Anonymous Information Storage and Retrieval System

Youtube link: YouTube video
Feb 20th
BitTorrent
1. Wikipedia page
2. Dissecting BitTorrent: Five Months in a Torrent's Lifetime
3. Kademlia: A Peer-to-Peer Information System Based on the XOR Metric
Youtube link: YouTube video
Distributed Algorithms
Feb 26th
Logical Clocks, Physical Clocks, GPS
1. Time, Clocks, and the Ordering of Events in a Distributed System
Berkely algorithm link
Youtube link: YouTube video
Feb 26th
Lamport's Mutual Exclusion Algorithm

Ricart Agarwala Algorithm
Maekawa's Algorithm

1. A root(N) Algorithm for Mutual Exclusion in Decentralized Systems (paper on Maekawa's Algorithm)
Token based Mutual Exclusion
Youtube link: YouTube video
March 2nd
Leader Election
Youtube link: YouTube video
March 2nd

Minimum Spanning Tree (GHS Algo.)
Refer to the book by Gerard Tel.
Youtube link: YouTube video

Chandy Lamport Algorithm
March 6-15



The FLP Result
1. Impossibility of Distributed Consensus with One Faulty Process
2. Simple explanation of the proof: link
Youtube link: YouTube video
Consistency : Sequential and causal consistency
Sequential consistency (tutorial), video (after 44th minute)
[Self study]
Client centric consistency models
CAP Theorem

Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services
[Self study]
Paxos 1. The Part-Time Parliament
2. Paxos Made Simple
Youtube link:  Youtube video

March 22nd to 27th
Raft consensus protocol
In Search of an Understandable Consensus Algorithm
Youtube link: Youtube video
Byzantine General's Problem
The Byzantine Generals Problem
Youtube link: Youtube video

March 29th to April 5th
Virtual Synchrony, 2-Phase and 3-Phase Commits
Nonblocking Commit Protocols (1981 SIGMOD)
Youtube link: Youtube video
Bitcoin and Blockchains
1. Bitcoin and Cryptocurrency Technologies, 2016
2. Hashcash - A Denial of Service Counter-Measure
3. Bitcoin: A Peer-to-Peer Electronic Cash System
4. Architecture of the Hyperledger Blockchain Fabric
5. Comparison of Ethereum, Hyperledger Fabric, and Corda
6. Bitcoin's Academic Pedigree
Youtube link: Youtube video
Large-scale Distributed Systems

April 5th to 12th
Coda  1. Coda: A Highly Available File System for a
Distributed Workstation Environment

2. Fallacies of Distributed Systems
Youtube link:Youtube video
Amazon Dynamo Dynamo: Amazon’s Highly Available Key-value Store
Youtube link: Youtube video

April 12th to 19th
Google Percolator
Large Scale Incremental Processing Using Distributed Transactions and Notifications
Youtube link:Youtube video
Corona A High Performance Publish-Subscribe System for
the World Wide Web

Youtube link: Youtube video
         Notes used along with the video (link)

April 19th to 26th
Facebook: Cassandra Cassandra: A Decentralized Structured Storage System
Youtube link:  Youtube video
Facebook: Photo Storage Finding a Needle in a Haystack: Facebook's Photo Storage
Youtube link:  Youtube video

April 26th to May 3
Voldemort (LinkedIn)
Project Voldemort -- Distributed Key-Value Storage
Youtube link:  Youtube video
Condor Distributed Computing in Practice:
The Condor Experience

Youtube link: Youtube video
May 3 to May 6
DryadLINQ DryadLINQ: A System for General-Purpose Distributed
Data-Parallel Computing Using a High-Level Language

Youtube link: