Concurrency Control By Donavon Norwood Ankit Patel Aniket Mulye 1.
-
date post
20-Dec-2015 -
Category
Documents
-
view
228 -
download
2
Transcript of 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
The locking scheduler
• A legal schedule of consistent transactions but unfortunately it is not a serializable.
5
Locking schedule (contd.)
6
• Grants lock requests only if it is in a legal schedule.• Lock table stores the information about current locks
on the elements.• The locking scheduler delays requests that would
result in an illegal schedule.
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.
7
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.
8
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
10
Shared & Exclusive Locks
• Consistency of Transactions– Cannot write without Exclusive Lock– Cannot read without holding some lock
• This basically works on 2 principles– 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
11
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.
12
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 :
13
LOCK REQUESTED
S X
LOCK S YES NO
HOLD X NO NO
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.
14
Upgrading locks (cont.)
• Indiscriminating use of upgrading produces a deadlock.
• Example : Both the transactions want to upgrade on the same element
15
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.
16
Update locks (cont.)
• An update lock is like a shared lock when you are requesting it and is like a exclusive lock when you have it.
• Compatibility matrix :
17
S X U
S YES NO YES
X NO NO NO
U NO NO NO
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.
18