Locking Protocol
Locking Protocol
1.Shared Lock (S): Shared Lock is also known as Read-only lock. As the name
suggests it can be shared between transactions because while holding this lock
the transaction does not have the permission to update data on the data item. S-
lock is requested using lock-S instruction.
2.Exclusive Lock (X): Data item can be both read as well as written.This is
Exclusive and cannot be held simultaneously on the same data item. X-lock is
requested using lock-X instruction.
It is the simplest method for locking data during a transaction. Simple lock-based protocols enable all
transactions to obtain a lock on the data before inserting, deleting, or updating it. It will unlock the data item
once the transaction is completed.
• Pre-claiming Lock Protocols evaluate the transaction to list all the data items on which they need locks.
• Before initiating an execution of the transaction, it requests DBMS for all the lock on all those data items.
• If all the locks are granted then this protocol allows the transaction to begin. When the
transaction is completed then it releases all the lock.
• If all the locks are not granted then this protocol allows the transaction to rolls back and waits
until all the locks are granted
3. Two-phase locking (2PL)
•The two-phase locking protocol divides the execution phase of the transaction into
three parts.
•In the first part, when the execution of the transaction starts, it seeks permission for
the lock it requires.
•In the second part, the transaction acquires all the locks. The third phase is started as
soon as the transaction releases its first lock.
•In the third phase, the transaction cannot demand any new locks. It only releases the
acquired locks.
A transaction is said to follow the Two-Phase Locking protocol if Locking and Unlocking
can be done in two phases.
•Growing Phase: New locks on data items may be acquired but none can be released.
•Shrinking Phase: Existing locks may be released but no new locks can be acquired.
Note: If lock conversion is allowed, then upgrading of lock( from S(a) to X(a) ) is
allowed in the Growing Phase, and downgrading of lock (from X(a) to S(a)) must be
done in the shrinking phase.
Lock Point
The Point at which the growing phase ends, i.e., when a transaction takes the final
lock it needs to carry on its work.
Transaction T1:
Transaction T2:
The first phase of Strict-2PL is similar to 2PL. In the first phase, after acquiring all the locks, the
transaction continues to execute normally.
The only difference between 2PL and strict 2PL is that Strict-2PL does not release a lock after
using it.
Strict-2PL waits until the whole transaction to commit, and then it releases all the locks at a
time.
Strict-2PL protocol does not have shrinking phase of lock release.
• The Timestamp Ordering Protocol is used to order the transactions based on their
Timestamps. The order of transaction is nothing but the ascending order of the transaction
creation.
• The priority of the older transaction is higher that's why it executes first. To determine the
timestamp of the transaction, this protocol uses system time or logical counter.
• The lock-based protocol is used to manage the order between conflicting pairs among
transactions at the execution time. But Timestamp based protocols start working as soon as
a transaction is created.
• Let's assume there are two transactions T1 and T2. Suppose the transaction T1 has entered
the system at 007 times and transaction T2 has entered the system at 009 times. T1 has the
higher priority, so it executes first as it is entered the system first.
• The timestamp ordering protocol also maintains the timestamp of last 'read' and 'write'
operation on a data.
1. Check the following condition whenever a transaction Ti issues a Read
(X) operation:
Where: