pk.org: CS 417

CS 417 Syllabus

Draft

This is a tentative syllabus for the class, but it will almost certainly be revised.

week date topic
1 Jan 26 Introduction, fault tolerance, networking
  • Definitions, properties, challenges
  • Layers, tiers, topologies, horizontal vs. vertical scaling
  • Failure models
  • Networking: IP, protocols, sockets
2 Feb 2 Inter-process communication
  • Data serialization: JSON, Google protocol buffers
  • Remote procedure calls, distributed objects, web services
3 Feb 9 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 Feb 16 Group communication and virtual synchrony
  • Message ordering and delivery guarantees
  • Multicasting
  • Group membership and virtual synchrony
5 Feb 23 Distributed coordination and consensus
  • Distributed mutual exclusion
  • Leader election
  • Raft consensus
  • Google Chubby (Apache Zookeeper)
EXAM 1
6 Mar 2 Distributed file systems
  • Network attached storage: NFS, AFS, SMB, Coda
7 Mar 9 Parallel file systems: Google FS (GFS), Hadoop Distributed FS (HDFS)
Peer-to-peer systems and distributed hash tables
  • DHTs: CAN, Chord, Amazon Dynamo
  • DNS
- Mar 16 **Spring Break**
8 Mar 23 Distributed transactions
  • commit protocols: 2PC, 3PC
  • Consistency models: ACID/BASE, eventual consistency, CAP theorem
  • Distributed deadlock
  • Concurrency control
9 Mar 30 Distributed databases
  • Bigtable (Apache HBase), Cassandra, Spanner
EXAM 2
10 Apr 6 Distributed computation
  • MapReduce
  • Bulk Synchronous Parallel (Apache Hama)
  • Pregel (Apache Giraph)
  • Apache Spark
11 Apr 13 Moving content
  • Kafka event streaming
  • Akamai, peer-to-peer content delivery
12 Apr 20 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 Apr 27 Cluster architectures
  • Google cluster architecture
  • Clustering: high-performance computing (HPC), load balancing, and high availability
EXAM 3
14 May 4 Distributed systems design
  • Summary, lessons, emerging trends
15 May 11?? Final exam: 8:00-11:00pm

Go here to get lecture notes and other course documentation.

Note

The list of topics is subject to change without notice. This schedule is approximate as some topics may spill over to a successive lecture or recitation.

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.