NETS 2120: Scalable and Cloud Computing (Fall 2023)
What is the "cloud"? How do we build software systems and components that scale to
millions of users and petabytes of data, and are "always available"?
In the modern Internet, virtually all large Web services run atop multiple geographically
distributed data centers: Google, Yahoo, Facebook, iTunes, Amazon, eBay, Bing, etc.
Services must scale across thousands of machines, tolerate faults, and support thousands
of concurrent requests. Increasingly, the major providers (including Amazon, Google,
Microsoft, HP, and IBM) are looking at "hosting" third-party applications in their
data centers - forming so-called "cloud computing" services. A significant number
of these services also process "streaming" data: geocoding information from cell
phones, tweets, streaming video, etc.
This course, aimed at a sophomore with exposure to basic programming within the context
of a single machine, focuses on the issues and programming models related to such cloud
and distributed data processing technologies: data partitioning, storage schemes, stream
processing, and "mostly shared-nothing" parallel algorithms.
NETS2120 is a required course for the NETS program
and a core requirement for the Data
Science Minor. It also counts as a project elective for
as an Information Systems Elective for SSE.
Office hours: TBA (Levine 560)
The format will be two 1.5-hour lectures per week, plus assigned readings. There will be regular
homework assignments, two midterms, and a term project. We will use an online forum for course-related discussions.
Time and location
Mondays/Wednesdays 10:15-11:45am (Location TBA)
CIS 1200, Programming Languages and Techniques
CIS 1600, Mathematical Foundations of Computer Science
Spark: The Definitive Guide, by Bill Chambers and Matei Zaharia (O'Reilly)
ISBN 9781491912218; read online for free, or buy for approx. $54.
Data-Intensive Text Processing with MapReduce, by Jimmy Lin and Chris Dyer (Morgan & Claypool)
ISBN 978-1608453429; read online for free, or buy for approx. $40.
Additional materials will be provided as handouts or in the form of light technical papers.
Homework 30%, Term project 30%, Exams 35%, Participation/quizzes 5%
You can find a list of key course policies here.
Homework assignments will be available for download; solutions should be submitted via GradeScope.
"What is the Cloud, and why is it interesting?"
Overview of topics
||What is the Cloud?
Problems with classical scaling
Kinds of clouds
|Armbrust: A view of cloud computing
||Scalability and parallelization; Amdahl's law
Mutual exclusing and locking
|Vogels: Eventually consistent
|TBA||Last day to add|
||The Internet; packet switching
Path properties; TCP
||HW0 due; HW1 released
||Faults and Failures
Examples of non-crash faults
Replication; durability and availability
Network partitions; CAP theorem
|Tseitlin: The antifragile organization
||History of cloud computing
Interacting with the cloud
Overview of some other AWS services
|"Cloud computing features, issues, and challenges: a big picture"
KVS and concurrency
KVS and the Cloud
Case study: S3
Case study: DynamoDB
|Cooper et al.: PNUTS to Sherpa - Lessons from Yahoo!'s Cloud Database
||Introduction to scalable analytics
The Streams API
Lambdas and serialization
|"Spark textbook, Chapter 2 and 3"
|Oct 2||First midterm exam|
|TBA||Last day to drop|
||Programming in Spark
Working with files
The Structured API
Distributed shared variables
|"Spark textbook, Chapters 4-8"
||Origins of Spark
The HDFS file system
|Zaharia et al.: Cluster Computing with Working Sets
||Distributed graph algorithms
Graph algorithms in Spark
Single-source shortest path
Naive Bayes learning
|"Lin & Dyer, Chapter 5"
|Oct 12-15||Fall Break|
Adsorption / label propagation
|Baluja et al.: Video Suggestion and Discovery for YouTube
||HW2MS2 due; HW3 released
Bulk synchronous parallelism
Pregel and graph processing
Overview of deep neural nets
|Malewicz et al.: 'Pregel - A System for Large-Scale Graph Processing'
HTML and CSS
The Domain Name System
|"Cloudflare: HTTP/3: The past, the present, and the future"
||Web programming (continued)
||HTTP and HTTPS
HTTP/2 and HTTP/3
|TBA||Last day to designate course as pass/fail|
||Motivation: CGI and servlets
Node.js; basic operation
Hello world with Node
Cookies and sessions
|"Node at LinkedIn: the pursuit of thinner, lighter, faster"
||HW4 and project handout released
The Document Object Model
|TBA||Last day to withdraw|
AJAX with jQuery
socket.io and async
Working with APIs
||HW4MS1 due; team formation deadline; project begins
||Web services and XML
Data interchange; challenges
Working with XML
||First project check-in
Attacks and Defenses (Part 1)
Attacks and Defenses (Part 2)
|Current OWASP Top 10
||Motivations for databases and data management [Video]
"Relational model, data streams" [Video]
SQL basics; declarative approach; query optimization [Video]
Transactions; ACID [Video]
|F1: A Distributed SQL Database That Scales
||HW4MS3 due; second project check-in
Partly centralized systems; BitTorrent
Unstructured overlays; epidemic protocols
Structured overlays; consistent hashing; KBR
Case study: Pastry
|Rodrigues and Druschel: P2P systems
||Third project check-in
|Nov 22||No class (Friday schedule)|
||Case study: Bitcoin
Bitcoin and Proof-of-Work
Challenges in Bitcoin
||Case study: Facebook
Scalability in TAO
Fault handing in TAO
|Bronson et al.: TAO: Facebook's Distributed Data Store for the Social Graph
||Fourth project check-in
|Differential Privacy: The Pursuit of Protections by Default
|Dec 11||Second midterm exam|
|Dec 14-21||Project demos; written reports due|