Lecture 13. Distribution: transactions
Readings:
- C. Mohan, B. Lindsay, and R. Obermarck. Transaction Management in the R* Distributed Database Management System. ACM Transactions On Database Systems 11 (4), 1986. Also in the Red Book (3rd and 4th ed). [pdf]
As you read this paper, consider the following questions:
- Why is a complex two-phase commit protocol needed when commiting a distributed transaction?
- In the two-phase commit protocol, why do subordinates need to force-write a prepared log record before sending a YES VOTE? To answer this question, use an example failure scenario. Discuss what happens if a subordinate does NOT force-write the prepared log record, then discuss what happens if the subordinate does force-write the prepared log record.
- Two-phase commit is a blocking protocol. When is it possible for nodes to be blocked?
Lecture notes:
Additional resources:
- Chapter 22 (in R&G, third edition).