Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Lec 9 Concurrency Control Techniques.

Slides:



Advertisements
Similar presentations
Concurrency Control Techniques
Advertisements

Database Systems (資料庫系統)
1 Concurrency Control Chapter Conflict Serializable Schedules  Two actions are in conflict if  they operate on the same DB item,  they belong.
Concurrency Control II
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Concurrency Control Chapter 17 Sections
IDA / ADIT Databasteknik Databaser och bioinformatik Transaction Fang Wei-Kleiner.
Lecture 11 Recoverability. 2 Serializability identifies schedules that maintain database consistency, assuming no transaction fails. Could also examine.
CS 728 Advanced Database Systems Chapter 21 Introduction to Protocols for Concurrency Control in Databases.
Quick Review of Apr 29 material
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide
©Silberschatz, Korth and Sudarshan16.1Database System Concepts 3 rd Edition Chapter 16: Concurrency Control Lock-Based Protocols Timestamp-Based Protocols.
Concurrency Control By Donavon Norwood Ankit Patel Aniket Mulye 1.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Transaction Processing: Concurrency and Serializability 10/4/05.
Transaction Management
ICS (072)Concurrency Control1 Transaction Processing and Concurrency Control Dr. Muhammad Shafique Chapter March 2008.
Chapter 18 Concurrency Control Techniques Copyright © 2004 Pearson Education, Inc.
ACS-4902 R. McFadyen 1 Chapter 18 Database Concurrency Control Locking 18.1 Shared/Exclusive (aka Read/Write) Locks Lock Operations Read_lock(X) Write_lock(X)
©Silberschatz, Korth and Sudarshan16.1Database System Concepts 3 rd Edition Chapter 16: Concurrency Control Lock-Based Protocols Timestamp-Based Protocols.
Concurrency Control John Ortiz.
Copyright © 2004 Pearson Education, Inc.. Chapter 18 Concurrency Control Techniques.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
© 1997 UW CSE 11/13/97N-1 Concurrency Control Chapter 18.1, 18.2, 18.5, 18.7.
Database Systems: Transaction Management
Data Concurrency Control And Data Recovery
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 10 Transaction Management.
The Concept of Transaction Processing A Transaction: logical unit of database processing that includes one or more access operations (read - retrieval,
IDA / ADIT Lecture 9: Transactions and concurrency control Jose M. Peña
Chapter 18 Concurrency Control Techniques Copyright © 2004 Pearson Education, Inc.
ICS (072)Concurrency Control Techniques1 Concurrency Control Techniques Chapter 18 Dr. Muhammad Shafique.
Concurrency Control Lectured by, Jesmin Akhter, Assistant professor, IIT, JU.
Chapter 11 Concurrency Control. Lock-Based Protocols  A lock is a mechanism to control concurrent access to a data item  Data items can be locked in.
Concurrency Control Techniques Chapter 18
1 Locks What do we want: –if one transaction is accessing a shared resource –another transaction cannot simultaneously access it. Locks: mechanism for.
Chapter 15 Concurrency Control Yonsei University 1 st Semester, 2015 Sanghyun Park.
1 Transactions Chapter Transactions A transaction is: a logical unit of work a sequence of steps to accomplish a single task Can have multiple.
Module Coordinator Tan Szu Tak School of Information and Communication Technology, Politeknik Brunei Semester
Chapter 18 Concurrency Control Techniques Copyright © 2004 Pearson Education, Inc.
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Chapter 5 Transaction Management.
Transactions and Concurrency Control Fall 2007 Himanshu Bajpai
1 Concurrency Control Lecture 22 Ramakrishnan - Chapter 19.
Concurrency Control Introduction Lock-Based Protocols
1 Database Systems ( 資料庫系統 ) December 27, 2004 Chapter 17 By Hao-hua Chu ( 朱浩華 )
1 Lecture 4: Transaction Serialization and Concurrency Control Advanced Databases CG096 Nick Rossiter [Emma-Jane Phillips-Tait]
9 1 Chapter 9_B Concurrency Control Database Systems: Design, Implementation, and Management, Rob and Coronel.
Concurrency Control The main reference of this presentation is the textbook and PPT from : Elmasri & Navathe, Fundamental of Database Systems, 4th edition,
Em Spatiotemporal Database Laboratory Pusan National University File Processing : Concurrency Control 2004, Spring Pusan National University Ki-Joune Li.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Database System Concepts, 6 th Ed. ©Silberschatz, Korth and Sudarshan See for conditions on re-usewww.db-book.com Chapter 15 : Concurrency.
1 Concurrency Control By Ankit Patel. 2 INTRODUCTION Enforcing serializability by locks Locks Locking scheduler Two phase locking Locking systems with.
Chap 21 – Concurrency Control. Database Concurrency Control 1 Purpose of Concurrency Control To enforce Isolation (through mutual exclusion) among conflicting.
DBMS Deadlock.
Copyright © 2016 Pearson Education, Inc. CHAPTER 12: DATA AND DATABASE ADMINISTRATION Modern Database Management 12 th Edition Jeff Hoffer, Ramesh Venkataraman,
Lec 10: Concurrency Control Techniques
Lecture 3 Concurrency control techniques
Concurrency Control Techniques
Transaction Management and Concurrency Control
Concurrency Control.
Part- A Transaction Management
Database Concurrency Control
4. Concurrency control techniques
By Donavon Norwood Ankit Patel 112 Aniket Mulye 111
Concurrency Control Techniques Module 9
Concurrency Control Techniques
Ch 22: Databases Concurrency Control
Chapter 15 : Concurrency Control
Concurrency Control Techniques
CONCURRENCY Concurrency is the tendency for different tasks to happen at the same time in a system ( mostly interacting with each other ) .   Parallel.
Database Systems (資料庫系統)
Database Systems (資料庫系統)
Presentation transcript:

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Lec 9 Concurrency Control Techniques

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Chapter Outline Databases Concurrency Control 1.Purpose of Concurrency Control 2.Two-Phase locking 3.Limitations of CCMs 4.Index Locking 5.Lock Compatibility Matrix 6.Lock Granularity

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Database Concurrency Control 1 Purpose of Concurrency Control To enforce Isolation (through mutual exclusion) among conflicting transactions. To preserve database consistency through consistency preserving execution of transactions. To resolve read-write and write-write conflicts. Example: In concurrent execution environment if T1 conflicts with T2 over a data item A, then the existing concurrency control decides if T1 or T2 should get the A and if the other transaction is rolled-back or waits.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Two-Phase Locking Techniques Locking is an operation which secures (a) permission to Read (b) permission to Write a data item for a transaction. Example: Lock (X). Data item X is locked in behalf of the requesting transaction. Unlocking is an operation which removes these permissions from the data item. Example: Unlock (X): Data item X is made available to all other transactions. There are three locking operations: Read_lock(X), write_lock(X), unlock(X)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Two-Phase Locking Techniques: Essential components Multiple-mode lock: (a) shared (read) (b) exclusive (write). Shared mode: shared lock (X) More than one transaction can apply share lock on X for reading its value but no write lock can be applied on X by any other transaction. Exclusive mode: Write lock (X) Only one write lock on X can exist at any time and no shared lock can be applied by any other transaction on X. Conflict matrix

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Two-Phase Locking Techniques: Essential components Lock Manager: Managing locks on data items. Lock table: Lock manager uses it to store the identify of transaction locking a data item, the data item, lock mode and pointer to the next data item locked. One simple way to implement a lock table is through linked list.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Two-Phase Locking Techniques: Essential components Database requires that all transactions should be well-formed. A transaction is well-formed if: It must lock the data item before it reads or writes to it. It must not lock an already locked data items and it must not try to unlock a free data item.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Database Concurrency Control Two-Phase Locking Techniques: Essential components The following code performs the read operation: B: if LOCK (X) = “unlocked” then begin LOCK (X)  “read-locked”; no_of_reads (X)  1; end else if LOCK (X)  “read-locked” then no_of_reads (X)  no_of_reads (X) +1 else begin wait (until LOCK (X) = “unlocked” and the lock manager wakes up the transaction); go to B end;

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Database Concurrency Control Two-Phase Locking Techniques: Essential components The following code performs the write lock operation: B: if LOCK (X) = “unlocked” then LOCK (X) )  “write-locked” else begin wait (until LOCK (X) = “unlocked” and the lock manager wakes up the transaction); go to B end;

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Database Concurrency Control Two-Phase Locking Techniques: Essential components The following code performs the unlock operation: if LOCK (X) = “write-locked” then begin LOCK (X)  “unlocked”; wakes up one of the transactions, if any end else if LOCK (X)  “read-locked” then begin no_of_reads (X)  no_of_reads (X) -1 if no_of_reads (X) = 0 then begin LOCK (X) = “unlocked”; wake up one of the transactions, if any end end;

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Conversion of locks Lock conversion Lock upgrade: existing read lock to write lock if Ti has a read-lock (X) and Tj has no read-lock (X) (i  j) then convert read-lock (X) to write-lock (X) else force Ti to wait until Tj unlocks X Lock downgrade: existing write lock to read lock Ti has a write-lock (X) (*no transaction can have any lock on X*) convert write-lock (X) to read-lock (X)

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Two-Phase Locking Techniques: A transaction is said to follow the Two-Phase locking protocol if all locking operations (read_lock,write_lock) precede the first unlock operation in the transaction. Two-Phase locking protocol: 1) Locking (Growing) Phase: A transaction applies locks (read or write) on desired data items one at a time. 2) Unlocking (Shrinking) Phase: A transaction unlocks its locked data items one at a time. Requirement: For a transaction these two phases must be mutually exclusively, that is, during locking phase unlocking phase must not start and during unlocking phase locking phase must not begin.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Two phase locking Locks of Ti time growing shrinking Each transaction has to follow, no locking anymore after the first unlocking

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Transactions that do not obey two-phase locking T1T2 Result read_lock (Y);read_lock (X); Initial values: X=20; Y=30 read_item (Y);read_item (X); Result of serial execution unlock (Y);unlock (X); T1 followed by T2 write_lock (X);Write_lock (Y); X=50, Y=80. read_item (X);read_item (Y); Result of serial execution X:=X+Y;Y:=X+Y; T2 followed by T1 write_item (X);write_item (Y); X=70, Y=50 unlock (X);unlock (Y);

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Cont. Two-Phase Locking Techniques: The algorithm T1T2 Result read_lock (Y); X=50; Y=50 read_item (Y); Nonserializable because it. unlock (Y); violated two-phase policy. read_lock (X); read_item (X); unlock (X); write_lock (Y); read_item (Y); Y:=X+Y; write_item (Y); unlock (Y); write_lock (X); read_item (X); X:=X+Y; write_item (X); unlock (X); Time

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Cont. Transactions T1 and T2 of the previous figure do not follow the two-phase locking protocol because the write_lock(X) operation follows the unlock(Y) operation in T1, and similarly the write_lock(Y) operation follows the unlock(X) operation in T2. If we enforce two-phase locking, the transactions can be rewritten as T’1 and T’2 in next slide Slide

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Cont. T’1T’2 read_lock (Y);read_lock (X);T1 and T2 follow two-phase read_item (Y);read_item (X);policy but they are subject to write_lock (X);Write_lock (Y);deadlock, which must be unlock (Y);unlock (X);dealt with. read_item (X);read_item (Y); X:=X+Y;Y:=X+Y; write_item (X);write_item (Y); unlock (X);unlock (Y);

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Two-Phase Locking Techniques There are a number of variations of two-phase locking (2PL). The two-phase locking techniques as follows: Basic: Transaction locks data items incrementally. This may cause deadlock which is dealt with. Conservative (static): Prevents deadlock by locking all desired data items it access before the transaction begins execution. Strict: unlocking is performed after a transaction terminates (commits or aborts). This is the most commonly used two-phase locking techniques. Is not deadlock-free.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Conservative 2PL Difficult but deadlock free growing shrinking locks time first action starts

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Strict 2PL T does not release any write locks until it commits or aborts

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Dealing with Deadlock and Starvation Deadlock T’1T’2 read_lock (Y);T1 and T2 did follow two-phase read_item (Y);policy but they are deadlock read_lock (X); read_item (X); write_lock (X); (waits for X)write_lock (Y); (waits for Y) Illustrating the deadlock problem. A partial schedule T’1 and T’2 that is in a state of deadlock.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Dealing with Deadlock and Starvation Deadlock prevention A transaction locks all data items it needed before it begins execution. This way of locking prevents deadlock since a transaction never waits for a data item. The conservative two-phase locking uses this approach.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Dealing with Deadlock and Starvation Deadlock detection and resolution In this approach, deadlocks are allowed to happen. The system construct and maintain a wait-for-graph for detecting cycle. If a cycle exists, then one transaction involved in the cycle is selected (victim) abort and rolled- back.

Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide Dealing with Deadlock and Starvation Starvation Starvation occurs when a particular transaction waits or restarted and never gets a chance to proceed further. In a deadlock resolution it is possible that the same transaction may be selected as victim and rolled-back. One solution for starvation is to have a fair waiting scheme, such as using a first-come-first-served queue; transactions are enabled to lock an item in the order in which they originally requested the lock.