Before Recitation
Read "Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores”; skip Sections 4.2, 4.3, 5.6, and 7. This is paper written by MIT authors in 2014, and published in VLDB (one of the top two conferences in the databases field). The title of the paper is based on a famous quote:
"Battle not with monsters, lest ye become a monster, and if you gaze into the abyss, the abyss gazes also into you.” – Friedrich Nietzsche, Beyond Good and Evil
The paper describes the author’s efforts to evaluate different concurrency control protocols on a (simulated) 1000 core machine. The historical context here is that in the mid 2000’s the number of cores on modern processes started increasing dramatically, to the point that some people predicted we would soon have 1000 core machines (see here for a discussion of the work that inspired these researchers). Due to several reasons – including, but not limited to the impracticability of scaling software systems to run on such machines, as described in this paper – this never came to pass.
This paper provides a good opportunity to review what transactions are, and why concurrency control is needed, and also describes several different methods for implementing the transactional abstraction (which will be discussed in the previous lecture on Isolation.)
As you read the paper, try to understand the following questions:
- What are the differences between the different concurrent control protocols in terms of their behavior on different workloads?
- Why does performance of these systems level off as you add more cores? What are the barriers to scalability?
- Do the authors have a particular agenda or perspective here?
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 are the differences between DL_DETECT, NO_WAIT, and WAIT_DIE implementations of two-phase locking?
- Compare the total throughput on the Y axis of Figure 8a, 9a, and 10a. How do they compare? Why are they so different?
- Why do you think the authors referenced the quote above in title of their paper?
During Recitation
We expect you to be engaged and participate in recitation, and there are many ways to do that! Check out our participation FAQ for more information.