/bsds-6650

CS6650 Building Scalable Distributed Systems

Primary LanguageJava

Building Scalable Distributed Systems

CS6650 Spring 2022

Instructors:

  • Section 1 - Ian Gorton, Khoury College of Computer Sciences, Northeastern University, Seattle Campus
  • Section 2 - Vishal Rajpal, Khoury College of Computer Sciences, Northeastern University, Seattle Campus

Logistics

This is an onground class taught on the Seattle Campus, 225 Terry Ave N

  • Section 1 - Room 416, Tuesday 3-6:20pm
  • Section 2 - Room 416, Friday 6-9:20pm

Course Lead

  • Ian Gorton - i.gorton(at)northeastern.edu
  • Vishal Rajpal - v.rajpal(at)northeastern.edu

Office Hours -

  • Section 1 : Wednesday 2-4PM (PST)
  • Section 2 : Monday 5-6:30PM (PST)

Super Talented Teaching Assistants

  • Yaqin Zhou - zhou.yaq(at)northeastern.edu
    • Thursday 1-3PM (PST) via Teams
  • Peilin Guo - guo.peil(at)northeastern.edu
    • Friday 1-3PM (PST) via Teams
  • Emiliano Zhu - zhu.em(at)northeastern.edu
    • Tuesday 1-3PM (PST) via Teams
  • Phuong Pham - pham.phuon(at)northeastern.edu
    • Tuesday 10AM-12PM (PST) via Teams

Overview

This course will cover the essential elements of distributed, concurrent systems and build upon that knowledge with engineering principles and practical experience with state-of-the-art technologies and methods for building scalable systems. Scalability is an essential quality of Internet-facing systems, and requires specialized skills and knowledge to build systems that scale at low cost.

Course Delivery

This site contains all the informtion for the course, except the quiz questions. Class will meet each week for 3 hour 15 mins. Classes will be a mix of lectures and labs.

Course Book

The book for the course, Foundations of Scalable Systems, is being written as you read

The first 15 chapters should be progressively available online here.

You should be able to access this and all O'Reilly books through the library.

Assessment

  • There are 4 individual assigments. They total 70% of the final grade.
  • There are 4 quizes. They combine to add up to the remianing 30% of the grade. The first 3 will cover the materials in the previous 3 week's classes. The last quiz will have questions that cover the whole course. Each quiz will be allocated 45 minutes and be available at the start of the class in which it is scheduled.

Course Content

Modules

Week Topic Date (Section 1) Date (Section 2)
1 Introduction to Scalable Distributed Systems 1/18 1/21
2 Concurrency 1/25 1/28
3 Distributed Systems Architecture Whirlwind Tour 2/1 2/4
4 Distributed Systems Fundamentals 2/8 2/11
5 Scalable Service Design 2/15 2/18
6 Asynchronous Systems 2/22 2/25
7 Microservices 3/1 3/4
8 Data Replication, Partitioning and Eventual Consistency 3/8 3/11
9 Strong Consistency and Distributed Databases 3/22 3/25
10 NoSQL Databases 3/29 4/1
11 Serverless Processing Systems 4/5 4/8
12 Stream Processing 4/12 4/15
13 Final Quiz 4/19 4/22
14 Assignment 4 presentations 4/26 4/29

Assignments

Submission instructions and exact deadlines are on the course Canvas site.

Assignment Topic Due Date (Same for both sections)
1 Concurrency and Client-server 2/17
2 Building the Server 3/11
3 Adding the Data Layer 4/8
4 Mix Request Loads 4/29

Quizzes

Quizzes are held on Tuesdays, in class. Once you start you must finish within 45 minutes.

Quiz Date (Section 1) Date (Section 2)
1 2/15 2/18
2 3/8 3/11
3 4/5 4/8
4 Last class! Last class!

Reading

In addition to the course book, the following are great resources, and can be excellent references for this course and your future career.

  • Java Concurrency in Practice 1st Edition, Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea
  • Distributed systems : concepts and design, Coulouris, George F. ; Dollimore, Jean. ; Kindberg, Tim. ; Blair, Gordon. Harlow, England ; Addison-Wesley c2012
  • Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, Martin Kleppmann, O'Reilly

Policies

Late Submission If you need more time, come beg :). Communications usually give a positive outcome. Without warning, you'll lose 5% of your final grade each day overdue.

Missed Quizzes Quizzes last approximately 45 minutes. If you are not able to attend and take the quiz at the same time as others, you must let your instructor know in advance. Failure to do this will result in a zero for the quiz you miss.

Do your own work You know the rules. Helping each other out is fine, but design and build and test your own system. Any unwarranted collaboration will result in a zero grade for the assignment.