CS555: Distributed Systems

[Schedule] [Assignments] [Infospaces] [Grading] [Syllabus]


[Announcements] [Home]


Page was lasted updated on Monday, November 25, 2019 10:59 AM

Readings will be based on the following textbooks.



[TvS] Distributed Systems: Principles and Paradigms. Andrew S. Tanenbaum and Maarten van Steen. 2nd Edition. Prentice Hall. ISBN: 0132392275/978-0132392273.
[CDKB Distributed Systems: Concepts and Design. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. 5th Edition. Addison Wesley. ISBN: 978-0132143011
[KS] Distributed Computing: Principles, Algorithms, and Systems. Ajay Kshemkalyani and Mukesh Singhal. 1st edition. Cambridge University Press. ISBN: 0521876346/ 978-0521876346.
[GPB] Java Concurrency in Practice. Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea. Addison-Wesley Professional. ISBN: 0321349601/978-0321349606.
[NL] Distributed Algorithms. Nancy Lynch. 1st edition. Morgan Kaufman. ISBN: 1558603484/978-1558603486.
MapReduce Design Patterns: Building Effective Algorithms and Analytics for Hadoop and Other Systems. 1st Edition. Donald Miner and Adam Shook. O'Reilly Media ISBN: 978-1449327170.
[KKWZ] Learning Spark: Lightning-Fast Big Data Analysis. 1st Edition. Holden Karau, Andy Konwinski, Patrick Wendell, and Matei Zaharia. O'Reilly. 2015. ISBN-13: 978- 1449358624.
[KW] High Performance Spark: Best Practices for Scaling and Optimizing Apache Spark. Holden Karau and Rachel Warren. O'Reilly Media. 2017. ISBN-13: 978-1491943205.
[GR] Cloud Application Architectures: Building Applications and Infrastructure in the Cloud. George Reese.1st edition. O'Reilly. ISBN: 0596156367/978-0596156367.
[PD] Computer Networks: A Systems Approach. Larry Peterson and Bruce Davie. 4th edition. Morgan Kaufmann. ISBN: 978-0-12-370548-8.
[FS] Practical Cryptography. Niels Ferguson and Bruce Schneier. 1st edition. Wiley Publishing. ISBN: 0-471-22894-X/0-471-22357-3.
[WS] Cryptography and Network Security: Principles and Practice. William Stallings. 5th Edition. Prentice Hall. ISBN: 0136097049/978-0136097044
[RR] Unix Systems Programming. Kay Robbins & Steve Robbins, 2nd edition. Prentice Hall. ISBN: 978-0-13-042411-2.
[SGG] Operating Systems Concepts. Avi Silberschatz, Peter Galvin, Greg Gagne. 8th edition. John Wiley & Sons, Inc. ISBN-13: 978-0-470-12872-5.



The following is the tentative schedule for the course. This is subject to changes.

Week Date Topic Assignments Readings
1 Aug 26-30 Introduction

Lecture 1  [HHD-ver] (8/27)

Time and Logical Clocks
Time and Global Positioning Systems.
Time synchronization algorithms: Berkley Algorithm, Cristian’s Algorithm, and synchronization in wireless settings.
Lamport's Clocks, Vector and Matrix Clocks

Lecture 2  [HHD-ver] (8/29)


Term Project 8/28
[TvS] Chap {2, 3, 6}
[KS] Chap {1, 3, 6}
2 Sep 02-06
Lecture 3  [HHD-ver] (9/3)

Peer-to-Peer Systems
Peer to Peer (P2P) Systems: characteristics, P2P generations, P2P middleware and requirements.
Structured and Unstructured P2P Systems
Time & Space complexity of P2P algorithms
Systems: Pastry, Chord, Tapestry, Napster, Gnutella, and BitTorrent

Lecture 4  [HHD-ver] (9/5)

  [TvS] Chap {3,6}
[KS] Chap {3,6}
[CDKB] Chap {14}
[SGG] Ch {4, 5}
[RR] Chap {12}

3 Sep 09-13
Lecture 5  [HHD-ver] (9/10)

Lecture 6  [HHD-ver]( 9/12)

HW2 9/10

[TvS] Chap {5}
[CDKB] Chap {7, 10}
[KS] Chap {18}
[GPB] Chap {1,2,11}
4 Sep 16-20
Lecture 7  [HHD-ver] (9/17)

Lecture 8  [HHD-ver] (9/19)

Term Project:
Team due 9/20
[CDKB] Chap {10}
5 Sep 23-27
Lecture 9  [HHD-ver] (9/24)

Programming models for Data Intensive Computing: MapReduce

Lecture 10  [HHD-ver] (9/26)

HW1 due 9/25
[CDKB] Chap {10}
[Computing Economics]

[MapReduce Paper]
6 Sep 30-Oct 04

Lecture 11  [HHD-ver] (10/1)

Spark: A cluster-computing framework
Core Concepts, Orchestration Plans, Narrow/Wide ependencies, Resilient Distributed Datasets (RDD), DataFrames, Datasets, Catalyst Optimizer, Operations: transformations & actions, Pair RDDs, Spark streaming

Lecture 12  [HHD-ver] (10/3)

HW3 10/03

[Hadoop Setup Guide]

Running Word Count]

[MS] Chap {1-3}

[KKWZ] Chap {1-4}
[KW] Chap {2}
7 Oct 07-11
Lecture 13  [HHD-ver] (10/8)

Lecture 14  [HHD-ver] (10/10)

[KKWZ] Chap {1-4}
[KW] Chap {6}
8 Oct 14-18 Threads and Distributed Servers
Development of Scalable Servers
Harnessing cluster servers

Lecture 15  [HHD-ver] (10/15)

Lecture 16  [HHD-ver] (10/17)

HW2 due 10/16

TP-D1 [Term project proposal & Presentation] due 10/18.

[CDKB] Chap {4}
[KS] Chap {13}

October 16: Course withdrawal period ends. Last day to withdraw with a W.

9 Oct 21-25 Term Project Proposal Presentations

Project Presentations (10/17)

Content Dissemination Systems
(a) Queuing Systems
(b) Publish/Subscribe and P2P systems
(c) Epidemic protocols
(d) Overlays

[TvS] Chap {4, 6}
[KS] Chap {18}
[CDKB] Chap {4}

10 Oct 28-Nov 01
Replication, Consistency and Coherence Performance and correctness implications of replication and consistency.
(a) Data and client centric consistency, consistent ordering of operations: sequential consistency and causal consistency. Monotonic read, Monotonic write, Read-your-writes, and Writes-follow-read.
(b) Consistency Protocols
(c) Replica placements
(d) Brewer's CAP theorem and design implications

Lecture 19  [HHD-ver] (10/29)

Lecture 20  [HHD-ver] (10/31)


[TvS] Chap {7}

11 Nov 04-08
Lecture 21  [HHD-ver] (11/5)

Lecture 22  [HHD-ver] (11/7)

HW3 due 11/06
[TvS] Chap {7}

[Amazon-Consistency Paper]

12 Nov 11-15 Distributed Storage Systems

Amazon Dynamo
: Assumptions & requirements, design choices, systems architecture, partitioning algorithm, replication, versioning, and experiences.

Lecture 23  [HHD-ver] (11/12)

Google File System: Demand pulls, file system interface, chunking, managing file system metadata, records and atomic appends, creating snapshots, replication, consistency, deletion and garbage collection.

Lecture 24  [HHD-ver] (11/14)



[GFS Paper]
13 Nov 18-23

Lecture 25  [HHD-ver] (11/19)

Lecture 26  [HHD-ver] (11/21)


[GFS Paper]

[Server Consolidation]

Nov 25-29: Fall Break

14 Dec 02-06 RPCs and Distributed Objects
Parameter Passing, Generation of Stubs, Static and Dynamic Invocations, parameter passing (big/little endian), XDR, RMI, distributed garbage collection, activatable objects, serialization and pitfalls.

Lecture 27  [HHD-ver] (12/3)

Lecture 28  [HHD-ver] (12/5)

Term Project:
Software due 12/04

Term Project:
Report due: 12/06

Term Project:
Presentations: 12/06
[GPB] Ch {1-4}
[TvS] Ch {4}
[CDKB] Ch {4-5, 18}
15 Dec 09-13 Term Project Presentations
Guidelines for Presentations

16 Dec 16-20 [Finals Week]


Dec 23: Final Letter Grades will be posted












Department of Computer Science, Colorado State University,
Fort Collins, CO 80523 USA
© 2019 Colorado State University