0% found this document useful (0 votes)
124 views

Course Modules - Distributed Computing - CS-7210-O01

This document outlines the course modules for CS-7210 Distributed Computing. It includes 7 lessons that cover topics such as introduction to distributed systems, remote procedure call, time in distributed systems, state in distributed systems, consensus, replication, and fault tolerance. Each lesson includes readings, examples, and summaries. There are also 3 programming projects and discussions on Piazza forums.

Uploaded by

tomandjerry625
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
124 views

Course Modules - Distributed Computing - CS-7210-O01

This document outlines the course modules for CS-7210 Distributed Computing. It includes 7 lessons that cover topics such as introduction to distributed systems, remote procedure call, time in distributed systems, state in distributed systems, consensus, replication, and fault tolerance. Each lesson includes readings, examples, and summaries. There are also 3 programming projects and discussions on Piazza forums.

Uploaded by

tomandjerry625
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

Collapse All

 Welcome to CS7210 Distributed Computing Complete All Items

Step 1: Getting Started


 Mark done

Step 2: Course Activities and Locations


 Mark done

Step 3: Enroll in the Piazza Forums


 
Mark done

Step 4: Check Your Canvas Communication Settings


 
Mark done

Step 5: Proctoring Information


 
Mark done

Step 6: Onboarding Quiz


 
7 pts | Submit

 Lesson 1: Introduction to Distributed Systems Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 1 Readings and Additional Resources


 
View
https://gatech.instructure.com/courses/220502/modules 1/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01
View

 Lesson 1 Introduction

 Examples of Distributed Systems

 What is a Distributed System?

 A Simple Model of a Distributed System

 A Slightly More Complex Model of a Distributed System

 Importance of a Model

 What is Hard about Distributed Systems?

 Properties of a Distributed System

 Correctness

 The CAP "Theorem"

 Lesson 1 Summary

Project 1 DSLabs Intro



Sep 6 | 5 pts

https://gatech.instructure.com/courses/220502/modules 2/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Lesson 2: Primer on Remote Procedure Call Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 2 Readings and Additional Resources


 View

 Lesson 2 Introduction

 Client-Server Architecture

 Challenges in Client-Server

 Role of RPC

 Architecture of an RPC System

 Anatomy of an RPC Call

 Invocation Semantics of RPC Operations 1

 Invocation Semantics of RPC Operations 2

 Examples of RPC Systems

 Examples of RPC Systems: gRPC

https://gatech.instructure.com/courses/220502/modules 3/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Lesson 2 Summary

 Lesson 3: Time in Distributed Systems Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 3 Readings and Additional Resources


 View

 Lesson 3 Introduction

 Why Do We Need Time?

 Why Is Measuring Time Hard in DS?

 Logical Time

 Common Notations

 Concurrent Events

 Logical Clock

 Lamport’s Scalar Clock

 Vector Clock
https://gatech.instructure.com/courses/220502/modules 4/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Matrix Clock

 Lesson 3 Summary

 Lesson 4: State in Distributed Systems Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 4 Readings and Additional Resources


 View

 Lesson 4 Introduction

 Global State, Snapshots, and Other Terminology

 Challenges about State in Distributed Systems

 System Model

 Finding a Consistent Cut: Algorithm in Action

 Snapshot Algorithm

 Global State

 Properties of a Global State


https://gatech.instructure.com/courses/220502/modules 5/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01
 Properties of a Global State

 Benefits of Global State: Evaluate Stable Properties

 Definite vs. Possible State

 Lesson 4 Summary

Project 2 Client-Server
 Sep 20 | 10 pts

 Lesson 5: Consensus in Distributed Systems Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 5 Readings and Additional Resources


 View

 Lesson 5 Introduction

 What is Consensus?

 Preliminaries: System Model

 Preliminaries: Definitions

 FLP Theorem

https://gatech.instructure.com/courses/220502/modules 6/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Proof in a Nutshell

 Is Consensus Really Impossible?

 Lesson 5 Summary

 Lesson 6: Replication Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 6 Readings and Additional Resources


 View

 Lesson 6 Introduction

 Goal of Replication

 Replication Models

 Replication Techniques

 Replication and Consensus

 Chain Replication

 CRAQ
https://gatech.instructure.com/courses/220502/modules 7/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 CRAQ vs CR Scalability?

 Lesson 6 Summary 2

 Lesson 7: Fault Tolerance Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 7 Readings and Additional Resources


 View

 Lesson 7 Introduction

 Some Taxonomy

 Rollback-Recovery Idea

 Basic Mechanisms

 Checkpointing Approaches

 Uncoordinated Checkpointing

 Coordinated Checkpointing

 Communication Induced
https://gatech.instructure.com/courses/220502/modules Checkpoints 8/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01
 Communication-Induced Checkpoints

 Logging

 Which Method to Use?

 Lesson 7 Summary

Project 3 Primary-Backup

Oct 11 | 10 pts

 Lesson 8: PAXOS and Friends Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 8 Readings and Additional Resources


 View

 Lesson 8 Introduction

 Goal of Consensus Protocol

 2PC and 3PC

 Paxos History

 Paxos Made Simple

https://gatech.instructure.com/courses/220502/modules 9/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Paxos Made Simple: Phases

 Paxos: Prepare Phase

 Paxos: Accept Phase

 Paxos: Learn Phase

 Corner Cases

 Paxos vs. FLP

 Multi-Paxos

 Paxos in Practice

 RAFT

 RAFT Overview

 RAFT Leader Election

 RAFT Log Replication

 RAFT Safety

https://gatech.instructure.com/courses/220502/modules 10/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 RAFT in Action

 Lesson 8 Summary

 Lesson 9: Distributed Transactions Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 9 Readings and Additional Resources


 
View

 Lesson 9 Introduction

 What are Distributed Transactions?

 Spanner Brief

 Spanner Stack

 Consistency Requirements

 True Time

 Ordering Write Transactions with TT Timestamps

 Read Transactions
https://gatech.instructure.com/courses/220502/modules 11/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 No TrueTime?

 Another DDB Example: AWS Aurora

 Lesson 9 Summary

Mid-Term Exam
 Oct 13 | 100 pts

Project 4 Paxos

Nov 8 | 15 pts

 Lesson 10: Consistency in Distributed Data Stores Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 10 Readings and Additional Resources


 View

 Lesson 10 Introduction

 Why is Consistency Important and Hard?

 Key-Value Store

 Memcached

https://gatech.instructure.com/courses/220502/modules 12/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Look-Aside Cache Design

 Mechanisms in Memcached

 Causal+ Consistency

 Lesson 10 Summary

 Lesson 11: Peer-To-Peer & Mobility Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 11 Readings and Additional Resources


 View

 Lesson 11 Introduction

 Communication Support Assumed So Far

 Interconnect Support

 Peer to Peer Systems

 Connectivity in P2P

 Distributed Hash Table (DHT)


https://gatech.instructure.com/courses/220502/modules 13/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Chord

 Hierarchical Systems

 Heterogeneous Systems: A Mobile Network Example

 Alternative Algorithms

 Lesson 11 Summary

 Lesson 12: Distributed Data Analytics Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 12 Readings and Additional Resources


 View

 Lesson 12 Introduction

 Data Processing at Scale

 MapReduce Brief

 Design Decisions MapReduce

https://gatech.instructure.com/courses/220502/modules 14/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Limitations of MapReduce

 Spark

 Resilient Distributed Datasets (RDDs)

 RDDs through Example

 RDD Transformations

 Did Spark Achieve its Goal?

 Lesson 12 Summary

Project 5 Sharded KV Store


 Dec 6 | 15 pts

 Lesson 13: Support for Datacenter-Based Distributed Computing Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items

Lesson 13 Readings and Additional Resources


 View

 Lesson 13 & 14 Introduction

https://gatech.instructure.com/courses/220502/modules 15/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Datacenter Trends

 What is RDMA?

 RDMA-Specialized RPC

 What if Memory is Persistent?

 Disaggregation

 Systems Software in Disaggregated Systems?

 LegoOS Approach

 Disaggregating CPU and Memory with LegoOS

 LegoOS Select Experimental Result

 Lesson 14: Datacenter-based Distributed Management Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

 Lesson 14 Readings and Additional Resources

Management Stack in Datacenters


 
View
https://gatech.instructure.com/courses/220502/modules 16/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Datacenter Management at Scale

 Overview of Borg Operations

 Achieving Scalability

 Experimental Results

 Lesson 13 & 14 Summary

 Lesson 15: Distributed Machine Learning Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 15 Readings and Additional Resources


 View

 Lesson 15 Introduction

 Distributed Machine Learning

 Distributed Machine Learning Approaches

 Geo-Distributed ML

 Leverage Approximation
https://gatech.instructure.com/courses/220502/modules 17/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01
 Leverage Approximation

 Gaia: An Approximate Synchronous Parallel System

 Tradeoffs of Using Global Model

 Collaborative Learning with Cartel

 Beyond Geo-Distributed Training

 Lesson 15 Summary

 Lesson 16: Byzantine Fault Tolerance & Blockchain Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 16 Readings and Additional Resources


 View

 Lesson 16 Introduction

 Byzantine Failure and Byzantine Generals

 Byzantine Fault Tolerance

 Practical Byzantine Fault Tolerance: pBFT

https://gatech.instructure.com/courses/220502/modules 18/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 pBFT Algorithm

 Byzantine Consensus vs. Blockchain?

 How to Learn More

 Lesson 16 Summary

 Lesson 17: Edge Computing & IoT (Internet of Things) Prerequisites: Welcome to CS7210 Distributed Computing Complete All Items 

Lesson 17 Readings and Additional Resources


 View

 Lesson 17 Introduction

 Tiers in Computing

 Why Edge Computing?

 Closing the Latency/Bandwidth Gap

 Is Edge Computing New?

 Edge Computing Drivers


https://gatech.instructure.com/courses/220502/modules 19/20
8/29/2021 Course Modules: Distributed Computing - CS-7210-O01

 Distributed Edge Computing

 IoT and Distributed Transactions

 Transactuations

 Evaluation of Transactuations

 Lesson 17 Summary

Final Exam
 Dec 15 | 100 pts

 Link to Jeff Dean's talk Prerequisites: Welcome to CS7210 Distributed Computing 

 JeffDean_USENIX_PWL.mp4

https://gatech.instructure.com/courses/220502/modules 20/20

You might also like