CS 417 Syllabus

Fall 2023

week date topic*
1 Sep 11 Introduction, fault tolerance, networking
  • Definitions, properties, challenges
  • Layers, tiers, topologies, horizontal vs. vertical scaling
  • Failure models
  • Networking: IP, protocols, sockets
2 Sep 18 Inter-process communication
  • Data serialization: JSON, Google protocol buffers
  • Remote procedure calls, distributed objects, web services
3 Sep 25 Inter-process communication
  • Web services: Service-Oriented Architecture (SOA)/microservices, SOAP, REST
Time, clocks, and event ordering
  • Clock synchronization, NTP
  • Logical clocks, vector clocks
4 Oct 2 Group communication and virtual synchrony
  • Message ordering and delivery guarantees
  • Multicasting
  • Group membership and virtual synchrony
5 Oct 9 Distributed coordination and consensus
  • Distributed mutual exclusion
  • Leader election
  • Raft consensus
  • Google Chubby (Apache Zookeeper)
6 Oct 16 Distributed file systems
  • Network attached storage: NFS, AFS, SMB, Coda
7 Oct 23 Parallel file systems: Google FS (GFS), Hadoop Distributed FS (HDFS)
Peer-to-peer systems and distributed hash tables
  • DHTs: CAN, Chord, Amazon Dynamo
  • DNS
8 Oct 30 Distributed transactions
  • commit protocols: 2PC, 3PC
  • Consistency models: ACID/BASE, eventual consistency, CAP theorem
  • Distributed deadlock
  • Concurrency control
9 Nov 6 Distributed databases
  • Bigtable (Apache HBase), Cassandra, Spanner
10 Nov 13 Distributed computation
  • MapReduce
  • Bulk Synchronous Parallel (Apache Hama)
  • Pregel (Apache Giraph)
  • Apache Spark
11 Nov 20 Moving content
  • Kafka event streaming
  • Akamai, peer-to-peer content delivery
12 Nov 27 Security in distributed systems
  • Cryptography: communication and authentication, key exchange, secure communication, hybrid cryptosystems, digital signatures
  • Distributed authentication: protocols, digital certificates, TLS
  • Identity management (OpenID), distributed authorization (OAuth)
13 Dec 4 Cluster architectures
  • Google cluster architecture
  • Clustering: high-performance computing (HPC), load balancing, and high availability
14 Dec 11 Distributed systems design
  • Summary, lessons, emerging trends
15 Wed Dec 20 Final exam: 8:00-11:00pm

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].

*Subject to change without notice.
Last modified December 1, 2023.
recycled pixels