170 likes | 275 Views
Temple University – CIS Dept. CIS616– Principles of Data Management . V. Megalooikonomou Concurrency Control – Deadlocks (based on slides by C. Faloutsos at CMU and on notes by Silberchatz,Korth, and Sudarshan). Isolation - concurrency control. serializability <-> correctness
E N D
Temple University – CIS Dept.CIS616– Principles of Data Management V. Megalooikonomou Concurrency Control – Deadlocks (based on slides by C. Faloutsos at CMU and on notes by Silberchatz,Korth, and Sudarshan)
Isolation - concurrency control • serializability <-> correctness • precedence graph • automatically correct interleavings: • locks + protocol (2PL, 2PLC) • but: deadlocks!
Deadlocks • detection • handling • (prevention)
Deadlock detection T1 T2 lock manager L(A) Yes L(B) Yes ... L(B) No <waits> L(A) No time DEADLOCK
Algorithm for deadlock detection? • wait-for graph: • nodes transactions • arcs Tsource waits for Tsink • if cycle, then deadlock! • Must invoke a deadlock-detection algorithm periodically to look for cycles
Example T1 T2 lock manager L(A) Yes L(B) Yes ... L(B) No <waits> L(A) No time for ‘B’ T1 T2 ‘A’ ‘B’ for ‘A’
T1 T2 T4 T3 Another example • is there a deadlock? • if yes, which xacts are involved?
T1 T2 T4 T3 Another example • now, is there a deadlock? • if yes, which xacts are involved?
Deadlock detection • how often should we run the algorithm? • how many transactions are typically involved?
T1 T2 T4 T3 Deadlock handling • Q: what to do?
T1 T2 T4 T3 Deadlock handling • Q0: what to do? • A: select a ‘victim’ & ‘rollback’ • Q1: which/how to choose?
T1 T2 T4 T3 Deadlock handling • Q1: which/how to choose? • A1.1: by age • A1.2: by progress • A1.3: by # items locked already... • A1.4: by # xacts to rollback • Q2: How far to rollback?
T1 T2 T4 T3 Deadlock handling • Q2: How far to rollback? • A2.1: completely • A2.2: minimally • Q3: Starvation??
T1 T2 T4 T3 Deadlock handling • Q3: Starvation?? • A3.1: include #rollbacks in victim selection criterion
SQL statement • usually, conc. control is transparent to the user, but • LOCK <table-name> [EXCLUSIVE|SHARED]
Concurrency control - conclusions • serializability <-> correctness • automatically correct interleavings: • locks + protocol (2PL, 2PLC, ...) • deadlock detection + handling
Conclusions 2PL schedules serializable schedules serializable schedules 2PLC serial sch’s