Course topics

Introductory part: a short overview of the basics of distributed systems, including

  • Why Distributed Systems?
  • Scalability, Performance, Availability properties

Topic 1: Network communication and Remote Procedure Calls

  • Sync, Async communication
  • Serialization and de-serialization
  • RPC problem: Duplicate, Delay, Drop, Reorder

Topic 2: Failures

  • Failure Models
  • Messaging delivery semantics

Topic 3: Concurrency & Timing

  • Shared-memory and concurrency
  • Time and order, total and partial order
  • Logical Clocks and happens-before relation

Topic 4: Replication

  • Replication goals: high availability, performance
  • Primary/Backup and Multi-Leader Replication
  • Replication and Synchronicity
  • Replication and Consistency

Topic 5: Consensus & Consistency

  • Two Generals’ Problem, FLP theorem
  • CAP theorem. BASE
  • Consistency and Consensus
  • Tunable Consistency
  • Consistency Models

Topic 6: Availability & Consensus algorithms

  • High availability, majority, leader election
  • Replicated State Machine
  • Consensus algorithms: Paxos, Raft, ZAB, … (overview)

Topic 7: General recommendations for building distributed systems

 

Про факультет

Важлива інформація

Контактна інформація