Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College 3 Transactions 1 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Outline transactions - generalities concurrency control concurrency problems locking 2 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College 1 3 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Transactions – example Parts (P_id, P_name, Colour, Weight, Total_qty) Contracted (S_id, P_id, Qty) add a new contract for ‘S4’ for 200 pieces of ‘P1’ P_id P1 P2 … P_name gear pin … Colour Weight white black … S_id S1 S1 S2 S3 S3 P_id P1 P3 P1 P1 P2 1.233 0.1 … Total_qty 1150 10000 … Qty 500 200 150 500 1000 4 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Transaction logical unit of work sequence of database operations transforms a consistent state of a db into another consistent state between operations the db can be inconsistent 5 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Transaction Processing do not allow for one operation to be performed and the other ones not principle of transaction processing support if some operations are executed and then a failure occurs (before the planned termination) then those operations will be undone 6 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Transaction Manager COMMIT TRANSACTION • a logical unit of work was successfully completed • all the updates can be made permanent ROLLBACK TRANSACTION • unsuccessful end of transaction • all the attempted updates must be rolled back they are issued from applications 7 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Example execute(BEGIN TRANSACTION); execute(INSERT (‘S4’, ‘P1’, 200) INTO Contracted); if(/*any error occurred*/) then go to undo; execute( UPDATE Parts WHERE P_id =‘P1’ SET Total_qty = Total_qty + 200); if(/*any error occurred*/) then go to undo; execute(COMMIT TRANSACTION); go to finish; undo : execute(ROLLBACK TRANSACTION); finish : return; 8 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College SQL Support COMMIT and ROLLBACK No BEGIN TRANSACTION (in SQL2 and Oracle) all data definition and data manipulation statements are transaction initiating PostgreSQL provides BEGIN [TRANSACTION] 9 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College At the COMMIT point all updates, since the previous commit, are made permanent (will not be undone) all database positioning and all tuple locks are lost 10 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College ACID Properties of Transactions Atomicity • all or nothing Consistency • preserve database consistency Isolation • transactions are isolated from one another Durability • committed transaction updates are performed 11 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College 2 12 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Concurrency more than one transaction have access to data simultaneously 13 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Three concurrency problems the lost update the uncommitted dependency the inconsistent analysis 14 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College The lost update problem Transaction A time RETRIEVE (t) t1 t2 UPDATE (t) TO (t1) Transaction B RETRIEVE (t) t3 t4 UPDATE (t) TO (t2) 15 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College The uncommitted dependency problem Transaction A RETRIEVE (t) time Transaction B t1 UPDATE (t) t2 t3 ROLLBACK 16 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College The uncommitted dependency problem Transaction A UPDATE p time Transaction B t1 UPDATE p t2 t3 ROLLBACK 17 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College The inconsistent analysis problem Transaction A BEGIN TRANSACTION RETRIEVE (SugarA) [sum = 500] RETRIEVE (SugarB) [sum = 700] RETRIEVE (SugarC) [sum = 800] end result: sum = 800 time t0 t1 t2 t3 t4 t5 Transaction B BEGIN TRANSACTION RETRIEVE (SugarA) UPDATE SugarA TO 0 COMMIT t6 18 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Issue all these problems may lead to an inconsistent (incorrect) database is there a criterion based on which to decide weather a certain set of transaction, if executed concurrently, leads to an incorrect database or not? 19 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Serialisability criterion for correctness for concurrent execution of transactions: the interleaved execution of a set of transactions is guaranteed to be correct if it is serialisable correct the DB is not in an inconsistent state serialisability: an interleaved execution has the same result as some serial execution 20 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Serialisable schedule Interleaved schedule for transaction 1, 2 and 3 time Transaction 1 Transaction 2 Transaction 3 t1 op11 t2 t3 t4 op12 op21 t5 t6 op22 op23 t7 op13 op31 t8 t9 op14 op32 Equivalent serial schedule (Transaction 1 then Transaction 3 then Transaction 2) time Transaction 1 Transaction 2 Transaction 3 t1 op11 t2 op12 t3 op13 t4 op14 t5 op31 t6 t7 t8 t9 op21 op22 op23 op32 21 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Notes the schedules described in the concurrency problems examples were not serialisable neither A-then-B nor B-then-A two different interleaved transactions might produce different results, yet both can be considered correct 22 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College 3 23 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Two-phase locking theorem if all transactions obey the two phase locking protocol then all possible interleaved schedules are serialisable • i.e., they can be executed concurrently, because they will leave the database in a consistent state 24 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Two-phase locking protocol 1.before operating on an object a transaction must acquire a lock on that object 2.after releasing a lock a transaction must not go on to acquire any more locks • phase1 (growing): acquire locks (not simultaneously) • phase2 (shrinking): release locks (no further acquisitions allowed) • usually locks are released by the COMMIT or ROLLBACK operation in practice • trade-off between “release lock early and acquire more locks” and the “two phase locking protocol” 25 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Locking usually, applicable to tuples types • X, exclusive - write • S, shared - read rules • compatibility matrix 26 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Compatibility matrix existing lock on t X S none X refused refused granted S refused granted granted - - - request for lock on t no request 27 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Data access protocol retrieve tuple acquire S lock (on that tuple) update tuple acquire X lock (on that tuple), or promote the S lock it holds (if it holds one) • implicit request if request for lock is denied transaction goes in wait state until the lock is released • livelock - first come first served X locks are held until end of transaction (COMMIT or ROLLBACK) (two phase locking protocol) 28 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College The uncommitted dependency problem: OK Transaction A RETRIEVE (t) (request X lock on t) wait wait resume RETRIEVE (t) (acquire S lock on t) time Transaction B t1 UPDATE (t) (X lock on t) t2 t3 COMMIT / ROLL.. (release X lock on t) t4 29 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College The lost update problem : dead-lock Transaction A RETRIEVE p (acquire S lock on p) time t1 t2 UPDATE p (request X lock on p denied) wait wait wait Transaction B RETRIEVE p (acquire S lock on p) t3 t4 UPDATE p (request X lock on p denied) wait 30 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Locking solves the three basic problems of concurrency theorem • if all the transactions of a set S of transactions comply with the two phase locking protocol, then all their possible interleaved executions (schedules) are serialisable • however, not all schedules produce the same result – think of examples introduces another problem: deadlock 31 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Deadlock two or more transaction are waiting for the other to release a lock • in practice: usually two transactions detect a deadlock • cycle in the wait-for graph, or • timing mechanism break a deadlock • rollback a victim transaction • what happens to the victim? 32 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Further topics • two phase locking protocol - not feasible in practice (not efficient) levels of isolation • degree of interference intent locking • locking granularity SQL support • no explicit locking facilities • it supports different isolation levels (with “locking behind the scenes”) 33 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College – 34 Term 2, 2004, Lecture 6, Transactions Marian Ursu, Department of Computing, Goldsmiths College Conclusions transactions concurrency concurrency problems locking 35