Concurrency control
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)
- Strict two-phase locking
- Non-strict two-phase locking
- Conservative two-phase locking
- Index locking
- Multiple granularity locking
There are also Non-lock concurrency control methods.
