In terms of scheduling, this is the paper we would've read after Lecture 19. In an ideal world, you would watch Lectures 18 and 19 before reading this paper.

Read the Replicated Data Consistency Explained Through Baseball paper.

This paper is relatively light on technical details, but should give you an understanding of different consistency guarantees, and how a system chooses which guarantee to use. Section 2 explains some different guarantees, and Sections 3 and 4 walk through some examples that illustrate places where each guarantee might be used.

Pay close attention to Table 2, which rates each type of guarantee in terms of consistency, performance, and availability. Though the paper doesn't give the technical details that lead to these ratings, you should be able to reason about them based on what you've seen in lecture.

After you've finished the paper, you should understand each of the different types of consistency guarantees, and how they differ. For instance, in the case of the radio reporter, you should understand why both consistent prefix and monotonic reads are necessary.

Reflection Questions

Below are three questions for you to reflect on as you read the paper. You will post your reflection, or respond to another student's reflection, on your Teaching Team Piazzas. You do not need to email responses to these questions to your TA. As a reminder:

Now, for the questions themselves. There are many possibile answers for each. We're expecting you to thoughtfully consider these questions, not come up with the single "best" answer. Your answers to these questions should be in your own words, not direct quotations from the paper.

  1. Pick one of the weaker consistency models (i.e., not strong consistency) described in the paper. What systems/applications might benefit from using this model instead of strong consistency? What benefit would they see, and why?
  2. Consider GFS in light of this paper. How does GFS’ consistency model relate to the ones described in the paper? Give specific examples from the GFS paper.
  3. Consider this quote from the paper: “The six consistency guarantees that I [the author] advocate in this section can be described in a simple, implementation-independent way”. Should one’s ability to easily describe a guarantee be a design goal when creating types of guarantees? Is “understandability”, or “explainability”, a worthy design goal?