Skip to main content

You are here: Teaching, Distributed Systems, Week 8

This week's topic is Multi-Process Coordination and Elections.


Internal Page Navigation Links


Learning Outcomes

Upon completion of this week's class and tasks, you should be able to do the following:

  1. Upon completion of this class, you should be able to:
  2. Demonstrate an ability to think about the execution of distributed systems by exploring the notions of physical and logical time and global states.
  3. Demonstrate an appreciation of the utility of synchronized clocks in distributed systems, and of the variability in network delays that stands in the way of accurate synchronisation.
  4. Discuss the key features of Cristian's synchronisation algorithm, the Berkeley algorithm and the Network Time Protocol.
  5. Demonstrate an understanding of the utility of logical clocks (Lamport and vector), the rules for updating them and their limitations.
  6. Demonstrate a deep understanding of the goals and the problems of coordination and agreement in distributed systems.
  7. Describe and employ algorithmic techniques for addressing these problems.
  8. Demonstrate an understanding of the theoretical and practical limits to solving coordination problems - in particular, the limits due to the possibility of failure.
  9. Describe and employ algorithms for distributed mutual exclusion.
  10. Describe and employ election algorithms.

Return to the internal page navigation links


Notes and Handouts

Return to the internal page navigation links


Tasks

Task NumberDetails
1

Provide a design for the following system:

A set of processes p1..N are required to reach agreement on which process should play the role of coordinator. The coordinator should be a process with a low load, but not necessarily the lowest load. In the event of two processes wanting to become coordinator, the process that sought permission first should win.

Return to the internal page navigation links


Further Reading

Return to the internal page navigation links