1
play

1 Pitfalls of Lock-Based Protocols (Cont.) The Two-Phase Locking - PDF document

Concurrency Control Lock-Based Protocols Timestamp-Based Protocols Lecture 9 Concurrency Control Validation-Based Protocols Multiple Granularity Multiversion Schemes Deadlock Handling Chapter 16 Insert and Delete


  1. Concurrency Control � Lock-Based Protocols � Timestamp-Based Protocols Lecture 9 Concurrency Control � Validation-Based Protocols � Multiple Granularity � Multiversion Schemes � Deadlock Handling Chapter 16 � Insert and Delete Operations (Sections 16.1.1, 16.1.2, 16.1.3, 16.1.5, 16.2--16.7) Database Techniques 2 Lock-Based Protocols Lock-Based Protocols (Cont.) Lock-compatibility matrix � A lock is a mechanism to control concurrent access to a data item � Data items can be locked in two modes : 1 . exclusive (X) mode . Data item can be both read as well as � A transaction may be granted a lock on an item if the requested lock is compatible with locks already held on the item by other written. X-lock is requested using lock-X instruction transactions 2 . shared (S) mode . Data item can only be read. S-lock is requested using lock-S instruction. � Any number of transactions can hold shared locks on an item, but if any transaction holds an exclusive on the item no other transaction may hold any lock on the item. � Lock requests are made to concurrency-control manager. � If a lock cannot be granted, the requesting transaction is made to wait till all incompatible locks held by other transactions have Transaction can proceed only after request is granted. been released. The lock is then granted. Database Techniques 3 Database Techniques 4 Lock-Based Protocols (Cont.) Pitfalls of Lock-Based Protocols Consider the partial schedule Example of a transaction performing locking: T 2 : lock-S (A) ; read (A) ; unlock (A) ; lock-S (B) ; read (B) ; unlock (B) ; display (A+B) Neither T 3 nor T 4 can make progress — executing lock-S (B) causes T 4 Locking as above is not sufficient to guarantee serializability � � to wait for T 3 to release its lock on B , while executing lock-X (A) causes � if A and B get updated in-between the read of A and B , the displayed T 3 to wait for T 4 to release its lock on A . sum would be wrong . Such a situation is called a deadlock . A locking protocol is a set of rules followed by all transactions while � � � To handle a deadlock one of T 3 or T 4 must be rolled back and its requesting and releasing locks. locks released. Locking protocols restrict the set of possible schedules. � Database Techniques 5 Database Techniques 6 1

  2. Pitfalls of Lock-Based Protocols (Cont.) The Two-Phase Locking Protocol � The potential for deadlock exists in most locking protocols. � This is a protocol which ensures conflict-serializable schedules. � Phase 1: Growing Phase Deadlocks are a necessary evil. � transaction may obtain locks � Starvation is also possible if concurrency control manager is � transaction may not release locks � Phase 2: Shrinking Phase badly designed. For example : � transaction may release locks � A transaction may starve waiting for an X-lock on an item, while a sequence of other transactions request and are granted an � transaction may not obtain locks S-lock on the same item. � The same transaction is repeatedly rolled back due to deadlocks . � The protocol assures serializability. It can be proved that the transactions can be serialized in the order of their lock points � Concurrency control manager can be designed to prevent (i.e. the point where a transaction acquired its final lock). starvation . Database Techniques 7 Database Techniques 8 The Two-Phase Locking Protocol (Cont.) The Two-Phase Locking Protocol (Cont.) � Two-phase locking does not ensure freedom from deadlocks � There can be conflict serializable schedules that cannot be obtained if two-phase locking is used. � Cascading roll-back is possible under two-phase locking. To � However, in the absence of extra information (e.g., avoid this, follow a modified protocol called strict two-phase ordering of access to data), two-phase locking is needed locking . Here a transaction must hold all its exclusive locks for conflict serializability in the following sense: till it commits/aborts. Given a transaction T i that does not follow two-phase locking, we can find a transaction T j that uses two-phase locking, and a schedule for T i and T j that is not conflict serializable. � Rigorous two-phase locking is even stricter: here all locks are held till commit/abort. In this protocol transactions can be serialized in the order in which they commit. Database Techniques 9 Database Techniques 10 Lock Conversions Automatic Acquisition of Locks � A transaction T i issues the standard read / write instructions, Two-phase locking with lock conversions: without explicit locking calls. First Phase: � The operation read ( D ) is processed as: � can acquire a lock-S on item if T i has a lock on D � can acquire a lock-X on item then � can convert a lock-S to a lock-X ( upgrade ) read( D ) Second Phase: else � can release a lock-S begin � can release a lock-X if necessary wait until no other � can convert a lock-X to a lock-S (downgrade ) transaction has a lock-X on D grant T i a lock-S on D ; � This protocol assures serializability. But still relies on the read( D ) programmer to insert the various locking instructions. end Database Techniques 11 Database Techniques 12 2

  3. Automatic Acquisition of Locks (Cont.) Graph-Based Protocols � Graph-based protocols are an alternative to two-phase write (D) is processed as: � locking. if T i has a lock-X on D then write( D ) � Impose a partial ordering → on the set D = { d 1 , d 2 ,..., d h } of else all data items. begin if necessary wait until no other trans. has any lock on D , � If d i → d j then any transaction accessing both d i and d j must if T i has a lock-S on D access d i before accessing d j . then � Implies that the set D may now be viewed as a directed acyclic upgrade lock on D to lock-X graph, called a database graph . else grant T i a lock-X on D write( D ) � The tree-protocol is a simple kind of graph protocol. end ; All locks are released after commit or abort Database Techniques 13 Database Techniques 14 Tree Protocol Graph-Based Protocols (Cont.) � The tree protocol ensures conflict serializability as well as freedom from deadlock. � Unlocking may occur earlier in the tree-locking protocol than in the two-phase locking protocol . � shorter waiting times, and increase in concurrency � protocol is deadlock-free: no rollbacks are required � the abort of a transaction can still lead to cascading rollbacks. � However, in the tree-locking protocol, a transaction may have to lock � Only exclusive locks are allowed. data items that it does not access. � The first lock by T i may be on any data item. Subsequently, a data Q can be locked by T i only if the parent of Q is currently � increased locking overhead, and additional waiting time locked by T i . � potential decrease in concurrency � Data items may be unlocked at any time. � Schedules not possible under two-phase locking are possible under � A data item that has been locked and unlocked by T i cannot subsequently be re-locked by T i . tree protocol, and vice versa. Database Techniques 15 Database Techniques 16 Timestamp-Based Protocols Timestamp-Based Protocols (Cont.) � Each transaction is issued a timestamp when it enters the system. � The timestamp ordering protocol ensures that any conflicting If an old transaction T i has time-stamp TS( T i ), a new transaction T j read and write operations are executed in timestamp order. is assigned time-stamp TS( T j ) such that TS( T i ) < TS( T j ). � Suppose a transaction T i issues a read ( Q ) � The protocol manages concurrent execution such that the 1. If TS( T i ) ≤ W-timestamp ( Q ), then T i needs to read a value of timestamps determine the serializability order. Q that was already overwritten. Hence, the read operation is rejected, and T i is rolled back. 2. If TS( T i ) ≥ W-timestamp ( Q ), then the read operation is � In order to assure such behavior, the protocol maintains for each data Q two timestamp values: executed, and R-timestamp ( Q ) is set to the maximum of R-timestamp ( Q ) and TS( T i ). � W-timestamp ( Q ) is the largest time-stamp of any transaction that executed write ( Q ) successfully. � R-timestamp ( Q ) is the largest time-stamp of any transaction that executed read ( Q ) successfully. Database Techniques 17 Database Techniques 18 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend