In computer science -- more specifically, in the field of databases -- concurrency control is a method used to ensure that database transactions are executed in a safe manner (i.e., without data loss). Concurrency control is especially applicable to relational databases and database management systems, which must ensure that transactions are executed safely and that they follow the ACID rules. The DBMS must be able to ensure that only serializable, recoverable schedules are allowed, and that no actions of committed transactions are lost while undoing aborted transactions.

Transaction ACID Rules

  • Atomicity - either all or no operations are completed. (UNDO)
  • Consistency - all transactions must leave the database in consistent state
  • Isolation - transactions cannot interfere with each other
  • Durability - successful transactions must persist through crashes (REDO)

There are several methods for concurrency control, the majority of which uses Strict 2PL locking:

Locks are bookkeeping objects associated with a database object.

There are also Non-lock concurrency control methods.

See also