Large Scale Distributed Systems
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Architecture, Operating Systems and Networks |
Instance: 2022/2023 - 1S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
M.EIC |
142 |
Syllabus |
1 |
- |
6 |
52 |
162 |
Teaching language
Suitable for English-speaking students
Objectives
This course unit has two main objectives:
- give students theoretical knowledge on distributed systems so they can make correct decisions when faced with the need to design/develop/administer large-scale systems;
- provide students with practical experience so they can develop applications using techniques and mechanisms appropriate for large-scale systems.
Learning outcomes and competences
Upon conclusion of this course, the students should be able to:
- explain the importance of distribution and of the coordination models in the scalability of applications and services
- identify the main challenges of distribution and model them in abstract terms
- assess the different techniques and algorithms used to ensure scalability and availability
- assess the different techniques and algorithms used to ensure fault-tolerance at large scale
- design a large-scale application/service, given its specification
- implement, integrate, and run large-scale services and applications, using selected technologies.
- have skills for identifying the state-of-the-art
Working method
Presencial
Pre-requirements (prior knowledge) and co-requirements (common knowledge)
Students are expected to have passed courses on Operating Sytems, Computer Networks and Distributed Systems.
Program
Scalable Distributed Topologies
System Design for Large Scale
Implementation techniques for scalability
Events, Physical Time, and Logical Time
Data Consistency Models
Byzantine Fault-tolerance and blockchain
Mandatory literature
M. van Steen and A. S. Tanenbaum;
Distributed systems, 3rd Ed., 2017 (https://www.distributed-systems.net/index.php/books/ds3/)
Complementary Bibliography
G. Coulouris, J. Dollimore, T. Kindberg and G. Blair;
Distributed Systems: Concepts and Design, 5th Ed., Pearson, 2012. ISBN: 978-0132143011
Duncan J. Watts;
Small Worlds, Princeton University Press, 1999
Alex Petrov; Database Internals, O'Reilly, 2019
Pieter Hintjens; ZeroMQ, O'Reilly, 2013 (https://zguide.zeromq.org/)
Teaching methods and learning activities
All topics are covered in the lectures, which are mostly expository. To motivate the students, we use case studies, real-world examples and demos, as appropriate.
To enhance the understanding of the concepts and algorithms presented in the lectures, the students will perform a project as well as smaller assignments.
Software
Git
Rust
JDK
Go
NetworkX
gcc
Python
Zero-MQ
keywords
Technological sciences > Technology > Computer technology > Software technology
Evaluation Type
Distributed evaluation with final exam
Assessment Components
Designation |
Weight (%) |
Exame |
45,00 |
Trabalho prático ou de projeto |
45,00 |
Participação presencial |
10,00 |
Total: |
100,00 |
Amount of time allocated to each course unit
Designation |
Time (hours) |
Estudo autónomo |
50,00 |
Frequência das aulas |
52,00 |
Trabalho laboratorial |
60,00 |
Total: |
162,00 |
Eligibility for exams
In order to be able to take the final exam students must:
1) Attend at least 75% of the scheduled lab classes;
2) Have a minimum grade of 10 (out of 20) in the average of the assignments;
3) Demonstrate/present the assignments
4) Fill the peer evaluation forms of all the assignments;
Calculation formula of final grade
min( 0.45 Proj + 0.45 Ex + 0.1 CP, Proj + 3, Ex. + 3)
where:
Proj -- average of the assignments' grades
Ex -- final exam grade
CP -- class participation
For passing, students must have a minimum grade of 10 (out of 20) in both the average of the assignments and the final exam.
Examinations or Special Assignments
There are none.
Special assessment (TE, DA, ...)
The same as for ordinary students.
In the special exam students cannot improve their assignments' grades.
Classification improvement
The final exam grade can be improved in the scheduled exams.
The assignments' grades can be improved only in other instances of the course unit.
Observations
Content is in English. The course will be taught in English.