6.033 | Spring 2018 | Undergraduate
Computer System Engineering
Week 11: Security Part I

Raft Assignment

For this recitation, you’ll be reading “In Search of an Understandable Consensus Algorithm (PDF)” by Diego Ongaro and John Ousterhout. This paper describes Raft, an algorithm for achieving distributed consensus. The paper contrasts Raft to an algorithm called Paxos: You do not need to know anything about Paxos to read this paper. Raft was designed to be more understandable than Paxos.

Before reading the paper, check out two very helpful websites, which have some useful visualizations:

With those visualizations in mind, read the paper. Skip sections 5.4.3 and 7, and skim sections 9.1 and 9.2.

  • The first four sections give background and motivation for Raft. Sections five and six are the primary technical sections.
  • Fig. 2 is a good reference to come back to after you’ve read the paper. Don’t get stuck trying to memorize the entire table before you move onto page 5 of the paper; skip it, come back to it during your reading or at the end.

To check your understanding after reading:

  • How does Raft handle the following three types of failures?: Leader failures, candidate or follower failures, and network partitions (a network partition means that one part of the cluster is unable to communicate with any machine in the other part).
  • Take a look at figure 7. For each log, (a)-(f), what sequence of events might have led to that log?

Questions for Recitation

Before you come to this recitation, write up (on paper) a brief answer to the following (really—we don’t need more than a couple sentences for each question). 

Your answers to these questions should be in your own words, not direct quotations from the paper.

  • In Raft, what is the leader’s function?
  • How does the leader work?
  • Why does Raft need a leader?

As always, there are multiple correct answers for each of these questions.

Course Info
Instructor
As Taught In
Spring 2018
Learning Resource Types
notes Lecture Notes
assignment Written Assignments
group_work Projects with Examples
co_present Instructor Insights