Why do I need to learn about distributed systems?
Distributed systems provides foundation for understanding theories and techniques behind cloud computing and block chain technology.
Architectures, protocols and algorithms introduced in distributed systems are necessary for creating complicated software too.
What can I do after finishing learning distributed systems?
You will be able to design software that can
- tolerate faults,
- shard data,
- handle massive number of requests, and
- perform expensive computation.
You will be prepared to learn about cloud computing and block chain technology.
What should I do now?
Please audit this course, Distributed Systems, UC Santa Cruz Baskin School of Engineering, 2021, to familiarize yourself with core concepts and protocols.
Afterward, audit this course, MIT 6.824, Distributed Systems, Spring 2020, to learn how to design large-scale distributed systems.
At the same time, you can read
– this book, Maarten van Steen and Andrew S. Tanenbaum (2023). Distributed Systems. Maarten van Steen, and
– this book, Martin Kleppmann (2017). Designing Data-Intensive Applications – The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O’Reilly Media, to solidify your knowledge.
Terminology Review:
- Fault Tolerance
- Consistency
- System Models
- Failure Detectors
- Communication
- Ordering
- State Machine Replication
- Primary-Backup Replication
- Bully Algorithm
- Ring Election
- Multi-Leader Replication
- Leaderless Replication
- Cristian’s Algorithm
- Berkeley Algorithm
- Lamport Clocks
- Vector Clocks
- Version Vectors
- Chain Replication
- Consensus
- FLP
- Raft
- Paxos
- Viewstamped Replication
- Zab
- Consistent Hashing
- Distributed Transactions
- ACID
- Two-Phase Commit
- Three-Phase Commit
- Serializability
- Two-Phase Locking
- Distributed Locks
- CAP
- Consistency Models
- Linearizability
- Distributed Architectures
- Distributed Programming
- Hadoop
- Spark
- Tensorflow
- PyTorch
- Kubernetes
- Bitcoin
- Smart Contracts
After finishing learning about computer networks please click Topic 26 – Introduction to Cloud Computing to continue.