Preparation for Recitation on Consistency
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. If you have any questions, please post on Piazza!
As you read, think about the following:
- Think about 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?
- 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?
- As a system designer, what information would you need to try to decide on a particular consistency model? How would you make this decision? The intro to the paper indicates that different cloud storage providers have made different decisions -- why? Are they targeting different customer bases, different applications, etc.?
Question for Recitation
Before you come to this recitation, you'll turn in a brief answer to the following questions (really—we don't need more than a sentence or so for each question). Your TA will be in touch about exactly how to turn that in.
Your answers to these questions should be in your own words, not direct quotations from the paper.
- What is a consistency guarantee? What aspects of a system does it affect?
- How does a system designer choose an appropriate consistency guarantee?
- Why does the choice of consistency guarantee matter?