1 Lecture 11: Transactions: Concurrency. 2 Overview Transactions Concurrency Control Locking Transactions in SQL.

Slides:



Advertisements
Similar presentations
Lecture plan Transaction processing Concurrency control
Advertisements

Database Systems (資料庫系統)
Unit 9 Concurrency Control. 9-2 Wei-Pang Yang, Information Management, NDHU Content  9.1 Introduction  9.2 Locking Technique  9.3 Optimistic Concurrency.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Transaction Management Overview Chapter 16.
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.
Principles of Transaction Management. Outline Transaction concepts & protocols Performance impact of concurrency control Performance tuning.
Cs4432concurrency control1 CS4432: Database Systems II Lecture #22 Concurrency Control: Locking-based Protocols Professor Elke A. Rundensteiner.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Concurrency Control Chapter 17 Sections
Lecture 12 Transactions: Isolation. Transactions What’s hard? – ACID – Concurrency control – Recovery.
CSC271 Database Systems Lecture # 32.
Lecture 11 Recoverability. 2 Serializability identifies schedules that maintain database consistency, assuming no transaction fails. Could also examine.
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
ICS 421 Spring 2010 Transactions & Concurrency Control (i) Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa.
Concurrency Control and Recovery In real life: users access the database concurrently, and systems crash. Concurrent access to the database also improves.
Transaction Management and Concurrency Control
1 Concurrency Control and Recovery Module 6, Lecture 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
1 Concurrency Control. 2 Transactions A transaction is a list of actions. The actions are reads (written R T (O)) and writes (written W T (O)) of database.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
1 Concurrency Control. 2 Transactions A transaction is a list of actions. The actions are reads (written R T (O)) and writes (written W T (O)) of database.
1 IT420: Database Management and Organization Transactions 31 March 2006 Adina Crăiniceanu
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Transaction Management Overview Chapter 16.
1 Transaction Management Overview Chapter Transactions  Concurrent execution of user programs is essential for good DBMS performance.  Because.
08_Transactions_LECTURE2 DBMSs should guarantee ACID properties (Atomicity, Consistency, Isolation, Durability). This is typically done by guaranteeing.
BIS Database Systems School of Management, Business Information Systems, Assumption University A.Thanop Somprasong Chapter # 10 Transaction Management.
Introduction to Data Management CSE 344 Lecture 23: Transactions CSE Winter
Concurrency Control R &G - Chapter 19. Transactions Concurrent execution of user programs is essential for good DBMS performance. – Because disk accesses.
V. Megalooikonomou Concurrency control (based on slides by C. Faloutsos at CMU and on notes by Silberchatz,Korth, and Sudarshan) Temple University – CIS.
Transactions CPSC 356 Database Ellen Walker Hiram College (Includes figures from Database Systems by Connolly & Begg, © Addison Wesley 2002)
TRANSACTION MANAGEMENT R.SARAVANAKUAMR. S.NAVEEN..
1 Concurrency Control II: Locking and Isolation Levels.
Chapter 16 Concurrency. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.16-2 Topics in this Chapter Three Concurrency Problems Locking Deadlock.
Page 1 Concurrency Control Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
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.
Transaction Management Transparencies. ©Pearson Education 2009 Chapter 14 - Objectives Function and importance of transactions. Properties of transactions.
1 Database Systems ( 資料庫系統 ) December 27, 2004 Chapter 17 By Hao-hua Chu ( 朱浩華 )
Module 11: Managing Transactions and Locks
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
©Bob Godfrey, 2002, 2005 Lecture 17: Transaction Integrity and Concurrency BSA206 Database Management Systems.
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:
Distributed Transactions What is a transaction? (A sequence of server operations that must be carried out atomically ) ACID properties - what are these.
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
Transaction Management and Concurrency Control
Transaction Management Overview
Transaction Management
Transaction Management Overview
Transaction Properties
Transaction Management
Transaction Management Overview
Concurrency.
Chapter 10 Transaction Management and Concurrency Control
Lecture 21: Concurrency & Locking
CS162 Operating Systems and Systems Programming Review (II)
Introduction of Week 13 Return assignment 11-1 and 3-1-5
Transaction management
Transaction Management
Temple University – CIS Dept. CIS661 – Principles of Data Management
Transaction Management Overview
Database Systems (資料庫系統)
Database Systems (資料庫系統)
Transaction Management Overview
Presentation transcript:

1 Lecture 11: Transactions: Concurrency

2 Overview Transactions Concurrency Control Locking Transactions in SQL

3 A Sample Transaction 1: Begin_Transaction 2: get (K1, K2, CHF) from terminal 3: Select BALANCE Into S1 From ACCOUNT Where ACCOUNTNR = K1; 4: S1 := S1 - CHF; 5: Update ACCOUNT Set BALANCE = S1 Where ACCOUNTNR = K1; 6: Select BALANCE Into S2 From ACCOUNT Where ACCOUNTNR = K2; 7: S2 := S2 + CHF; 8: Update ACCOUNT Set BALANCE = S2 Where ACCOUNTNR = K2; 9: Insert Into BOOKING(ACCOUNTNR,DATE,AMOUNT,TEXT) Values (K1, today, -CHF, 'Transfer'); 10: Insert Into BOOKING(ACCOUNTNR,DATE,AMOUNT,TEXT) Values (K2, today, CHF, 'Transfer'); 12: If S1<0 Then Abort_Transaction 11: End_Transaction Transaction = Program that takes database from one consistent state to another consistent state

4 Problems System crashes during transaction –database remains in inconsistent (intermediate) state –solution: recovery (next week) Multiple transactions executed at same time –other applications have access to inconsistent (intermediate) state –solution: concurrency control (this week)

5 Transactions A transaction = sequence of statements that either all succeed, or all fail Transactions have the ACID properties: A = atomicity C = consistency I = isolation D = durability

6 ACID Atomicity: the operation sequence is either executed completely or not at all Consistency: the operation sequence takes the database from any consistent state to another consistent state (with respect to integrity constraints) Isolation: intermediate states of transactions are not visible to other transactions (equivalence to single user mode) Durability: effects of completed transactions are not lost due to hardware or software failures

7 Transaction Management Isolation (+ Consistency) => Concurrency Control Atomicity + Durability => Recovery

8 Model for Transactions Assumption: the database is composed of elements –Usually 1 element = 1 block –Can be smaller (=1 record) or larger (=1 relation) Assumption: each transaction reads/writes some elements

9 Concurrency Control Interleaving the operations of different transactions can lead to anomalies Canonical problems –Lost Update –Dirty Read –Unrepeatable Read

10 Lost Update T1, T2: deposit on account ‘acc1’ Changes of T2 are lost "Schedule" TransactionsState T1:T2:acc1 read(acc1)20 acc1 := acc1 + 10read(acc1)20 acc1 := acc write(acc1)40 commit write(acc1)30 commit R 1 (acc1)R 2 (acc1)W 2 (acc1)W 1 (acc1)

11 Dirty Read T1: two deposits on account ‘acc1’, T2: sum of all accounts T2 sees dirty data of T1 "Schedule" Transactions State T1:T2:acc1sum read(acc1)200 acc1 := acc write(acc1)... read(acc1)30 sum := sum + acc1 write(sum)30 acc1 := acc commit write(acc1)40 commit R 1 (acc1)R 2 (acc1)W 2 (sum)W 1 (acc1)

12 Unrepeatable Read T1: multiple read from account ‘acc1’, T2: deposit account ‘acc1’ T2 reads different values for acc1 "Schedule" Transactions State T1:T2:acc1 read(acc1)20 acc1 := acc write(acc1)40 commit read(acc1) sum := sum + acc1 write(sum)40 commit R 1 (acc1)W 2 (acc1)R 1 (acc1)R 2 (acc1)W 1 (sum)

13 Schedules Schedule = an interleaving of actions (read/write) from a set of transactions, where the actions of any single transaction are in the original order Complete Schedule = add commit or abort at end

14 Complete Schedule Transactions T1:T2: read(acc1) acc1 := acc write(acc1) commit read(acc1) sum := sum + acc1 write(sum) commit Schedule read1(acc1) read2(acc1) write2(acc1) commit2 read1(acc1) write1(sum) commit1 Initial State of DB + Schedule → Final State of DB

15 Serial Schedule One transaction at a time, no interleaving Final state consistent (if transactions are) Different serial schedules give different final states T1:T2: read(acc1) acc1 := acc write(acc1) commit read(acc1) sum := sum + acc1 write(sum) commit

16 Serializable Schedule Schedule with interleaved transactions that produces the same result as some serial schedule "Good" schedules Canonical examples before were non-serializable schedules

17 Checking Serializability Idea: which actions can be swapped in a schedule? The following cannot be swapped without changing the result (conflict) –Actions within the same transaction –Actions in different transactions on the same object if at least one action is a write operation Try to transform into serial schedule by swapping: then serializable

18 Conflicts Conflicting actions: pairs of actions on same object from different transactions where at least one is write Two schedules are conflict-equivalent if they have the same conflicts A schedule is conflict-serializable if it is conflict-equivalent to a serial schedule

19 Example W 1 (x) W 1 (y) W 1 (z) R 2 (x) W 2 (y) R 3 (z) W 3 (y) W 3 (z) T1T1 T2T2 T3T3 conflict S ser R 2 (x) W 2 (y)W 3 (y) R 3 (z) W 3 (y) W 3 (z) conflict W 1 (x) W 1 (y) W 1 (z) R 2 (x) W 2 (y) R 3 (z) W 3 (y) W 3 (z) T1T1 T2T2 T3T3 S conf R 2 (x) W 2 (y)W 3 (y) R 3 (z) W 3 (y) W 3 (z) serial schedule same conflicts, thus conflict-equivalent conflict-serializable

20 Serializability Graph Node for each transaction T i Edge from T i to T j if there is an action of T i that precedes and “conflicts” with an action of T j Theorem: A schedule is conflict serializable iff its Serializability Graph is acyclic.

21 Example conflict W 1 (x) W 1 (y) W 1 (z) R 2 (x) W 2 (y) R 3 (z) W 3 (y) W 3 (z) T1T1 T2T2 T3T3 S conf R 2 (x) W 2 (y)W 3 (y) R 3 (z) W 3 (y) W 3 (z) T1T1 T2T2 T3T3 serializability graph

22 Checking Serializability optimistic: validate serializability after transaction is executed using the serializability graph, otherwise abort transactions –possibly many aborts pessimistic: make sure that never a non- serializable schedule occurs while transaction is executed –locking

23 Locking Transactions obtain locks on objects x –S-locks (shared) for read: slock(x) –X-locks (exclusive) for write: xlock(x) compatibility of locks -SX -Ok S X lock requested lock held

24 2Phase Locking (2PL) before accessing an object a lock is acquired locks of concurrent transactions must be compatible a transaction can acquire only one lock per object at end of transaction all locks have to be released Locks can be released only if no further locks are required

25 2PL Theorem 2: 2PL ensures that the serializability graph of the schedule is acyclic –Guarantees conflict serializability time #locks

26 Strict 2PL Hold all locks until end of transaction –avoids "domino effect": T1 releases locks, T2 reads released objects, T1 aborts –when are no more locks required? –required for recovery (see next week) BOTEOT time #locks

27 Deadlocks 2PL can lead to deadlocks –Different transactions wait for each other to release locks Represent the waiting relationship as waiting graph –Directed edge from T i to T j if T i waits for T i Transactions T1:T2: xlock(acc1) write(acc1) xlock(acc2) write(acc2) xlock(acc2) xlock(acc1) T1T2 waiting graph

28 Resolving Deadlocks 2PL cannot avoid deadlocks If the waiting graph contains cycles –abort one of the transactions (e.g. younger one) T1T2

29 The Phantom Problem T1 locks all pages containing professor records in faculty I&C, and finds oldest (say, age=59). T2 inserts a new professor; faculty I&C, age=65. T2 deletes oldest professor in faculty STI (say, age=73), and commits. T1 now locks all pages containing professors in faculty STI, and finds oldest (say, age= 61)

30 Analysis of Phantom Problem Schedule is not serial! Problem: T1 assumes it has locked ALL professors in faculty I&C –only true if no new ones are inserted –2PL applied to data objects does not work Solution –choose the right locks (e.g. use a predicate) –not a problem with 2PL per se

31 Transactions in SQL 92 Start Transaction –No explicit statement (though START TRANSACTION can be used) –Implicitly started by a SQL statement End Transaction –By COMMIT or ROLLBACK –Automatically with AUTOCOMMIT when SQL statement completed

32 Setting Properties of Transactions SET TRANSACTION [READ ONLY | READ WRITE] ISOLATION LEVEL [READ UNCOMMITTED | SERIALIZABLE | REPEATABLE READ | READ COMMITTED]

33 Isolation Levels Read Uncommitted –Can see uncommitted changes of other transactions –Dirty Read, Unrepeatable Read –Recommended only for statistical functions Read Committed –Can see committed changes of other transactions –No Dirty read, but unrepeatable read possible –Acceptable for query/decision-support Repeatable Read –No dirty or unrepeatable read –May exhibit phantom phenomenon Serializable

34 Implementation of Isolation Levels Read Uncommitted –no S-locks Read Committed –S-locks can be released anytime –X-locks strict 2PL Repeatable Read –strict 2PL on all data Serializable –strict 2PL on all data and indices