This lecture will cover the fundamentals of distributed systems and distributed algorithms.
Selected topics are:
- architectures of distributed systems. Client-server architecture, data-flow architecture, distributed algorithms
- distributed algorithms: time and causality, group communication, selection algorithms, synchronisation
- distributed storage, replication, consistency, caching, distributed storage, distributed transactions
- fault-tolerance, fault classification, voting, Byzantine agreement