Database Concurrency Control
What is Concurrency control?
- Concurrency control manages the transactions simultaneously without letting them interfere with each another.
- The main objective of concurrency control is to allow many users perform different operations at the same time.
- Using more than one transaction concurrently improves the performance of system.
- If we are not able to perform the operations concurrently, then there can be serious problems such as loss of data integrity and consistency.
- Concurrency control increases the throughput because of handling multiple transactions simultaneously.
- It reduces waiting time of transaction.
Example:
Consider two transactions T1 and T2.
T1 : Deposits Rs. 1000 to both accounts X and Y.
T2 : Doubles the balance of accounts X and Y.
T1
Read (X)
X ← X + 1000
Write (X)
Read (Y)
Y ← Y + 1000
Write (Y)
T2
Read (X)
X ← X * 2
Write (X)
Read (Y)
Y ← Y * 2
Write (Y)
The above two transactions can be executed concurrently as below
Schedule C1
The above concurrent schedule executes in the following manner:
Step 1: Part of transaction (T1) is executed, which updates X to Rs. 2000.
Step 2: The processor switches to transaction (T2). T2 is executed and updates X to Rs. 4000. Then the processor switches to transaction (T1) and remaining part of T2 which updates Y to Rs. 2000 is executed.
Step 3: At the end of remaining part of T2 which reads Y as Rs. 2000, updates it to Rs. 4000 by multiplying value of Y.
This concurrent schedule maintains the consistency of database as,
X + Y = 2000 + 2000 = 4000, remains unchanged.
Therefore, the above schedule can be converted to equivalent serial schedule and hence it is a consistent schedule.