Lecture 8

The topic of this lecture is transactions. Transactions are a crucial concept in many distributed systems, most notably, in databases. The goal is to ensure that data remains in a consistent state, even if accessed by several processes simultaneously and in spite of server crashes. A client specifies a set of operations on the data as a transaction. The server(s) must guarantee that either the entire transaction succeeded or failed -- partial application of the operations may leave the data in an inconsistent state. We study the techniques required to achieve this effect in the simplest case (only a single server) during this lecture. During the next lecture, we study the distributed case (several servers) and its added complexity.

The outline for the lecture is as follows:

No lecture notes this time!

Reading

Intensive reading: 13.1 - 13.7

Extensive reading: 13.1.1

Exercises

Primary set: 13.2 - 13.4, 13.7, 13.8 - 13.14, 13.16, 13.18

Secondary set: 13.5, 13.6, 13.17