Log In
0% completed
All Lessons
Free Lessons (7)
Prologue
Case Studies: Standing on the Shoulders of Giants
File Systems
Introduction to Distributed File Systems
Google File System (GFS)
Introduction to GFS
GFS File Operations
Detailed Design of GFS
Workflow of Create and Read File Operations in GFS
Workflow of Write Operations in GFS
Workflow of Delete and Snapshot Operations in GFS
Relaxed Data Consistency Model
Dealing with Data Inconsistencies in GFS
Metadata Consistency Model of GFS
Evaluation of GFS
Quiz on GFS
Google Colossus File System
Introduction to Colossus
Design and Evaluation of Colossus
Quiz on Colossus
Facebook's Tectonic File System
Introduction to Tectonic
ZippyDB Design
Detailed Design of Tectonic
Multitenancy in Tectonic
Tenant-specific Optimization in Tectonic
Empirical Evaluation of Tectonic's Functional Requirements
Evaluation of Tectonic
Quiz on Tectonic
Databases
Introduction to Distributed Databases
Google Bigtable
Introduction to Bigtable
Data Model of Bigtable
Detailed Design of Bigtable: Part I
Detailed Design of Bigtable: Part II
Design Refinements in Bigtable
Evaluation of Bigtable
Quiz on Bigtable
Google Megastore
Introduction to Megastore
High-level Design for Better Availability and Scalability
Data Model of Megastore
Replication in Megastore
Evaluation of Megastore
Quiz on Megastore
Google Spanner
Introduction to Spanner
Detailed Design of Spanner
Database Buckets and Data Model of Spanner
TrueTime API in Spanner
Spanner, TrueTime, and the CAP Theorem
Concurrency Control in Spanner
Database Operations in Spanner
Evaluation of Spanner
Quiz on Spanner
Key-value Stores
Introduction to Key-value Stores
Many-core Key-value Store
Motivation and Requirements for a Many-core Approach
Estimations and Limitations of a Many-core System
Detailed Design of a Many-core System
Evaluation of the Many-core System
Quiz on Many-core Systems
Scaling Memcache
Introduction to Scaling Memcache
Single-server Level of Memcache
Cluster Level of Memcache
Regional Level of Memcache
Cross-regional Level of Memcache
Evaluation of Memcache
Quiz on Memcache
SILT
Introduction to SILT
High-level Design of SILT
A Write-friendly Store for SILT: Part I
A Write-friendly Store for SILT: Part II
A Write-friendly Store for SILT: Part III
Intermediary Store(s) in SILT
A Memory-efficient Store for SILT: Part I
A Memory-efficient Store for SILT: Part II
A Memory-efficient Store for SILT: Part III
Request Flows in SILT
Evaluating and Extending the Design of SILT
Quiz on SILT
Amazon DynamoDB
Introduction to DynamoDB
High-level Design of DynamoDB
No Fixed Schema in DynamoDB
Partitioning and Replication in DynamoDB
Adapting to Traffic Patterns in DynamoDB
Durability and Correctness in DynamoDB
Ensuring High Availability in DynamoDB
Quiz on DynamoDB
Concurrency Management
Introduction to Concurrency Management
Two-phase Locking (2PL)
Introduction to Two-Phase Locking (2PL)
Analysis and Evaluation of Two-Phase Locking (2PL)
Quiz on 2PL
Google Chubby Locking Service
Introduction to Chubby
Detailed Design of Chubby: Part I
Detailed Design of Chubby: Part II
Detailed Design of Chubby: Part III
Detailed Design of Chubby: Part IV
The Rationale Behind Chubby’s Design
Evaluation of Chubby
Quiz on Chubby
ZooKeeper
Introduction to ZooKeeper
Detailed Design of ZooKeeper
Primitives of ZooKeeper
Evaluation of ZooKeeper
Quiz on ZooKeeper
Big Data Processing: Batch to Stream Processing
Introduction to Big Data Processing Systems
MapReduce
System Design: MapReduce
High-level Design of MapReduce
MapReduce: Detailed Design
Design Refinements in MapReduce: Part I
Design Refinements in MapReduce: Part II
MapReduce: Evaluation
Concluding MapReduce
Quiz on MapReduce
Spark
Introduction to Spark
Requirements of Spark
High-level Design of Spark
Resilient Distributed Datasets of Spark
Parallel Operations in Spark
Shared Variables in Spark
Detailed Design of Spark
Refinements in Spark
Evaluation of Spark
Quiz on Spark
Kafka
Introduction to Kafka
High-level Design of Kafka
Detailed Design of Kafka
Efficiency of Kafka
Distributed Coordination in Kafka
Delivery Guarantees of Kafka
Evaluation of Kafka
Quiz on Kafka
Consensus
Introduction to Consensus in Distributed Systems
Understanding Consensus: Two Generals, FLP, & Byzantine Generals
Consensus Prerequisites and Two Generals' Problem
FLP Impossibility
The Byzantine Generals Problem
Let AI Evaluate Your Understanding of Consensus Fundamentals
Two-phase Commit
Introduction to Two-Phase Commit (2PC)
Working of the Two-Phase Commit Protocol
Failures in the Two-Phase Commit Protocol
Quiz on Two-Phase Commit
State Machine Replication
Introduction to State Machine Replication
State Machines
Replication and Coordination of State Machines
Ordering Requests: Part I
Ordering Requests: Part II
Fault Tolerance for Outputs and Clients
Protocols for Maintaining Fault Tolerance: Part I
Protocols for Maintaining Fault Tolerance: Part II
SMR in Practice Via a Log
Quiz on State Machine Replication
Paxos
Introduction to Paxos
Basic Paxos Protocol Design
Basic Paxos in Action
The Rationale behind Paxos Design Choices
Multi-Paxos
Quiz on Paxos
Raft
Introduction to Raft
Raft's Basics and High-Level Workflow
Raft's Leader Election Protocol
Raft's Log Replication Protocol
Raft's Safety, Fault-Tolerance, and Availability Protocols
Raft's Cluster Membership Changes
Log Compaction and Client Interaction in Raft
Quiz on Raft
Epilogue
Conclusion
Practice Mock Interview
Grokking the Principles and Practices of Advanced System Design
/
...
/
Quiz on Kafka
Quiz on Kafka
Test your understanding of concepts related to the design of Kafka via a quiz.
We'll cover the following...
...