Two Phase Locking (2PL) Protocol
- 2-PL is an extension of Shared/Exclusive locking.
- It is used to reduce the problems of Shared/Exclusive locking
- Any schedule that follows 2PL will always be serializable, which was not in Shared/Exclusive locking
Phases of 2PL
There are two basic phases of two-phase locking, which are explained below
I. Growing Phase: In the Growing phase, only Locks are acquired by a transaction and no locks are released by a transaction at that time.
II. Shrinking Phase: In the shrinking phase, only Locks are released by transaction, and no locks are acquired by a transaction at that time.
Important in 2PL is Lock Point
Lock Point: The Point at which the growing phase ends (i.e., when the transaction takes the final lock) is called Lock Point.
Example: The following diagrams show growing and shrinking phases in 2-PL.
Transaction T1
- Growing Phase: From Time 1 to 3.
- Shrinking Phase: From Time 5 to 7
- Lock Point: At time 3
Transaction T2
- Growing Phase: From Time 2 to 6
- Shrinking Phase: From Time 8 to 9
- Lock Point: At Time 6
2PL Transaction Execution Sequence
As we say, 2PL will generate the serial schedule, then what will be the sequence of transaction execution?
Answer: If the locking point of Transaction T1 comes earlier than Transaction T2, then the T1 will execute first than T2. As given below in the diagram
Important: Keep in mind when multiple transactions need to acquire the shared or exclusive lock, then it must follow the lock compatibility table.
In the following schedule, T1 holds the shared lock on “A,” and T2 also requires an exclusive lock on “A”. This case is not possible according to the lock compatibility table. So, T2 will be blocked(waiting state) until T1 releases the exclusive lock on “A”.
Advantages of 2-PL
2PL always ensures the Serializability. It means the schedule in 2PL must be serial. No loop exists in the transaction execution sequence graph.
Disadvantages of 2-PL
1. Produced schedule through 2PL locking may be irrecoverable
2. Produced schedule through 2PL locking may contain a deadlock problem
3. Produced schedule through 2PL locking may contain a Starvation Problem
4. Cascading Rollback Problem
If the rollback of one transaction causes the rollback of other dependent transactions, it is called cascading rollback.
As 2PL removes the irrecoverability problem, cascading, deadlock, and starvation problems are still there. To remove such problems, we use different types of 2PL.
We will see types of 2PL in the next lecture.