Principles of Distributed Systems

Lectures, Wednesday 12:20 - 13:50, S6, Malá Strana, 2025


:email: Contact

  • Office: Room S203, 2nd floor
  • Mattermost: ulita.ms.mff.cuni.cz/mattermost
    • Invite link in SIS/notice-board
    • Channel: 2526/nswi035-distrib-en
    • DM: @faltin.tomas
  • Email: tomas.faltin@matfyz.cuni.cz


:calendar: Lecture Schedule

Lab Date Lecture Slides Study
01 01.10. :heavy_check_mark: pdf 1, 2.1–2.3
02 08.10. :heavy_check_mark: pdf 4.2-4.4, 8.3, 8.4
03 15.10. :x: 5.1-5.6
04 22.10. :x: 7.2, 7.5
05 29.10. :heavy_check_mark: slides.04: pages 13-50, slides.08 pages 67-76, slides.05: pages 1-21
06 05.11. :heavy_check_mark: slides.05: pages 22-88 7.3, 7.4, 2.4
07 12.11. :x: (Dean’s day) 8.1, 8.2, 8.5
08 19.11. :heavy_check_mark:
09 26.11. :heavy_check_mark: 8.2, 8.5
10 03.12. :heavy_check_mark: slides: pages 107-126
11 10.12. :heavy_check_mark: slides: pages 46-64
12 17.12. :heavy_check_mark: Tbd: Trans, Transis, Vsync/ISIS
13 07.01. :heavy_check_mark: tbd: Blockchain

:bangbang: Study Tips

  • Keep up with reading assignments after each lecture.
  • Use Mattermost for quick clarifications.

:scroll: Syllabus

Distributed Systems - Van Steen, Tanenbaum

Module Topic Key Concepts/Protocols/Algorithms
1. Introduction (skim through entire chapter) Distributed vs. Decentralized systems, Resource Sharing, Design Goals (Openness, Dependability, Security, Scalability), Distribution Transparency (Access, Location, Concurrency, Failure, Migration, Relocation, Replication), Partial Failure, Scaling Techniques (Partitioning, Replication), Leslie Lamport’s definition, Lack of trust (relevance for decentralized systems).
2. Architectures [2.1] Architectural styles Layered Architectures, Service-Oriented Architecture (SOA), RESTful Architecture, Microservices, Shared Data Space, Linda tuple spaces.
  [2.2] Middleware and distributed systems Middleware Layer, ZeroMQ, AMQP (Advanced Message Queuing Protocol).
  [2.3] Layered-system architectures Client-Server Architecture, Multitiered Architectures, Thin Client.
  [2.4] Symmetrically distributed system architectures Peer-to-Peer (P2P), Overlay Network, Distributed Hash Tables (DHT), Chord system, Flooding, Random Walk.
  [2.5] Hybrid systems architectures Cloud Computing, Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), Blockchain architectures
4. Communication [4.2] RPC Remote Procedure Call (RPC), Marshaling, Interface Definition Language (IDL), Parameter passing (copy/restore), RPC semantics (at-least-once, at-most-once), Orphans, Orphan extermination, Reincarnation, Expiration.
  [4.4] Multicast communication Application-level multicasting, Flooding, Gossip-based Data Dissemination (Epidemic protocols), Epidemic models, Anti-entropy.
5. Coordination [5.1] Clock synchronization Physical clocks, NTP, Reference Broadcast Synchronization (RBS), Coordinated Universal Time (UTC).
  [5.2] Logical clocks Logical Clocks, Causal Dependency, Lamport’s Logical Clocks (Timestamp), Vector Clocks, Totally Ordered Multicasting.
  [5.3] Mutual exclusion Centralized Algorithm (Sequencer), Ricart-Agrawala Algorithm,Token-Ring Algorithm, Decentralized algorithm, Deadlock, ZooKeeper Locking.
  [5.4] Election algorithms - RAFT Bully Algorithm, Ring Algorithm, RAFT Leader Election, Proof of Work (PoW), Proof of Stake (PoS), Invitation Algorithm.
6. Naming [6.2.3] Distributed hash tables Flat Naming, Distributed Hash Tables (DHT), Chord, Forwarding Pointers, Self-Certifying Name.
7. Consistency and Replication [7.2] Data-centric consistency models Sequential Consistency, Causal Consistency, Entry Consistency, (Strong) Eventual Consistency, Weak Consistency, Continuous Consistency (Conit), Distributed Shared Memory (DSM), Conflict-Free Replicated Data Type (CRDT), Coherence Model.
  [7.4] Replica management Replica placement, Content Distribution Networks (CDN), Permanent/Server-initiated/Client-initiated replicas, Push-based vs. Pull-based Protocols, Content-blind caching.
8. Fault tolerance [8.1] Introduction Failure Models (Crash, Omission, Timing, Arbitrary/Byzantine Failures), Redundancy (Information, Physical, Time), Dependability (Availability, Reliability, Safety).
  [8.2] Process resilience (Paxos, RAFT, byzantine agreement problem) Process Groups, Consensus, Paxos (Proposer, Acceptor, Learner, Ballot numbers), RAFT (Term, Log Replication, AppendEntries), Byzantine Generals Problem (BGP), Practical Byzantine Fault Tolerance (PBFT), Consensus in blockchain systems, CAP Theorem.
  [8.3] Reliable client-server communication Reliable RPC Semantics, Failure detection, At-least-once semantics, At-most-once semantics, Idempotent operation.
  [8.4] Reliable group communication (virtual synchrony) Reliable multicasting, Feedback Implosion, Atomic multicast, Causally ordered multicast, Virtual Synchrony.
  [8.5] Distributed commit Distributed Commit, Two-Phase Commit (2PC), Three-Phase Commit (3PC).
  [8.6.2] Checkpointing Checkpointing, distributed snapshot, independent chackpointing

Missing Topics and Details

Module Topic Missing/Unexplained Concepts/Protocols/Algorithms Sources
Coordination Mutual exclusion Maekawa’s Algorithm, Ricard-Agrawala, Naive Voting, Maekawa voting. PDS-en.pptx, Maekawa’s Algorithm, wiki
  Election algorithms LeLann Algorithm, Hirschback-Sinclair Algorithm (Ring algorithms). PDS-en.pptx
Distributed paging Distributed paging Distributed paging with sequestion or causal consistency PDS-en.pptx
Virtual synchrony Virtual synchrony Trans Algorithm, Transis algorithm, VSync/ISIS. PDS-en.pptx, Transis, ISIS+Transis
Global state detection Global state detection Chandy-Lamport Marker Algorithm (for distributed snapshots/consistent global state), Diffusing Computation (for deadlock/termination detection). PDS-en.pptx, slides
Termination detection Termination detection Dijsktra-Scholten Algorithm, Huang’s Algorithm wiki-DS, wiki-Huang,
Deadlock Detection Deadlock Detection TWFG (Transaction-Wait-For Graph), Centralized algorithms: Ho-Ramamoorthy algorith, Path-pushing algorithms: Menasce-Muntz, Obermarck, Edge-chaising algorithms: Mitchell-Merritt, Chandy-Misra-Haas, Diffusing computation: Bracha-Toueg Edge-chasing Chandy-Misra-Haas, DistrDeadlocks.pdf
Blockchain Blockchain transactions, UTXO, signatures, mining, consensus, payment channels, lightning network pds-btc.pptx
Distributed data structures CRDTs, Distributed hash-tables CRDT wiki