ENFORCING LOCK SERIALIZABILITY
Download
Report
Transcript ENFORCING LOCK SERIALIZABILITY
Concurrency Control
By Donavon Norwood
Ankit Patel
Aniket Mulye
1
INTRODUCTION
Enforcing serializability by locks
Locks
Locking scheduler
Two phase locking
Locking systems with several lock modes
Shared and exclusive locks
Compatibility matrices
Upgrading/updating locks
Incrementing locks
2
Locks
It works like as follows :
A request from transaction
Scheduler checks in the lock table
Generates a serializable schedule of actions.
3
Consistency of transactions
Actions and locks must relate each other
Transactions can only read & write only if has a
lock and has not released the lock.
Unlocking an element is compulsory.
Legality of schedules
No two transactions can aquire the lock on same
element without the prior one releasing it.
4
Locking scheduler
Grants lock requests only if it is in a legal
schedule.
Lock table stores the information about current
locks on the elements.
5
The locking scheduler (contd.)
A legal schedule of consistent transactions but
unfortunately it is not a serializable.
6
Locking schedule (contd.)
The locking scheduler delays requests that
would result in an illegal schedule.
7
Two-phase locking
Guarantees a legal schedule of consistent
transactions is conflict-serializable.
All lock requests proceed all unlock requests.
The growing phase:
Obtain all the locks and no unlocks allowed.
The shrinking phase:
Release all the locks and no locks allowed.
8
Working of Two-Phase locking
Assures serializability.
Two protocols for 2PL:
Strict two phase locking : Transaction holds all
its exclusive locks till commit / abort.
Rigorous two phase locking : Transaction holds
all locks till commit / abort.
Possible to find a transaction Tj that has a
2PL and a schedule S for Ti ( non 2PL ) and
Tj that is not conflict serializable.
9
Failure of 2PL.
2PL fails to provide security against
deadlocks.
10
Locking Systems with Several
Lock Modes
Locking Scheme
Shared/Read Lock ( For Reading)
Exclusive/Write Lock( For Writing)
Compatibility Matrices
Upgrading Locks
Update Locks
Increment Locks
11
Shared & Exclusive Locks
Consistency of Transactions
This basically works on 2 principles
Cannot write without Exclusive Lock
Cannot read without holding some lock
A read action can only proceed a shared or an
exclusive lock
A write lock can only proceed a exclusice lock
All locks need to be unlocked before commit
12
Shared and exclusive locks
(cont.)
Two-phase locking of transactions
Must precede unlocking
Legality of Schedules
An element may be locked exclusively by one
transaction or by several in shared mode, but not both.
13
Compatibility Matrices
Has a row and column for each lock mode.
Rows correspond to a lock held on an element by
another transaction
Columns correspond to mode of lock requested.
Example :
LOCK REQUESTED
S
X
LOCK
S
YES
NO
HOLD
X
NO
NO
14
Upgrading Locks
Suppose a transaction wants to read as well
as write :
It aquires a shared lock on the element
Performs the calculations on the element
And when its ready to write, It is granted a
exclusive lock.
Transactions with unpredicted read write
locks can use UPGRADING LOCKS.
15
Upgrading locks (cont.)
Indiscriminating use of upgrading produces a
deadlock.
Example : Both the transactions want to
upgrade on the same element
16
Update locks
Solves the deadlock occurring in upgrade
lock method.
A transaction in an update lock can read but
cant write.
Update lock can later be converted to
exclusive lock.
An update lock can only be given if the
element has shared locks.
17
Update locks (cont.)
An update lock is like a shared lock when you
are requesting it and is like a exclusive lock
when you having it.
Compatibility matrix :
S
X
U
S
YES
NO
YES
X
NO
NO
NO
U
NO
NO
NO
18
Increment Locks
Used for incrementing & decrementing stored
values.
E.g. - Transfer money from one bank to
another, Ticket selling transactions in which
number seats are decremented after each
transaction.
19
Increment lock (cont.)
A increment lock does not enable read or write locks on
element.
Any number of transaction can hold increment lock on
element
Shared and exclusive locks can not be granted if an
increment lock is granted on element
S
X
I
S
YES
NO
NO
X
NO
NO
NO
I
NO
NO
YES
20
Refrences
Database systems : The complete book
Hector Garcia, Jeffrey Ullman, Jennifer Widom
Topics 18.3 , 18.4
21
ANY QUESTIONS ?
22
THANK YOU
23