1 Anna Östlin Pagh and Rasmus Pagh IT University of Copenhagen Advanced Database Technology April 1, 2004 CONCURRENCY CONTROL Lecture based on [GUW, 18.0-8,

Slides:



Advertisements
Similar presentations
Database Systems (資料庫系統)
Advertisements

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.
1 Lecture 11: Transactions: Concurrency. 2 Overview Transactions Concurrency Control Locking Transactions in SQL.
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.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Concurrency Control Chapter 17 Sections
Managing Hierarchies of Database Elements (18.6) 1 Presented by Sarat Dasika (114) February 16, 2012.
Concurrency Control II. General Overview Relational model - SQL  Formal & commercial query languages Functional Dependencies Normalization Physical Design.
Concurrency Control Part 2 R&G - Chapter 17 The sequel was far better than the original! -- Nobody.
Lecture 11 Recoverability. 2 Serializability identifies schedules that maintain database consistency, assuming no transaction fails. Could also examine.
1 Supplemental Notes: Practical Aspects of Transactions THIS MATERIAL IS OPTIONAL.
Sekolah Tinggi Ilmu Statistik (STIS) 1 Dr. Said Mirza Pahlevi, M.Eng.
Transaction Management Overview. Transactions Concurrent execution of user programs is essential for good DBMS performance. –Because disk accesses are.
Quick Review of Apr 29 material
Concurrent Transactions Even when there is no “failure,” several transactions can interact to turn a consistent state into an inconsistent state.
Concurrency Control and Recovery In real life: users access the database concurrently, and systems crash. Concurrent access to the database also improves.
Concurrency Control R &G - Chapter 19 Smile, it is the key that fits the lock of everybody's heart. Anthony J. D'Angelo, The College Blue Book.
Managing Hierarchies of Database Elements (18.6) -Neha Saxena Class Id: 214.
Concurrency Control R&G - Chapter 17 Smile, it is the key that fits the lock of everybody's heart. Anthony J. D'Angelo, The College Blue Book.
Concurrency Control Managing Hierarchies of Database Elements (18.6) 1 Presented by Ronak Shah (214) March 9, 2009.
Transaction Management and Concurrency Control
1 Concurrency Control and Recovery Module 6, Lecture 1.
Final Exam Review Last Lecture R&G - All Chapters Covered The end crowns all, And that old common arbitrator, Time, Will one day end it. William Shakespeare.
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
Concurrency. Correctness Principle A transaction is atomic -- all or none property. If it executes partly, an invalid state is likely to result. A transaction,
©Silberschatz, Korth and Sudarshan16.1Database System Concepts 3 rd Edition Chapter 16: Concurrency Control Lock-Based Protocols Timestamp-Based Protocols.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Transaction Management and Concurrency Control
Academic Year 2014 Spring Academic Year 2014 Spring.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 10 Transaction Management.
Database Management Systems, 2 nd Edition. R. Ramakrishnan and J. Gehrke1 Transaction Management Overview Lecture 21 Ramakrishnan - Chapter 18.
1 Transaction Management Overview Chapter Transactions  Concurrent execution of user programs is essential for good DBMS performance.  Because.
V. Megalooikonomou Concurrency control (based on slides by C. Faloutsos at CMU and on notes by Silberchatz,Korth, and Sudarshan) Temple University – CIS.
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.
Transactions CPSC 356 Database Ellen Walker Hiram College (Includes figures from Database Systems by Connolly & Begg, © Addison Wesley 2002)
Concurrency Control Concurrency Control By Dr.S.Sridhar, Ph.D.(JNUD), RACI(Paris, NICE), RMR(USA), RZFM(Germany) DIRECTOR ARUNAI ENGINEERING COLLEGE TIRUVANNAMALAI.
1 Concurrency Control II: Locking and Isolation Levels.
1 Concurrency Control Chapter Conflict Serializable Schedules  Two schedules are conflict equivalent if:  Involve the same actions of the same.
II.I Selected Database Issues: 2 - Transaction ManagementSlide 1/20 1 II. Selected Database Issues Part 2: Transaction Management Lecture 4 Lecturer: Chris.
1 Concurrency Control Lecture 22 Ramakrishnan - Chapter 19.
Transaction Management Overview. Transactions Concurrent execution of user programs is essential for good DBMS performance. – Because disk accesses are.
1 Database Systems ( 資料庫系統 ) December 27, 2004 Chapter 17 By Hao-hua Chu ( 朱浩華 )
1 CSE232A: Database System Principles More Concurrency Control and Transaction Processing.
Switch off your Mobiles Phones or Change Profile to Silent Mode.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
Jinze Liu. ACID Atomicity: TX’s are either completely done or not done at all Consistency: TX’s should leave the database in a consistent state Isolation:
Prepared by: Mudra Patel (113) Pradhyuman Raol(114) Locking Scheduler & Managing Hierarchies of Database Elements.
Chapter 13 Managing Transactions and Concurrency Database Principles: Fundamentals of Design, Implementation, and Management Tenth Edition.
1 Concurrency Control. 2 Why Have Concurrent Processes? v Better transaction throughput, response time v Done via better utilization of resources: –While.
CS 440 Database Management Systems
Lecture 3 Concurrency control techniques
Concurrency Control Techniques
Transaction Management and Concurrency Control
Concurrency Control.
Transaction Management
Transaction Management
Chapter 10 Transaction Management and Concurrency Control
Ch 22: Databases Concurrency Control
Chapter 15 : Concurrency Control
Introduction of Week 13 Return assignment 11-1 and 3-1-5
Transactions and Concurrency
Transaction Management
Temple University – CIS Dept. CIS661 – Principles of Data Management
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:

1 Anna Östlin Pagh and Rasmus Pagh IT University of Copenhagen Advanced Database Technology April 1, 2004 CONCURRENCY CONTROL Lecture based on [GUW, , 19.3]

2 Reminder: Course evaluation  Today is your last chance to fill out the course evaluation.  Your feedback is appreciated!  We are particularly interested in how you experienced the changes we made compared to last year:  Shorter, more focused lectures.  Exercises without preparation.

3 Next: Concurrency control  Serial schedules and consistency.  Conflict-serializability.  Locking schemes:  2-phase locking.  Lock modes and compatibility matrices.  Optimistic concurrency control.  Timestamping.  Multi-version timestamps.

4 Problem session  Come up with examples of undesired behaviour that could occur if several transactions run in parallel such that the actions interleave. Consider e.g.:  Transferring money and adding interest in a bank’s database.  Booking plane tickets.

5 ACID properties of transactions  A tomicity: A transaction is executed either completely or not at all.  C onsistency: Database constraints must be kept.  I solation: Transactions must appear to execute one by one in isolation.  D urability: The effect of a committed transaction must never be lost.

6 Now: Atomicity and isolation  Last lecture dealt with durability.  This lecture is concerned with atomicity and isolation.  Consistency is a consequence of atomicity and isolation + maintaining any declared DB constraint (not discussed in this course).

7 Isolation and serializability  We would like the DBMS to make transactions satisfy serializability:  The state of the database should always look as if the committed transactions were performed one by one in isolation (i.e., in a serial schedule).  The scheduler of the DBMS is allowed to choose the order of transactions:  It is not necessarily the transaction that is started first, which is first in the serial schedule.  The order may even look different from the viewpoint of different users.

8 A simple scheduler  A simple scheduler would maintain a queue of transactions, and carry them out in order.  Problems:  Transactions have to wait for each other, even if unrelated (e.g. requesting data on different disks).  Some transactions may take very long, e.g. when external input is needed during the transaction.

9 Interleaving schedulers  Good DBMSs have schedulers that allow the actions of transactions to interleave.  However, the result should be as if some serial schedule was used.  Such schedules are called serializable.  In practice schedulers do not recognize all serializable schedules, but allow just some. Today: Conflict serializable schedules.

10 Simple view on transactions  We regard a transaction as a sequence of reads and writes of DB elements, that may interleave with sequences of other transactions.  DB elements could be e.g. a value in a tuple, an entire tuple, or a disk block.  r T (X), shorthand for ”transaction T reads database element X”.  w T (X), shorthand for ”transaction T writes database element X”.

11 Conflicts  The order of some operations is of no importance for the final result of executing the transactions.  Example: We may interchange the order of any two read operations without changing the behaviour of the transaction(s) doing the reads.  In other cases, changing the order may give a different result - there is a conflict.

12 What operations conflict?  By considering all cases, it can be seen that two operations conflict if and only if: 1)They involve the same DB element, and 2)At least one of them is a write operation.  Note that this is a conservative (but safe) rule.

13 Conflict serializability  Suppose we have a schedule for the operations of several transactions.  We can obtain conflict-equivalent schedules by swapping adjacent operations that do not conflict.  If a schedule is conflict-equivalent to a serial schedule, it is serializable.  The converse is not true (ex. in GUW).

14 Testing conflict serializability  Suppose we have a schedule for the operations of current transactions.  If there is a conflict between operations of two transactions, T 1 and T 2, we know which of them must be first in a conflict-equivalent serial schedule.  This can be represented as a directed edge in a graph with transactions as vertices.

15 Problem session  Find a criterion on the precedence graph which is equivalent to conflict- serializability, i.e.:  If the graph meets the criterion the schedule is conflict-serializable, and  If the schedule is conflict-serializable, the graph meets the criterion.

16 Enforcing serializability  Knowing how to recognize conflict- serializability is not enough.  We will now study mechanisms that enforce serializability:  Locking (pessimistic concurrency control).  Time stamping (optimistic concurrency control).

17 Locks  In its simplest form, a lock is a right to perform operations on a database element.  Only one transaction may hold a lock on an element at any time.  Locks must be requested by transactions and granted by the locking scheduler.

18 Two-phase locking  Commercial DB systems widely use two- phase locking, satisfying the condition:  In a transaction, all requests for locks precede all unlock requests.  If two-phase locking is used, the schedule is conflict-equivalent to a serial schedule in which transactions are ordered according to the time of their first unlock request.

19 Lock modes  The simple locking scheme we saw is too restrictive, e.g., it does not allow different transactions to read the same DB element concurrently.  Idea: Have several kinds of locks, depending on what you want to do. Several locks on the same DB element may be ok (e.g. two read locks).

20 Shared and exclusive locks  Locks needed for reading can be shared (S).  Locks needed for writing must be exclusive (X).  Compatibility matrix says which locks are granted: Lock requested Lock held SX SYesNo X

21 Update locks  A transaction that will eventually write to a DB element, may allow other DB elements to keep read locks until it is ready to write.  This can be achieved by a special update lock (U) which can be upgraded to an exclusive lock.

22 Compatibility for update locks  Question: Why not upgrade shared locks? Lock requested Lock held SXU SYesNoYes XNo UNo (!)No

23 The locking scheduler  The locking scheduler is responsible for granting locks to transactions.  It keeps lists of all currents locks, and of all current lock requests.  Locks are not necessarily granted in sequence, e.g., a request may have to wait until another transaction releases its lock.  Efficient implementation in GUW.

24 Problem session  So far we did not discuss what DB elements to lock: Atomic values, tuples, blocks, relations?  What are the advantages and disadvantages of fine-grained locks (such as locks on tuples) and coarse- grained locks (such as locks on relations)?

25 Granularity of locks  Fine-grained locks allow a lot of concurrency, but may cause problems with deadlocks.  Coarse-grained locks require fewer resources by the locking scheduler.  We want to allow fine-grained locks, but use (or switch to) coarser locks when needed.

26 Warning locks  An exclusive lock on a tuple should prevent an exclusive lock on the whole relation.  To implement this, all locks must be accompanied by warning locks at higher levels of the hierarchy of database elements.  We denote shared/exclusive warning locks by IS/IX, where I stands for the intention to shared/exclusively lock database elements at a lower level.

27 Compatibility of warning locks Lock requested Lock held ISIXSX ISYes No IXYes No SYesNoYesNo X

28 Phantom tuples  Suppose we lock tuples where A=42 in a relation, and subsequently another tuple with A=42 is inserted.  For some transactions this may result in unserializable behaviour, i.e., it will be clear that the tuple was inserted during the course of a transaction.  Such tuples are called phantoms.

29 Avoiding phantoms  Phantoms can be avoided by putting an exclusive lock on a relation before adding tuples.  However, this gives poor concurrency.  In SQL, the programmer may choose to either allow phantoms in a transaction or insist they should not occur.

30 SQL isolation levels A transactions in SQL may be chosen to have one of four isolation levels:  READ UNCOMMITTED : ”No locks are obtained.”  READ COMMITTED : ”Read locks are immediately released - read values may change during the transaction.”  REPEATABLE READ : ”2PL but no lock when adding new tuples.”  SERIALIZABLE : ”2PL with lock when adding new tuples.”

31 SQL implementation  Note that implementation is not part of the SQL standards - they specify only semantics.  An SQL-DBMS designer may choose another implementation than the mentioned locking schemes, as long as the semantics conforms to the standard.

32 Locks on indexes  When updating a relation, any indexes on the table also need to be updated.  Again, we must use locks to ensure serializability.  B-trees have a particular challenge: The root may be changed by any update, so it seems concurrent updates can’t be done using locks.

33 Locks in B-trees  Idea:  Only put an exclusive lock on a B-tree node if there is a chance it may have to change.  Lock from top to bottom along the path.  Unlock from bottom to top as soon as nodes have been updated.  More general scheme, the tree protocol, discussed in GUW.

34 Locks and deadlocks  The DBMS sometimes must make a transaction wait for another transaction to release a lock.  This can lead to deadlock if e.g. A waits for B, and B waits for A.  In general, we have a deadlock exactly when there is a cycle in the waits-for graph.  Deadlocks are resolved by aborting some transaction involved in the cycle.

35 Dealing with deadlocks Possibilities:  Examine the waits-for graph after every lock request to find any deadlock.  If a transaction lived for too long it may be involved in a deadlock - roll back.  Use timestamps, unique numbers associated with every transaction to prevent deadlocks.

36 Avoiding deadlocks by timestamp Two possible policies when T waits for U:  Wait-die. If T is youngest it is rolled back.  Wound-wait. If U is youngest it is rolled back. In both cases there can be no waits-for cycles, because transactions only wait for younger (resp. older) transactions.

37 Problems with locking  Locking prevents transactions from engaging in non-serializable behaviour.  However, it is sometimes a bit too strict and pessimistic, not allowing as much concurrency as we would like.  Next we will consider an optimistic concurrency control that works better when transactions don’t conflict much.

38 Timestamps Idea:  Associate a unique number, the timestamp, with each transaction.  Transactions should behave as if they were executed in order of their timestamps.  For each database element, record: The highest timestamp of a transaction that read it. The highest timestamp of a transaction that wrote it. Whether the writing transaction has committed.

39 Timestamp based scheduling If transaction T requests to:  Read a DB element written by an uncommitted transaction, it must wait for it to commit or abort.  Read a DB element with a higher write timestamp, it must be rolled back.  Write a DB element with a lower read timestamp, it must be rolled back. Rolling back means getting a new timestamp.

40 Problem session  What should the scheduler do if a transaction requests to write a DB element with a higher write timestamp?

41 Multiversion timestamps  In principle, all previous versions of DB elements could be saved.  This would allow any read operation to be consistent with the timestamp of the transaction.  Used in many systems for scheduling read only transactions. (In practice, only recent versions are saved.)

42 Optimism vs pessimism  Pessimistic concurrency is best in high- conflict situations:  Smallest number of aborts.  No wasted processing.  Optimistic concurrency control is best if conflicts are rare, e.g., if there are many read-only transactions.  Highest level of concurrency.  Hybrid solutions often used in practice.

43 Why this is useful knowledge  Knowledge on concurrency control of a DBMS is useful:  If you encounter concurrency problems, e.g., many deadlocks or long response times.  When choosing a suitable DBMS for a particular application (optimistic or pessimistic concurrency control?).

44 Summary  Concurrency control is crucial in a DBMS.  The schedule of operations of transactions should be serializable.  The scheduler may use locks or timestamps.  Locks allow less concurrency, and may cause deadlocks.  Timestamps may cause more aborts.