Here is a list of topics I suggest you review in preparation for your midterm exam:
- Why study distributed systems?
- Client/server architecture
- N-tier web architecture
- SOA
- Twitter - original architecture and scalability challenges
- Web services
- Why
- SOAP/REST
- Non-web distributed systems
- CAP
- Pinterest
- scaling challenges
- clustering vs sharding
- Causality
- Time synchronization
- drift and skew
- Cristian's algorithm
- NTP (high level)
- Synchronous vs asynchronous systems
- Lamport timestamps
- Vector timestamps
- Coordination algorithms
- safety
- liveness
- mutual exclusion
- election
- Paxos
- protocol
- Replication
- consistency models
- Pileus
- implementation
- evaluation