DISTRIBUTED SYSTEMS

Degree course: 
Corso di Second cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
2018/2019
Year: 
1
Academic year in which the course will be held: 
2018/2019
Course type: 
Supplementary compulsory subjects
Language: 
English
Credits: 
6
Period: 
Second semester
Standard lectures hours: 
48
Detail of lecture’s hours: 
Lesson (48 hours)
Requirements: 

The student knows about the topics presented in an introductory course of Relational Databases. Therefore, the student knows the relational data model, the relational algebra, the SQL query language, the conceptual and logical design of a relational database. In addition, the student also has knowledge of the topics presented in an advanced course of Relational Database, such as the model of object-oriented data, the models of semi-structured data and the related query languages. Finally, the student has knowledge of the analysis of the complexity of the algorithms in the centralized and sequential case.
An understanding of english is required as part of the teaching material consists of extracts from scientific publications written in that language.

Final Examination: 
Orale

The verification method consists of a written test.
The purpose of this test is to verify the learning and understanding of the theoretical models underlying the distributed systems. A written test consists of:

theory-oriented questions, whose purpose is to verify the communication skills developed by the student, in particular the acquisition of the technical terminology necessary for the comprehension and communication of the methodologies and models related to the distributed systems.
The questions are in number of 2/3.
The vote of the written test is expressed in thirtieths. The test is passed if the grade is greater than or equal to 18/30.

Assessment: 
Voto Finale

The student will acquire knowledge on advanced aspects of distributed systems (in particular, distributed and / or replicated relational databases). It will also acquire knowledge to manage large collections of data using the different architectural models that will be presented during the course.
Therefore, the student will develop the ability to identify problems related to data management and to solve it in a professional manner.
Moreover, the student will be able to judge the adequacy of a distributed and replicated database, according to the needs of the application context.

- introduction to distributed systems (2 hours)
- architectural models: shared memory, exchange of messages, types of errors, synchronous and asynchronous models (4 hours)
time and randomness: Lamport logic clocks, vector timestamps, distributed snapshot calculation, synchronization with physical clocks (4 hours)
- agreement and consensus: agreement in a system without errors, agreement in a synchronous system with crash type errors, failure detectors, consensus in an asynchronous system with errors, uniform consent with failure detector (12 hours)
- distributed transactions: recalls to centralized management of transactions, two-phase centralized locking protocol, reliability of distributed transactions, atomic commitment and two-phase commit protocol, 2PC protocol evaluation (12 hours)
- reliable communication in groups: reliable multicast, Byzantine multicast, ordered multicast, multicast and consent (4 hours)
- replication: consistency models for replicated data, sequential data types, strong and weak consistency, 1-copy acid properties, replication protocols (12 hours)

Handouts and slides provided by the teacher, available on the University e-learning site.

Convenzionale

Lectures in the presence of the teacher.

meeting on request