2023-2024 / INFO8002-1

Topics in Distributed Systems

Duration

30h Th, 35h Proj.

Number of credits

 Master of Science (MSc) in Computer Science and Engineering (Odd years, organized in 2023-2024) 5 crédits 
 Master of Science (MSc) in Computer Science and Engineering (double degree programme with HEC) (Odd years, organized in 2023-2024) 5 crédits 
 Master of Science (MSc) in Computer Science (Odd years, organized in 2023-2024) 5 crédits 
 Master of Science (MSc) in Computer Science (joint-degree programme with HEC) (Odd years, organized in 2023-2024) 5 crédits 

Lecturer

Bernard Boigelot, Christophe Debruyne, Pascal Fontaine, Guy Leduc, Laurent Mathy

Language(s) of instruction

English language

Organisation and examination

Teaching in the second semester

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

In the modern data landscape, distributed systems have become a critical component. They are of primary importance for the reliable storage, but also for the analysis of the increasingly larger volumes of data encountered in web-based applications, cloud computing centres or in networks of connected objects. 

However, distributed systems remain notoriously difficult to build because they need to scale to hundreds or thousands of machines, they must be tolerant to crashes, they have to cope with concurrent execution and they need to ensure consistency of the data they store. 

In this context, the course will cover elements of distributed systems in a bottom-up fashion. We will first cover the foundational abstractions that are the core of distributed systems, e.g. basic abstractions and system assumptions, reliable broadcast, shared memory and consensus. We will then study data computing systems that are built on top of those components, e.g. MapReduce and computational graph systems (Spark). Similarly, we will study distributed storage systems, e.g. distributed file systems, distributed key-value stores and blockchains. 

Topics to be covered (tentative and subject to change):

  • Basic distributed abstractions
  • Reliable broadcast
  • Shared memory
  • Consensus
  • Blockchain
  • Distributed hash tables
  • Cloud computing
  • Distributed file systems

Learning outcomes of the learning unit

At the end of the course, the student will have understood the core building blocks of reliable distributed systems.

This course contributes to the learning outcomes I.1, I.2, II.1, II.2, III.1, III.2, III.3, IV.1, IV.3, VI.1, VI.2, VII.1, VII.2, VII.4, VII.5 of the MSc in computer science and engineering.

Prerequisite knowledge and skills

Programming experience. Basic knowledge in computer networks.

The course INFO9012-1 Parallel Programming is a prerequisite.

Planned learning activities and teaching methods

  • Theoretical lectures
  • Exercise sessions
  • Reading assignment
  • Programming project

Mode of delivery (face to face, distance learning, hybrid learning)

Lectures will taught face-to-face. Projects will be carried out remotely.

Recommended or required readings

Slides will be made publicly available on eCampus.

Written work / report

Continuous assessment


Additional information:

TBP

Work placement(s)

Organisational remarks and main changes to the course

TBP

Contacts

Professors:

  • Bernard Boigelot
  • Christophe Debruyne
  • Pascal Fontaine (coordinator, mail -- office 1.71a/B28)
  • Guy Leduc (mail -- office 1.73a/B28)
  • Laurent Mathy (mail -- office 1.15/B37)
Teaching assistant:

  • TBD

Association of one or more MOOCs