Assignment 5

Due Wednesday, November 2, 2016 6:55pm via sakai

Introduction

Please answer the questions precisely and concisely. Every question can be answered in one or at most a few sentences. I will not have the patience to read long paragraphs or essays and you may lose credit for possibly correct answers.

Your assignment is to read about the RAFT consensus protocol. This was created at Stanford University as an alternative to Paxos, with the primary goal of creating a protocol that is easier to understand than Paxos.

Reading

RAFT
Diego Ongaro and John Ousterhout In Search of an Understandable Consensus Algorithm, Stanford University, 2014
Read at least pages 1-9 if you don’t feel like reading the entire 16 page document.
Raft interactive tutorial at The Secret Lives of Data.
Allocate at least five minutes for this.

Watching

Dropbox
Kevin Modzelewski, How We've Scaled Dropbox, Computer Science Colloquium, Stanford Center for Professional Development.
Watch at least the first 30 minutes.

Questions

  1. Raft uses a single leader (one server is elected as a leader). Explain how Raft performs leader election.
  2. An elected leader takes client requests. Each request is essentially a log entry that will be replicated among the servers. When is a log entry committed in Raft?
  3. As Dropbox's design evolved, why did Dropbox split the original web server into two web servers? [What was the function of each server?]
  4. Why were notification servers added?
  5. Why was RPC-based communicaction added to the blockservers instead of having them talk to the database?