Distributed Systems

Course: CSL860
Semester II, 2012-13
Credits: 4 (3-0-2)



Instructor: Dr. Smruti R. Sarangi

Lectures
: Mon, Thurs. 9:30 to 10:50, IIA-201

Course Description: This course will give an introduction to some advanced aspects of distributed systems.

Course Load: 1 Mid-term, 1 End-term, Minor 1(Programming Assignment 1), Minor 2(Programming Assignment 2),
                         Programming Assignment 3

Teaching Assistants: Pooja Aggarwal

Lectures and Slides:

Date
Lecture
Paper
July 24th
Course Overview
(slides adapted from Prof. Martin Van Steen's
  original slides with consent)

July 28th
Introduction
(slides adapted from Prof. Martin Van Steen's
 original slides with consent)

July 31st
Epidemic Based Algorithms
Epidemic Algorithms for Replicated Database Maintenance

Gossip Based Algorithms

Napster and Gnutella
A Gossip-Style Failure Detection Service

Napster and Gnutella: A Comparison of Two Popular Peer
to Peer Protocols


Pastry
Pastry: Scalable, decentralized object location and
routing for large-scale peer-to-peer systems


Pastry


Chord
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications


Synchronization: Physical Clocks


Logical Clocks
Maekawa's Algorithm

Mutual Exclusion


Leader Election


Minimum Spanning Trees, Chandy Lamport Algorithm


Chandy-Lamport Algorithm, Consistency


Consistency and Replication


Mid term


Mid term Solutions, Reliability
The Byzantine Generals Problem
Impossibility of Distributed Consensus with One Faulty Process

Paxos
The Part-Time Parliament
Paxos Made Simple

Fault Tolerance


Google Percolator
Large Scale Incremental Processing Using Distributed Transactions and Notifications

Amazon Dynamo
Dynamo: Amazon’s Highly Available Key-value Store

AFS vs NFS
Slides used at IIT Delhi with
permission of David A. Eckhardt. The original
course web page can be found here.


Coda
Coda: A Highly Available File System for a
Distributed Workstation Environment


Corona
A High Performance Publish-Subscribe System for
the World Wide Web

Condor
Distributed Computing in Practice:
The Condor Experience


DryadLINQ
DryadLINQ: A System for General-Purpose Distributed
Data-Parallel Computing Using a High-Level Language

Facebook: Photo Storage
Finding a Needle in a Haystack: Facebook's Photo Storage

Facebook: Cassandra
Cassandra: A Decentralized Structured Storage System

Voldemort
Project Voldemort -- Distributed Key-Value Storage