CS 245: Database System Principles Notes 10: More TP

Slides:



Advertisements
Similar presentations
1 Concurrency Control III Dead Lock Time Stamp Ordering Validation Scheme.
Advertisements

Database Systems (資料庫系統)
More About Transaction Management Chapter 10. Contents Transactions that Read Uncommitted Data View Serializability Resolving Deadlocks Distributed Databases.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Transaction Management Overview Chapter 16.
Wait-die Transactions given a timestamp when they arrive …. ts(T i ) T i can only wait for T j if ts(T i )< ts(T j )...else die T 1 (ts =10) T 2 (ts =20)
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.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Concurrency Control Chapter 17 Sections
Lecture 11 Recoverability. 2 Serializability identifies schedules that maintain database consistency, assuming no transaction fails. Could also examine.
1 ICS 214B: Transaction Processing and Distributed Data Management Lecture 6: Cascading Rollbacks, Deadlocks, and Long Transactions Professor Chen Li.
CS4432: Database Systems II Lecture #26 Concurrency Control and Recovery Professor Elke A. Rundensteiner.
1 More Transaction Management Concurrency control and recovery Resolving deadlocks Logical logging Source: slides by Hector Garcia-Molina.
Database Systems, 8 th Edition Concurrency Control with Time Stamping Methods Assigns global unique time stamp to each transaction Produces explicit.
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.
Recovery 10/18/05. Implementing atomicity Note, when a transaction commits, the portion of the system implementing durability ensures the transaction’s.
CS 245Notes 101 CS 245: Database System Principles Notes 10: More TP Hector Garcia-Molina.
1 Concurrency Control and Recovery Module 6, Lecture 1.
Transaction Management
Cs4432concurrency control1 CS4432: Database Systems II Concurrency Control with Recovery.
CS4432transaction management1 CS4432: Database Systems II Lecture #23 Transaction Management Professor Elke A. Rundensteiner.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Transaction Management and Concurrency Control.
DBMS2001Notes 9: Transaction Processing1 Principles of Database Management Systems 9: More on Transaction Processing Pekka Kilpeläinen (Partially based.
1 Transaction Management Overview Chapter Transactions  Concurrent execution of user programs is essential for good DBMS performance.  Because.
1 Transaction Management Overview Chapter Transactions  A transaction is the DBMS’s abstract view of a user program: a sequence of reads and writes.
Database Management Systems, 2 nd Edition. R. Ramakrishnan and J. Gehrke1 Transaction Management Overview Chapter 18.
Database Management Systems, 2 nd Edition. R. Ramakrishnan and J. Gehrke1 Transaction Management Overview Lecture 21 Ramakrishnan - Chapter 18.
CS 245Notes 101 CS 245: Database System Principles Notes 10: More TP Hector Garcia-Molina.
Database Systems/COMP4910/Spring05/Melikyan1 Transaction Management Overview Unit 2 Chapter 16.
1 Transaction Management Overview Chapter Transactions  Concurrent execution of user programs is essential for good DBMS performance.  Because.
TRANSACTION MANAGEMENT R.SARAVANAKUAMR. S.NAVEEN..
Transactions. What is it? Transaction - a logical unit of database processing Motivation - want consistent change of state in data Transactions developed.
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.
Transaction Management and Recovery, 2 nd Edition. R. Ramakrishnan and J. Gehrke1 Transaction Management Overview Chapter 18.
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:
DBMS Deadlock.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Transaction Management Overview Chapter 16.
1 Concurrency Control. 2 Why Have Concurrent Processes? v Better transaction throughput, response time v Done via better utilization of resources: –While.

Recovery Control (Chapter 17)
Transaction Management
CS 245: Database System Principles Notes 10: More TP
Transaction Management Overview
CS422 Principles of Database Systems Concurrency Control
Concurrency Control.
Part- A Transaction Management
Transaction Management Overview
Transaction Management
Transaction Management Transparencies
Transaction Management Overview
Transaction Management
Transaction Management Overview
March 9th – Transactions
Concurrency Control Chapter 17
CS 245: Database System Principles Notes 10: More TP
CS162 Operating Systems and Systems Programming Review (II)
Chapter 15 : Concurrency Control
Concurrency Control Chapter 17
Transaction Management
Transaction Management Overview
Database Systems (資料庫系統)
Database Systems (資料庫系統)
Transaction Management Overview
Presentation transcript:

CS 245: Database System Principles Notes 10: More TP Hector Garcia-Molina CS 245 Notes 10

Sections to Skim: Chapter 8: none (read all sections) Chapter 9: maybe 10.2 (decide later...) Chapter 11: none (read all sections) CS 245 Notes 10

Chapter 10 More on transaction processing Topics: Cascading rollback, recoverable schedule Deadlocks Prevention Detection View serializability Distributed transactions Long transactions (nested, compensation) CS 245 Notes 10

Concurrency control & recovery Example: Tj Ti Wj(A) ri(A) Commit Ti Abort Tj … … … … … …  Non-Persistent Commit (Bad!) CS 245 Notes 10

Concurrency control & recovery Example: Tj Ti Wj(A) ri(A) Commit Ti Abort Tj … … … … … … avoided by recoverable schedules  Non-Persistent Commit (Bad!) CS 245 Notes 10

Concurrency control & recovery Example: Tj Ti Wj(A) ri(A) wi(B) Abort Tj [Commit Ti] … … … … … …  Cascading rollback (Bad!) CS 245 Notes 10

Concurrency control & recovery Example: Tj Ti Wj(A) ri(A) wi(B) Abort Tj [Commit Ti] … … … … … … avoided by avoids-cascading- rollback (ACR) schedules  Cascading rollback (Bad!) CS 245 Notes 10

Schedule is conflict serializable Tj Ti But not recoverable CS 245 Notes 10

Need to make “final’ decision for each transaction: commit decision - system guarantees transaction will or has completed, no matter what abort decision - system guarantees transaction will or has been rolled back (has no effect) CS 245 Notes 10

To model this, two new actions: Ci - transaction Ti commits Ai - transaction Ti aborts CS 245 Notes 10

Back to example: Tj Ti Wj(A) ri(A) ... ... Ci  can we commit here? CS 245 Notes 10

Definition Ti reads from Tj in S (Tj S Ti) if (1) wj(A) <S ri(A) (2) aj <S ri(A) (< : does not precede) (3) If wj(A) <S wk(A) <S ri(A) then ak <S ri(A) CS 245 Notes 10

Definition Schedule S is recoverable if whenever Tj S Ti and j  i and Ci  S then Cj <S Ci CS 245 Notes 10

Note: in transactions, reads and writes precede commit or abort  If Ci  Ti, then ri(A) < Ci wi(A) < Ci  If Ai  Ti, then ri(A) < Ai wi(A) < Ai Also, one of Ci, Ai per transaction CS 245 Notes 10

How to achieve recoverable schedules? CS 245 Notes 10

 With 2PL, hold write locks to commit (strict 2PL) Tj Ti Wj(A) Cj uj(A) ri(A) ... ... ... ... ... ... ... CS 245 Notes 10

 With validation, no change! CS 245 Notes 10

S is recoverable if each transaction commits only after all transactions from which it read have committed. S avoids cascading rollback if each transaction may read only those values written by committed transactions. CS 245 Notes 10

Avoids cascading rollback S is strict if each transaction may read and write only items previously written by committed transactions. RC Avoids cascading rollback ST SERIAL ACR CS 245 Notes 10

Where are serializable schedules? RC Avoids cascading rollback ST SERIAL ACR CS 245 Notes 10

Examples Recoverable: Avoids Cascading Rollback: Strict: w1(A) w1(B) w2(A) r2(B) c1 c2 Avoids Cascading Rollback: w1(A) w1(B) w2(A) c1 r2(B) c2 Strict: w1(A) w1(B) c1 w2(A) r2(B) c2 Assumes w2(A) is done without reading CS 245 Notes 10

Deadlocks Detection Prevention Wait-for graph Resource ordering Timeout Wait-die Wound-wait CS 245 Notes 10

Deadlock Detection Build Wait-For graph Use lock table structures Build incrementally or periodically When cycle found, rollback victim T5 T2 T1 T7 T4 T6 T3 CS 245 Notes 10

Resource Ordering Order all elements A1, A2, …, An A transaction T can lock Ai after Aj only if i > j Problem : Ordered lock requests not realistic in most cases CS 245 Notes 10

Timeout If transaction waits more than L sec., roll it back! Simple scheme Hard to select L CS 245 Notes 10

Wait-die Transactions given a timestamp when they arrive …. ts(Ti) Ti can only wait for Tj if ts(Ti)< ts(Tj) ...else die CS 245 Notes 10

Example: T1 (ts =10) T2 (ts =20) T3 (ts =25) wait? wait wait CS 245 Notes 10

Starvation with Wait-Die When transaction dies, re-try later with what timestamp? original timestamp new timestamp (time of re-submit) CS 245 Notes 10

Starvation with Wait-Die Resubmit with original timestamp Guarantees no starvation Transaction with oldest ts never dies A transaction that dies will eventually have oldest ts and will complete... CS 245 Notes 10

Second Example: T1 (ts =22) T2 (ts =20) T3 (ts =25) requests A: wait for T2 or T3? Note: ts between 20 and 25. wait(A) CS 245 Notes 10

Second Example (continued): One option: T1 waits just for T3, transaction holding lock. But when T2 gets lock, T1 will have to die! T1 (ts =22) T2 (ts =20) T3 (ts =25) wait(A) wait(A) CS 245 Notes 10

Second Example (continued): Another option: T1 only gets A lock after T2, T3 complete, so T1 waits for both T2, T3  T1 dies right away! T1 (ts =22) T2 (ts =20) T3 (ts =25) wait(A) wait(A) wait(A) CS 245 Notes 10

Second Example (continued): Yet another option: T1 preempts T2, so T1 only waits for T3; T2 then waits for T3 and T1...  T2 may starve? T1 (ts =22) T2 (ts =20) T3 (ts =25) wait(A) wait(A) wait(A) redundant arc CS 245 Notes 10

Wound-wait Transactions given a timestamp when they arrive … ts(Ti) Ti wounds Tj if ts(Ti)< ts(Tj) else Ti waits “Wound”: Tj rolls back and gives lock to Ti CS 245 Notes 10

Example: T1 (ts =25) T2 (ts =20) T3 (ts =10) wait wait wait CS 245 Notes 10

Starvation with Wound-Wait When transaction dies, re-try later with what timestamp? original timestamp new timestamp (time of re-submit) CS 245 Notes 10

Second Example: T1 (ts =15) T2 (ts =20) T3 (ts =10) requests A: wait for T2 or T3? Note: ts between 10 and 20. wait(A) CS 245 Notes 10

Second Example (continued): One option: T1 waits just for T3, transaction holding lock. But when T2 gets lock, T1 waits for T2 and wounds T2. T1 (ts =15) T2 (ts =20) T3 (ts =10) wait(A) wait(A) CS 245 Notes 10

Second Example (continued): Another option: T1 only gets A lock after T2, T3 complete, so T1 waits for both T2, T3  T2 wounded right away! T1 (ts =15) T2 (ts =20) T3 (ts =10) wait(A) wait(A) wait(A) CS 245 Notes 10

Second Example (continued): Yet another option: T1 preempts T2, so T1 only waits for T3; T2 then waits for T3 and T1...  T2 is spared! T1 (ts =15) T2 (ts =20) T3 (ts =10) wait(A) wait(A) wait(A) CS 245 Notes 10

User/Program commands Lots of variations, but in general Begin_work Commit_work Abort_work CS 245 Notes 10

Nested transactions User program: Begin_work; ... If results_ok, then commit work else abort_work ... ... ... CS 245 Notes 10

Nested transactions User program: Begin_work; else abort_work ... If results_ok, then commit work else {abort_work; try something else…} else abort_work ... ... ... CS 245 Notes 10

Parallel Nested Transactions T1: begin-work parallel: T11: begin_work commit_work T12: begin_work ... T1 T1 T11 T12 ... ... ... CS 245 Notes 10

What are we really locking? CS 245 Notes 10

Example: Ti ... Read record r1 Read record r1 do record ... locking Modify record r3 ... ... ... ... CS 245 Notes 10

But underneath: R1 R2 R3 record id If we lock all data involved in read of R1, we may prevent an update to R2 (which may require reorganization within block) record id R1 R2 R3 Disk pages CS 245 Notes 10

Solution: view DB at two levels Top level: record actions record locks undo/redo actions — logical e.g., Insert record(X,Y,Z) Redo: insert(X,Y,Z) Undo: delete CS 245 Notes 10

Low level: deal with physical details latch page during action (release at end of action) CS 245 Notes 10

e.g., Insert R3 Undo (delete R3) Note: undo does not return physical DB to original state; only same logical state e.g., Insert R3 Undo (delete R3) R1 R1 R1 R2 R2 R2 R3 CS 245 Notes 10

Logging Logical Actions Logical action typically span one block (physiological actions) Undo/redo log entry specifies undo/redo logical action Challenge: making actions idempotent Example (bad): redo insert  key inserted multiple times! CS 245 Notes 10

Solution: Add Log Sequence Number sem lsn=25 ... 3, v1 Log record: LSN=26 OP=insert(5,v2) into P ... sem lsn=26 ... 3, v1 5, v2 CS 245 Notes 10

Still Have a Problem! undo Del 4 T1 Del 4 T2 Ins 5 3, v1 3, v1 3, v1 Make log entry for undo lsn=27 lsn=24 ... lsn=25 ... lsn=26 ... 3, v1 lsn=?? ... 5, v3 4, v2 undo Del 4 3, v1 3, v1 3, v1 4, v2 5, v3 T1 Del 4 T2 Ins 5 CS 245 Notes 10

Compensation Log Records Log record to indicate undo (not redo) action performed Note: Compensation may not return page to exactly the initial state CS 245 Notes 10

At Recovery: Example Log: lsn=21 T1 a1 p1 lsn=27 T1 a2 p2 lsn=35 T1 ... ... ... ... CS 245 Notes 10

What to do with p2 (during T1 rollback)? If lsn(p2)<27 then ... ? If 27  lsn(p2) < 35 then ... ? If lsn(p2)  35 then ... ? Note: lsn(p2) is lsn of p copy on disk CS 245 Notes 10

Recovery Strategy [1] Reconstruct state at time of crash Find latest valid checkpoint, Ck, and let ac be its set of active transactions Scan log from Ck to end: For each log entry [lsn, page] do: if lsn(page) < lsn then redo action If log entry is start or commit, update ac CS 245 Notes 10

Recovery Strategy [2] Abort uncommitted transactions Set ac contains transactions to abort Scan log from end to Ck : For each log entry (not undo) of an ac transaction, undo action (making log entry) For ac transactions not fully aborted, read their log entries older than Ck and undo their actions CS 245 Notes 10

Example: What To Do After Crash Log: lsn=31 T1 a3-1 p3 lsn=21 T1 a1 p1 lsn=27 T1 a2 p2 lsn=29 T1 a3 p3 lsn=35 T1 a2-1 p2 chk pt ... ... ... ... ... ... CS 245 Notes 10

During Undo: Skip Undo’s Log: pointer to forward action lsn=27 T1 a2 p2 lsn=29 T1 a3 p3 lsn=31 T1 a3-1 p3 lsn=35 T1 a2-1 p2 lsn=21 T1 a1 p1 chk pt ... ... ... ... ... ... pointer to previous T1 action CS 245 Notes 10

Related idea: Sagas Long running activity: T1, T2, ... Tn Each step/trasnaction Ti has a compensating transaction Ti-1 Semantic atomicity: execute one of T1, T2, ... Tn T1, T2, ... Tn-1 T-1n-1, T-1n-2, ... T-11 T1, T2, ... Tn-2 T-1n-2, T-1n-3, ... T-11 T1, T-11 nothing ... CS 245 Notes 10

Summary Cascading rollback Recoverable schedule Deadlock Prevention Detectoin Nested transactions Multi-level view CS 245 Notes 10