Concurrency Control

23
1 Concurrency Control By Donavon Norwood Ankit Patel Aniket Mulye

description

Concurrency Control. By Donavon Norwood Ankit Patel Aniket Mulye. 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 - PowerPoint PPT Presentation

Transcript of Concurrency Control

Page 1: Concurrency Control

1

Concurrency Control

By Donavon Norwood

Ankit Patel

Aniket Mulye

Page 2: Concurrency Control

2

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

Page 3: Concurrency Control

3

Locks

It works like as follows : A request from transaction Scheduler checks in the lock table Generates a serializable schedule of actions.

Page 4: Concurrency Control

4

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.

Page 5: Concurrency Control

5

Locking scheduler

Grants lock requests only if it is in a legal schedule.

Lock table stores the information about current locks on the elements.

Page 6: Concurrency Control

6

The locking scheduler (contd.)

A legal schedule of consistent transactions but unfortunately it is not a serializable.

Page 7: Concurrency Control

7

Locking schedule (contd.)

The locking scheduler delays requests that would result in an illegal schedule.

Page 8: Concurrency Control

8

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.

Page 9: Concurrency Control

9

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.

Page 10: Concurrency Control

10

Failure of 2PL.

2PL fails to provide security against deadlocks.

Page 11: Concurrency Control

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

Page 12: Concurrency Control

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

12

Page 13: Concurrency Control

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

Page 14: Concurrency Control

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 :

14

LOCK REQUESTED

S X

LOCK S YES NO

HOLD X NO NO

Page 15: Concurrency Control

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

Page 16: Concurrency Control

Upgrading locks (cont.)

Indiscriminating use of upgrading produces a deadlock.

Example : Both the transactions want to upgrade on the same element

16

Page 17: Concurrency Control

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

Page 18: Concurrency Control

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 :

18

S X U

S YES NO YES

X NO NO NO

U NO NO NO

Page 19: Concurrency Control

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

Page 20: Concurrency Control

Increment lock (cont.)

20

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

Page 21: Concurrency Control

Refrences

Database systems : The complete book Hector Garcia, Jeffrey Ullman, Jennifer Widom Topics 18.3 , 18.4

21

Page 22: Concurrency Control

ANY QUESTIONS ?

22

Page 23: Concurrency Control

THANK YOU

23