Postgraduate Course: Distributed Systems (Level 11) (INFR11022)
Course Outline
School | School of Informatics |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Year 4 Undergraduate) |
Availability | Available to all students |
SCQF Credits | 10 |
ECTS Credits | 5 |
Summary | A distributed system is broadly categorised as a collection or network of loosely coupled, autonomous computers that can communicate with each other and execute logically separate computations, though these may be related to concurrent computations on other nodes.
* The nodes are relatively loosely coupled.
* Each node is a self-contained autonomous computer with its own peripherals.
* The system can survive various categories of node and network failures.
* The nodes may execute logically separate computations, though these may be related to concurrent computations on other nodes.
* The system may be modeled as synchronous or asynchronous.
Distributed systems have become pervasive-many applications now require the cooperation of two or more computers-yet the design and implementation of such systems remain challenging and complex tasks. Difficulties arise from the concurrency of components, the lack of a global clock and the possibility of independent failure of components. Moreover designs must aim to provide inter-operability, transparency and autonomy.
The emphasis of this module is on gaining understanding of the principles and concepts that are used to design distributed systems and how network and communication facilities can be leveraged to achieve efficient distributed computing. |
Course description |
1. Introduction and overview - Need for distributed systems (Failures, consistency, delay, etc.)
2. Architecture & Communication - Scalability, Load balancing, Partitioning, RPC
3. Fault Tolerance - Failure models, Reliability, Recovery
4. Coordination - Ordering & Causality, Distributed transactions, Concurrency Control, Consensus/Agreement
5. Consistency & Replication - Epidemic algorithms, Consistency Models, Replica management
6. Distributed Storage - File systems, Large Scale systems
7. Issues - Energy/Power, Security, Local OS Support, Verification, Testing
|
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser (lecturer).
Some prior programming ability is assumed. |
Information for Visiting Students
Pre-requisites | Visiting students are required to have comparable background to that assumed by the course prerequisites listed in the Degree Regulations & Programmes of Study.
If in doubt, consult the course organiser (lecturer). |
High Demand Course? |
Yes |
Course Delivery Information
|
Academic year 2024/25, Available to all students (SV1)
|
Quota: None |
Course Start |
Semester 1 |
Timetable |
Timetable |
Learning and Teaching activities (Further Info) |
Total Hours:
100
(
Lecture Hours 20,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
78 )
|
Assessment (Further Info) |
Written Exam
75 %,
Coursework
25 %,
Practical Exam
0 %
|
Additional Information (Assessment) |
You should expect to spend approximately 40 hours on the coursework for this course.
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year. |
Feedback |
Not entered |
Exam Information |
Exam Diet |
Paper Name |
Minutes |
|
Main Exam Diet S1 (December) | Distributed Systems (Level 11) (INFR11022) | 120 | |
Learning Outcomes
On completion of this course, the student will be able to:
- Develop an understanding of the principles of distributed system and be able to demonstrate this by explaining them
- Being able to give an account of the trade-offs which must be made when designing a distributed system, and make such trade-offs in their own designs
- Develop practical skills of implementation of distributed algorithms in software so that they will be able to take an algorithm description and realise it in software
- Being able to give an account of the models used to design distributed systems and to manipulate those models to reason about such systems
- Being able to design efficient algorithms for distributed computing tasks
|
Reading List
Main Books:
1. Distributed Systems 4th edition (2023) by Maarten Van Steen and Andrew S. Tanenbaum - Personalized copy available with registration (https://www.distributed-systems.net/index.php/books/ds4/).
Chapter 1, 2, 4, 5, 6, 7, 8, 9
2. George Coulouris, Jean Dollimore and Tim Kindberg, Distributed Systems: Concepts and Design, 5th edition, Addison-Wesley, 2013.
Online version available from the Library. Chapter 12, 16, 17
3. Other relevant material in the form of research papers will be shared with the students.
Reference books:
1. Principles of Distributed Computing - Online (Free https://disco.ethz.ch/courses/podc_allstars/) ETH Zurich
2. Designing Distributed Systems by Brendan Burns (Free online version available on Microsoft website). |
Contacts
Course organiser | Mr Yuvraj Patel
Tel: (0131 6)50 4425
Email: |
Course secretary | Miss Yesica Marco Azorin
Tel: (0131 6)50 5194
Email: |
|
|