Read 6.033 book Chapter 9 , just 9.1.5, 9.1.6, 9.5.2, 9.5.3, 9.6.3
- How does this material fit into 6.824?
- Why is it so important for transactions to be atomic?
- Could one use Raft instead of two-phase commit?
- In two-phase commit, why would a worker send an abort message, rather than a PREPARED message?
- Can two-phase locking generate deadlock?
- Why does it matter whether locks are held until after a transaction commits or aborts?
- What is the point of the two-phase locking rule that says a transaction isn't allowed to acquire any locks after the first time that it releases a lock?
- Does two-phase commit solve the dilemma of the two generals described in the reading's Section 9.6.4?
- Are the locks exclusive, or can they allow multiple readers to have simultaneous access?
- How should one decide between pessimistic and optimistic concurrency control?
- What should two-phase commit workers do if the transaction coordinator crashes?
- Why don't people use three-phase commit, which allows workers to commit or abort even if the coordinator crashes?
6.033 Book. Read just these parts of Chapter 9: 9.1.5, 9.1.6, 9.5.2, 9.5.3, 9.6.3. The last two sections (on two-phase locking and distributed two-phase commit) are the most important. The Question: describe a situation where Two-Phase Locking yields higher performance than Simple Locking.