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).

· 1 min read · 156 words

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

← All notes