CS 417 Syllabus
Fall 2021
week | date | topic* |
---|---|---|
1 | Sep 8 |
Note: This is a Wednesday but Rutgers holds Monday classes on this day Introduction Networking: network protocols, point-to-point communication |
2 | Sep 13 |
Data marshaling: JSON, Google protocol buffers
Remote procedure calls, distributed objects |
3 | Sep 20 |
Clock synchronization
Event ordering: Logical clocks, vector clocks |
4 | Sep 27 |
Group communication: message ordering and message delivery, multicasting
Replication, group management, and virtual synchrony |
5 | Oct 4 |
Distributed mutual exclusion
Election algorithms Distributed consensus: Raft Google's Chubby lock manager (Apache Zookeeper) |
6 | Oct 11 |
Network attached storage: design, NFS, AFS (scale), DFS & SMB (cache control), CODA (redundancy)
Parallel file systems: Google FS (GFS), Hadoop Distributed FS (HDFS) |
7 | Oct 18 | Distributed lookup services and distributed hash tables, Amazon Dynamo, DNS |
8 | Oct 25 |
Distributed transactions: commit protocols, ACID/BASE models Distributed deadlock Concurrency control |
9 | Nov 1 | Structured data: Bigtable (Apache HBase), Cassandra, Spanner |
10 | Nov 8 |
MapReduce
Parallel computation frameworks: Hive, Apache Spark, Bulk Synchronous Parallel framework (Apache Hama), Pregel (Apache Giraph) |
11 | Nov 15 |
Content delivery networks: Akamai, peer-to-peer content delivery, Kafka event streaming, Distributed caching: memcached, Redis |
12 | Nov 22 |
Cryptography: introduction, communication and authentication, key exchange, secure communication, hybrid cryptosystems, digital signatures
Distributed authentication: protocols, digital certificates, Kerberos, SSL Identity management (OpenID), distributed authorization (OAuth) |
13 | Nov 29 | NO CLASS: Wednesday classes |
14 | Dec 6 |
Google cluster architecture, Clustering: high-performance computing (HPC), load balancing, and availability |
15 | Dec 13 | Distributed systems design |
Go here to get lecture notes and other course documentation.
Rutgers CS Diversity and Inclusion Statement
Rutgers Computer Science Department is committed to creating a consciously anti-racist, inclusive community that welcomes diversity in various dimensions (e.g., race, national origin, gender, sexuality, disability status, class, or religious beliefs). We will not tolerate micro-aggressions and discrimination that creates a hostile atmosphere in the class and/or threatens the well-being of our students. We will continuously strive to create a safe learning environment that allows for the open exchange of ideas while also ensuring equitable opportunities and respect for all of us. Our goal is to maintain an environment where students, staff, and faculty can contribute without the fear of ridicule or intolerant or offensive language. If you witness or experience racism, discrimination micro-aggressions, or other offensive behavior, you are encouraged to bring it to the attention to the undergraduate program director, the graduate program director, or the department chair. You can also report it to the Bias Incident Reporting System].