1 7. Distributed Concurrency Control Chapter 11 Distributed Concurrency Control.

Slides:



Advertisements
Similar presentations
Optimistic Methods for Concurrency Control By : H.T. Kung & John T. Robinson Presenters: Munawer Saeed.
Advertisements

Outline Introduction Background Distributed Database Design
Database Systems (資料庫系統)
Chapter 16 Concurrency. Topics in this Chapter Three Concurrency Problems Locking Deadlock Serializability Isolation Levels Intent Locking Dropping ACID.
1 Concurrency Control Chapter Conflict Serializable Schedules  Two actions are in conflict if  they operate on the same DB item,  they belong.
Transaction Management: Concurrency Control CS634 Class 17, Apr 7, 2014 Slides based on “Database Management Systems” 3 rd ed, Ramakrishnan and Gehrke.
Concurrency Control II
Concurrency Control Amol Deshpande CMSC424. Approach, Assumptions etc.. Approach  Guarantee conflict-serializability by allowing certain types of concurrency.
(c) Oded Shmueli Transactions Lecture 1: Introduction (Chapter 1, BHG) Modeling DB Systems.
Concurrency Control.
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.
What we will cover…  Distributed Coordination 1-1.
©Silberschatz, Korth and Sudarshan16.1Database System Concepts 3 rd Edition Chapter 16: Concurrency Control Lock-Based Protocols Timestamp-Based Protocols.
Distributed DBMSPage © 1998 M. Tamer Özsu & Patrick Valduriez Outline Introduction Background Distributed DBMS Architecture Distributed Database.
Distributed DBMSPage © 1998 M. Tamer Özsu & Patrick Valduriez Outline Introduction Background Distributed DBMS Architecture Distributed Database.
CS 582 / CMPE 481 Distributed Systems Concurrency Control.
©Silberschatz, Korth and Sudarshan16.1Database System Concepts 3 rd Edition Chapter 16: Concurrency Control Lock-Based Protocols Timestamp-Based Protocols.
Transaction Processing: Concurrency and Serializability 10/4/05.
Transaction Management
Chapter 18: Distributed Coordination (Chapter 18.1 – 18.5)
©Silberschatz, Korth and Sudarshan16.1Database System Concepts 3 rd Edition Chapter 16: Concurrency Control Lock-Based Protocols Timestamp-Based Protocols.
Concurrency Control John Ortiz.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
TRANSACTIONS AND CONCURRENCY CONTROL Sadhna Kumari.
Concurrency Control.
Lecture 11 Distributed Transaction Management. Concurrency Control The problem of synchronizing concurrent transactions such that the consistency of the.
Distributed DBMSSlide 1Lectured by, Jesmin Akhter, Assistant Professor, IIT, JU PMIT-6102 Advanced Database Systems By- Jesmin Akhter Assistant Professor,
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 10 Transaction Management.
Databases Illuminated
ICS (072)Concurrency Control Techniques1 Concurrency Control Techniques Chapter 18 Dr. Muhammad Shafique.
Concurrency Control Lectured by, Jesmin Akhter, Assistant professor, IIT, JU.
Distributed DBMSPage © 1998 M. Tamer Özsu & Patrick Valduriez Outline Introduction Background Distributed DBMS Architecture Distributed Database.
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
Chapter 15 Concurrency Control Yonsei University 1 st Semester, 2015 Sanghyun Park.
Concurrency Server accesses data on behalf of client – series of operations is a transaction – transactions are atomic Several clients may invoke transactions.
Concurrency Control Concurrency Control By Dr.S.Sridhar, Ph.D.(JNUD), RACI(Paris, NICE), RMR(USA), RZFM(Germany) DIRECTOR ARUNAI ENGINEERING COLLEGE TIRUVANNAMALAI.
TRANSACTION MANAGEMENT R.SARAVANAKUAMR. S.NAVEEN..
1 Concurrency Control Chapter Conflict Serializable Schedules  Two schedules are conflict equivalent if:  Involve the same actions of the same.
Transactions and Concurrency Control. Concurrent Accesses to an Object Multiple threads Atomic operations Thread communication Fairness.
Concurrency Control and Reliable Commit Protocol in Distributed Database Systems Jian Jia Chen 2002/05/09 Real-time and Embedded System Lab., CSIE, National.
Concurrency Chapter 6.2 V3.1 Napier University Dr Gordon Russell.
7c.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Module 7c: Atomicity Atomic Transactions Log-based Recovery Checkpoints Concurrent.
Distributed Transaction Management. Outline Introduction Concurrency Control Protocols  Locking  Timestamping Deadlock Handling Replication.
Concurrency Control Introduction Lock-Based Protocols
1 Concurrency control lock-base protocols timestamp-based protocols validation-based protocols Ioan Despi.
Timestamp-based Concurrency Control
Multidatabase Transaction Management COP5711. Multidatabase Transaction Management Outline Review - Transaction Processing Multidatabase Transaction Management.
Lecture 9- Concurrency Control (continued) Advanced Databases Masood Niazi Torshiz Islamic Azad University- Mashhad Branch
Switch off your Mobiles Phones or Change Profile to Silent Mode.
10 1 Chapter 10_B Concurrency Control Database Systems: Design, Implementation, and Management, Rob and Coronel.
H.Lu/HKUST L06: Concurrency Control & Locking. L06: Concurrency Control & Locking - 2 H.Lu/HKUST Transactions  Concurrent execution of user programs.
Distributed Databases – Advanced Concepts Chapter 25 in Textbook.
Synchronization: Distributed Deadlock Detection
Lecture 3 Concurrency control techniques
Concurrency Control Techniques
Concurrency Control.
Multiple Granularity Granularity is the size of data item  allowed to lock. Multiple Granularity is the hierarchically breaking up the database into portions.
Part- A Transaction Management
Outline Introduction Background Distributed DBMS Architecture
Chapter 10 Transaction Management and Concurrency Control
Outline Introduction Background Distributed DBMS Architecture
Chapter 15 : Concurrency Control
Distributed Database Management Systems
Concurrency Control Chapter 17
Chapter 7: Distributed Transactions
CONCURRENCY Concurrency is the tendency for different tasks to happen at the same time in a system ( mostly interacting with each other ) .   Parallel.
Outline Introduction Background Distributed DBMS Architecture
Transactions, Properties of Transactions
Presentation transcript:

1 7. Distributed Concurrency Control Chapter 11 Distributed Concurrency Control

2 Centralized Transaction Execution Transaction Manager (TM) Scheduler (SC) Begin_transaction, Read, Write, Commit, Abort Results Recovery Manager (RM) Scheduled Operations User Application Results Read, Write, Commit, Abort User Application …...

3 Distributed Transaction Execution TM Begin_transaction, Read, Write, Commit, Abort Scheduled Operations User Application Read, Write, Commit, Abort SC RM TM SC RM Results & User Notifications

4 Concurrency Control v The problem of synchronizing concurrent transactions such that the consistency of the database is maintained while, at the same time, maximum degree of concurrency is achieved. v Anomalies:  Lost updates -- The effects of some transactions are not reflected on the database.  Inconsistent retrievals -- A transaction, if it reads the same data item more than once, should always read the same value.

5 Execution Schedule (or History) v An order in which the operations of a set of transactions are executed. v A schedule (history) can be defined as a partial order over the operations of a set of transactions. T 1 : Read(x) T 2 : Write(x) T 3 : Read(x) Write(x) Write(y) Read(y) Commit Read(z) Read(z) Commit S 1 ={ W 2 (x), R 1 (x), R 3 (x), W 1 (x), C 1,W 2 (y), R 3 (y), R 2 (z), C 2, R 3 (z), C 3 }

6 Formalization of Schedule v A complete schedule SC(T) over a set of transactions T = {T 1,..., T n } is a partial order SC(T) = {  T, < T }, where 1)  T =  i  i, for i = 1, 2,..., n 2) < T  i < i, for i = 1, 2,..., n 3) For any two conflicting operations O ij, O kl   T, either O ij < T O kl or O kl < T O ij

7 Complete Schedule -- Example v Given three transactions T 1 : Read(x) T 2 : Write(x) T 3 : Read(x) Write(x) Write(y) Read(y) Commit Read(z) Read(z) Commit A possible complete schedule is given as the DAG R 1 (x) W 2 (x) R 3 (x) W 1 (x) W 2 (y)R 3 (y) C 1 R 2 (z) R 3 (z) C 2 C 3

8 Schedule Definition v A schedule is a prefix of a complete schedule such that only some of the operations and only some of the ordering relationships are included. T 1 : Read(x) T 2 : Write(x) T 3 : Read(x) Write(x) Write(y) Read(y) Commit Read(z) Read(z) Commit R 1 (x) W 2 (x) R 3 (x) W 1 (x) W 2 (y)R 3 (y) C 1 R 2 (z) R 3 (z) C 2 C 3 R 1 (x) W 2 (x) R 3 (x) W 1 (x) W 2 (y)R 3 (y) R 2 (z) R 3 (z)

9 Serial Schedule v All the actions of a transaction occur consecutively. v No interleaving of transaction operations. v If each transaction is consistent (obeys integrity rules), then the database is guaranteed to be consistent at the end of executing a serial history. v T 1 : Read(x) T 2 : Write(x) T 3 : Read(x) Write(x) Write(y) Read(y) Commit Read(z) Read(z) Commit S ={ W 2 (x), W 2 (y),R 2 (z),C 2,R 1 (x),W 1 (x), C 1, R 3 (x), R 3 (y), R 3 (z), C 3 }

10 Serializable Schedule v Transactions execute concurrently, but the net effect of the resulting schedule upon the database is equivalent to some serial schedule. v Equivalent with respect to what?  Conflicting operations: two incompatible operations (e.g., Read and Write) conflict if they both access the same data item. –Incompatible operations of each transaction is assumed to conflict; do not change their execution orders. –If two operations from two different transactions conflict, the corresponding transactions are also said to conflict.  Conflict equivalence: the relative order of execution of the conflicting operations belonging to unaborted transactions in two schedules are the same.

11 Serializable Schedule Example v A serial schedule for the three transactions S = {W2(x),W2(y),R2(z),C2, R1(x),W1(x),C1,R3(x),R3(y),R3(z),C3}

12 Serializable Schedule Example ( cont.) T 1 : Read(x) T 2 : Write(x) T 3 : Read(x) Write(x) Write(y) Read(y) Commit Read(z) Read(z) Commit The following is not conflict equivalent: S = { W 2 (x), W 2 (y), R 2 (z), C 2, R 1 (x), W 1 (x), C 1, R 3 (x), R 3 (y), R 3 (z), C 3 } S 1 = {W 2 (x), R 1 (x), R 3 (x),W 1 (x), C 1, R 3 (y), W 2 (y), R 2 (z), C 2, R 3 (z), C 3 }

13 Serializable Schedule Example ( cont.) T 1 : Read(x) T 2 : Write(x) T 3 : Read(x) Write(x) Write(y) Read(y) Commit Read(z) Read(z) Commit The following is conflict equivalent, therefore, S 2 is serializable: S = { W 2 (x), W 2 (y), R 2 (z), C 2, R 1 (x), W 1 (x), C 1, R 3 (x), R 3 (y), R 3 (z), C 3 } S 2 ={W 2 (x), R 1 (x), W 1 (x), C 1, R 3 (x), W 2 (y), R 3 (y), R 2 (z), C 2, R 3 (z), C 3 }

14 Serializable Schedule Example ( cont.) Serializable Schedule

15 Concurrency Control Algorithms v Pessimistic  Two ­ Phase Locking ­ based (2PL) –Centralized (primary site) 2PL –Primary copy 2PL –Distributed 2PL  Timestamp Ordering (TO) –Basic TO –Multiversion TO –Conservative TO  Hybrid v Optimistic  Locking ­ based  Timestamp ordering ­ based

16 Locking-based Algorithms v Transactions indicate their intentions by requesting locks from the scheduler (called lock manager). v Locks are either read lock (rl) [also called shared lock] or write lock (wl) [also called exclusive lock] v Read locks and write locks conflict (because Read and Write operations are incompatible)

17 Lock-Based Strategy v A transaction locks an object before using it. v When an object is locked by another transaction, the requesting transaction (with an incompatible lock mode) must wait.  Locking works nicely to allow concurrent processing of transactions.

18 Basic Lock Manager Algorithm 1. LM receives DB operations and associated information (transaction ID etc.) from the TM, or a message from the data processor Transaction Manager (TM) Scheduler (SC/LM) Scheduling/ Descheduling Requests Begin_transaction, Read, Write, Commit, Abort Results To data processor Distributed Execution Monitor other LMs other TMs In locking-based systems, scheduler (SC) is lock manager (LM).

19 Basic LM Algorithm ( cont.) 2. For a message from the TM, LM checks if the lu which contains the required data item is locked: If locked, and the locking mode is incompatible, then put the current operation on queue; Otherwise I.the lock is set in an appropriate mode, and II.database operation is passed onto the data processor, and then III.wait for messages from the data processor. Locking granularity, i.e. the size of the portion of database that a lock is applied. This portion is called locking unit (lu).

20 Basic LM Algorithm ( cont.) 3. Upon the receipt of a message from the data processor: I.Release the lock on lu held by the transaction; II.Check, if there are no more locks on lu, and there are operations waiting in queue to lock lu, then SOP ← first operation from the queue; SOP ← SOP  {O | O is an operation that can lock lu in a compatible mode with the current operations in SOP}; set the locks on lu for these operations in SOP; send the operations to corresponding data processors. Problem with Basic LM Algorithm ?

21 Problem with Basic LM - Example Initial:x = 50y = 20 Result of above scheduling: x = 102 y = 39 Result of schedule {T1,T2}: x = 102 y = 38 Result of schedule {T2,T1}: x = 101 y = 39 Basic LM algorithm may generate non-serializable schedule!

22 Problem with Basic LM Algorithm Early release of data Solution ?

23 Two ­ Phase Locking (2PL) 1. A transaction locks an object before using it. 2. When an object is locked by another transaction, the requesting transaction must wait. 3. When a transaction releases a lock, it may not request another lock.

24 Two-Phase Locking (2PL) Note: (1) 2PL is serializable; (2) Lock point is hard to determine; (3) 2PL can cause cascading aborts!

25 Strict 2PL (S2PL) v S2PL is serializable. v S2PL requires minimal modification to 2PL algorithm. Hold locks until the end of transaction.

26 Centralized 2PL v A method to delegate lock management responsibility to a single site only (known as primary 2PL algorithm)  Coordinating TM The TM at the site where the transaction is initiated.  Participating sites Those at which database operations are to be carried out.

27 One Central Lock Manager v There is only one 2PL scheduler in the distributed system. v Lock requests are issued to the central scheduler. Data Processors at participating sites Coordinating TM Central Site LM Lock Request Lock Granted Operation End of Operation Release Locks

28 Communication Structure of Centralized 2PL Messages: ① Lock request ② Lock granted ③ Database operation ④ End of database operation ⑤ Release locks Problems - poor performance and reliability

29 Primary Copy 2PL v Implement lock management at a number of sites and make each lock manager responsible for a set of lock units. v A dictionary is needed to keep the allocation of lock managers information. v Changes from centralized 2PL to primary copy 2PL are minimal.

30 Distributed 2PL v There is a lock manager at every site. v Each lock manager handles lock requests for data at that site. v Concurrency control is accomplished by the cooperation of lock managers at the sites where data are involved in the set of transactions.

31 Participating LMs Participating DPs Operation End of Operation Release Locks Lock Request Coordinating TM Distributed 2PL Execution

32 Communication Structure of Distributed 2PL v Differences between centralized 2PL and distributed 2PL can be observed by looking at their communication structures. Messages: ① Lock request ② Lock granted ③ End of database operation ④ Release Lock

33 Differences between centralized and distributed 2PL ① Lock request ② Lock granted ③ Database operation ④ End of database operation ⑤ Release locks ① Lock request ② Lock granted ③ End of database operation ④ Release Lock Centralized 2PL Distributed 2PL

34 Distributed 2PL Execution  A transaction may read any of the replicated copies of item x by obtaining a read lock on one of the copies of x. Writing into x requires obtaining write locks for all copies of x -- Read One Write All protocol

35 Summary of 2PL Locking v Centralized: One site does all locking  Vulnerable to single site failure v Primary Copy: All locking for an object done at the primary copy site for this object  Reading requires access to locking site as well as site where the object is stored v Distributed: Locking for a copy done at site where the copy is stored  Locks at all sites while writing an object (Read One Write All)

36 Timestamp-based Concurrency Control Algorithms v Lock method maintains serializability by mutual exclusion. v Timestamp method maintains serializability by assigning a unique timestamp to every transaction and executing transactions in order.

37 Timestamp of Transaction v Transaction manager assigns a globally unique timestamp ts(Ti) to transaction Ti v Transaction manager attaches the timestamp to all operations issued by the transaction. v Timestamp can be used to permit ordering v Monotonicity -- timestamps generated by the same TM monotonically increase in value.

38 v Use a monotonically increased counter, but this is difficult in a distributed environment.  Use a two-tuple form:  Use another two-tuple form: How to Assign a Timestamp Value? site ID is put in the least significant position to avoid the situation that timestamps from a site will always be larger/smaller than timestamps from another site.

39 Timestamp Ordering (TO) Rule  Given two conflicting operations O ij (x) and O kl (x) belonging to transaction T i and T k respectively, O ij (x) is executed before O kl (x) if and only if ts(T i ) < ts(T k ) i.e., the older transaction gets executed first.

40 Schedule by the TO Rule Basic procedure: 1. Check each new operation against conflicting operations that have been scheduled; 2. IF the new operation belongs to a younger (later) transaction than all conflicting ones THEN accept it; ELSE reject it; restart the entire transaction with a new timestamp. This means the system maintains the execution order according to the timestamp order.

41 Basic TO Algorithm v Conflicting operations are resolved by timestamp order. v To facilitate easy checking whether some transaction with a larger timestamp has already accessed a data item, each data item is assigned a write timestamp (wts) and a read timestamp (rts):  rts(x) = largest (youngest) timestamp of any read on x  wts(x) = largest (youngest) timestamp of any write on x

42 Basic TO Algorithm ( cont.) for Ri(x): for Wi(x): if ts(Ti) < wts(x) if ts(Ti) < rts(x) and ts(Ti) < wts(x) then reject Ri(x) then reject Wi(x) else accept Ri(x) else accept Wi(x) rts(x) ←ts(Ti) wts(x) ←ts(Ti)

43 Maintain Timestamps Among Sites  When ts(T) < wts(x), the read is rejected.  Site 2 adjusts its timestamp by making it larger than wts(x) and restart.  Avoid ts(site 1) >> ts(site 2) which may make operations from site 2 never get executed.

44 Conservative TO Algorithm v Basic TO algorithm  deadlock free but too many restarts. v Conservative TO algorithm  Reduce the number of restarts;  delay each operation until there is an assurance that no operation with smaller timestamps can arrive at that scheduler.

45 Conservative TO Technique  At site i, each scheduler i has one queue Q ij for each TM at site j in the system.  An operation from TM j is placed in Q ij in increasing timestamp order.  Scheduler i executes operations from all queues in this order also. This reduces the number of restarts. But restart may occur when a queue is empty..

46 Conservative TO Technique ( cont.) v Suppose Q23 is empty and scheduler 2 chooses an operation op from Q21 and Q22. v But later a conflicting operation with smaller timestamp than ts(op) from site 3 arrives, then this operation must be rejected and restarted! Improvement ?

47 Improvement 1 v Use extremely conservative algorithm, complemented by  In each queue, there is at least one operation, or  if a TM does not have a transaction to process, it has to send a message periodically to inform that in the future it will send timestamp larger than that of the message. Extremely conservative algorithm actually executes transaction serially at each site – too conservative ! An operation may have to wait for the coming of a younger operation of an empty queue – a delay problem ! Problems:

48 Improvement 2 v Define transaction classes and set a queue for each class instead of each TM  Transaction classes are defined by their read set and write set: If a transaction’s read set and write set are subset of a class, then the transaction belongs to that class. Difficulty: It is difficult to define transaction classes!

49 Multiversion TO Algorithm v To eliminate restart overhead costs v Updates do not modify the database; each write creates a new version of the data item to be updated. v Versions are transparent to users. v Transactions are processed on a state of database that it would have seen if they were executed serially.

50 Work of the Scheduler For a read R i (x) from transaction T i : 1. Find a version of x (say x v ) such that ts(x v ) is the largest timestamp less than ts(T i ) ; 2. Send R i (x v ) to the data processor.

51 Work of the Scheduler ( cont.) For a write W i (x) from transaction T i : A W i (x) is translated into W i (x w ) so that ts( x w )=ts( T i ) and (accepted) sent to the data processor, if and only if no other transaction with a timestamp greater than ts(T i ) has read the value of a version of x (say x r ) such that ts(x r )>ts(x w ).

52 Work of the Scheduler ( cont.) v This scheduler generates serializable schedule. v Versions may be purged when they are not accessed by any transactions.

53 Optimistic Concurrency Control Algorithms v Pessimistic algorithms assume conflicts happen quite often. v Optimistic algorithms delay the validation phase until write phase.

54 Concepts v Transaction execution model  Divide a transaction into sub-transactions, each of which executes at a site  Tij: transaction Ti that executes at site j v Transactions run independently at each site until reaching the end of their read phases v All sub-transactions are assigned a timestamp at the end of their read phase

55 Optimistic Strategy v Delay the validation phase until just before the write phase  Thus an operation submitted to an optimistic scheduler is never delayed. v The read, compute, and write operations of each transaction are processed freely without updating the actual database.  Each transaction initially makes its updates on local copies of data items.

56 Optimistic Strategy ( cont.) v The validation phase consists of checking if these updates would maintain the consistency of the database. v If the answer is affirmative, the changes are made global (i.e., written into the actual database); Otherwise, the transaction is aborted and has to restart.

57 Local Validation of T ij – Rule 1  If all T k with ts(T k ) < ts(T ij ) have completed before T ij has started, then the validation succeeds. v This is a serial execution order.

58 Local Validation of T ij – Rule 2  If there is any transaction T k, such that  ts(T k ) < ts(T ij )  T k is in write phase  T ij is in read phase, and  WS(T k )  RS(T ij ) =  then the validation succeeds. - None of the data items updated by T k are read by T ij ; - Updates of T ij will not be overwritten by the updates of T k Read and write phases overlap, but T ij does not read data items written by T k

59 Local Validation of T ij – Rule 3  If there is any transaction T k, such that  ts(T k ) < ts(T ij )  T k completes the read phase before T ij completes the read phase  WS(T k )  RS(T ij ) = , and  WS(T k )  WS(T ij ) =  then the validation succeeds. - Update of T k will not affect the read phase or write phase of T ij. They overlap, but does not access any common data items.

60 Global Validation v Local validation ensures local database consistency. v However, there is no known optimistic method for doing global validation! v One possible way of doing it  A transaction is globally validated if all the transactions preceding it terminate (either by committing or aborting) in the serialization order (at that site).  It guarantees the transactions execute in the same order at each site.  This is a pessimistic strategy, as it performs global validation early and delays a transaction

61 Advantages and Disadvantages v Advantage of optimistic algorithm  higher concurrency v Disadvantage  higher storage cost for ordering of transactions v No implementation at the time of writing the textbook.

62 Deadlock v A transaction is deadlocked if it is blocked and will remain blocked until there is intervention.  Locking ­ based CC algorithms may cause deadlocks.  TO ­ based algorithms that involve waiting may cause deadlocks.  Wait ­ For Graph (WFG)  If transaction T i waits for another transaction T j to release a lock on an entity, then T i  T j in WFG. Ti Tj

63 Local versus Global WFG  Assume T 1 and T 2 run at site 1, T 3 and T 4 run at site 2.  Assume T 3 waits for a lock held by T 4 which waits for a lock held by T 1 which waits for a lock held by T 2 which, in turn, waits for a lock held by T 3. Local WFG Global WFG T1T1 T2T2 T4T4 T3T3 Site 1Site 2 T1T1 T2T2 T4T4 T3T3 Site 1Site 2

64 Deadlock Management v Ignore  Let the application programmer deal with it, or restart the system v Prevention  Guarantee that deadlocks can never occur in the first place. Check transaction when it is initiated. Require no run time support. v Avoidance  Detect potential deadlocks in advance and take action to ensure that deadlock will not occur. Require run time support. v Detection and Recovery  Allow deadlocks to form and then find and break them. Require run time support.

65 Deadlock Prevention v All resources which may be needed by a transaction must be pre-declared.  The system must guarantee that none of the resources will be needed by an ongoing transaction.  Resources must only be reserved, but not necessarily allocated a priori.  Unsuitability in database environments  Suitable for systems that have no provisions for undoing processes. v Evaluation - Reduced concurrency due to pre-allocation - Evaluating whether an allocation is safe leads to added overhead. - Difficult to determine + No transaction rollback or restart is involved.

66 Deadlock Avoidance v Transactions are not required to request resources a priori. v Transactions are allowed to proceed unless a requested resource is unavailable. v In case of conflict, transactions may or may not be allowed to wait for a fixed time interval. v Order either the data items or the sites and always request locks in that order. v More attractive than prevention in a database environment.

67 Deadlock Avoidance - Wait ­ Die  If T i requests a lock on a data item which is already locked by T j, then T i is permitted to wait iff ts( T i )<ts( T j ).  If ts( T i )>ts( T j ), then T i is aborted and restarted with the same timestamp.  if ts( T i )<ts( T j ) then T i waits else T i dies  non ­ preemptive: T i never preempts T j  younger transaction is aborted

68  If T i requests a lock on a data item which is already locked by T j, then T i is permitted to wait iff ts( T i ) >ts( T j ).  If ts( T i )<ts( T j ), then T j is aborted and the lock is granted to T i.  if ts( T i )<ts( T j ) then T j is wounded else T i waits  preemptive: T i preempts T j  younger transaction is aborted Deadlock Avoidance - Wound ­ Wait

69 Deadlock Detection v Transactions are allowed to wait freely.  Wait ­ for graphs and cycles. v Topologies for deadlock detection algorithms  Centralized  Hierarchical  Distributed

70 Centralized Deadlock Detection v One site is designated as the deadlock detector for the system. Each scheduler periodically sends its local WFG to the central site which merges them to a global WFG to determine cycles. v How often to transmit?  Too often: higher communication cost but lower delays due to undetected deadlocks  Too late: higher delays due to deadlocks, but lower communication cost v A reasonable choice if the concurrency control algorithm is also centralized.

71 Hierarchical Deadlock Detection v Organize sites into a hierarchy and deadlock detectors (DD) send local graphs to parent in the hierarchy DD 21 DD 22 DD 24 DD 23 DD 11 DD 0x DD 14 Site 1 Site 2 Site 3 Site 4 Level 0 Level 1 Level 2 Building a hierarchy of deadlock detectors

72 Distributed Deadlock Detection Sites cooperate in detection of deadlocks v The local WFGs are formed at each site and passed on to other sites. v Each local WFG is modified as follows: 1.Since each site receives the potential deadlock cycles from other sites, these edges are added to the local WFGs 2.The edges in the local WFG which show that local transactions are waiting for transactions at other sites are joined with edges in the local WFGs which show that remote transactions are waiting for local ones.

73 Distributed Deadlock Detection ( cont.) v Each local deadlock detector  looks for a cycle that does not involve the external edge. If it exists, there is a local deadlock which can be handled locally.  looks for a cycle involving the external edge. If it exists, it indicates a potential global deadlock. Pass on the information to the next site.

74 Question & Answer