Distributed Transactions and Concurrency Control
Stub. Classifying and implementing transactions; concurrency control and serializability (two-phase locking, timestamp ordering); atomic commit protocols (one-phase, two-phase, non-blocking); and recovery from failures (stable storage, checkpointing/rollback, message logging).
Extends the database notion of a transaction (all-or-nothing, isolated) to a distributed setting, where a transaction may touch data at several sites. Concurrency control ensures interleaved transactions still produce a serializable (equivalent to some serial) execution, via locking (two-phase locking) or via ordering by assigned timestamps. Atomic commit protocols (two-phase commit, and non-blocking variants that avoid 2PC’s single point of blocking on coordinator failure) ensure all participating sites agree on commit or abort. Recovery techniques — stable storage, periodic checkpointing with rollback, and message logging — let a site resume correctly after a crash.
Outline (TODO — flesh out each)
- Classification of transactions; implementing transactions
- Concurrency control and serializability — testing for serializability
- Two-phase locking
- Timestamp ordering
- Atomic commit protocols — one-phase, two-phase, non-blocking commit
- Recovery from failures — stable storage, checkpointing and rollback recovery, message logging