Presentation is loading. Please wait.

Presentation is loading. Please wait.

C. Faloutsos Concurrency control - deadlocks

Similar presentations


Presentation on theme: "C. Faloutsos Concurrency control - deadlocks"— Presentation transcript:

1 C. Faloutsos Concurrency control - deadlocks
Carnegie Mellon Univ. Dept. of Computer Science Database Applications C. Faloutsos Concurrency control - deadlocks

2 General Overview Relational model - SQL
Functional Dependencies & Normalization Physical Design &Indexing Query optimization Transaction processing concurrency control recovery C. Faloutsos

3 Transactions - dfn = unit of work, eg. Atomicity (all or none)
move $10 from savings to checking Atomicity (all or none) Consistency Isolation (as if alone) Durability recovery concurrency control C. Faloutsos

4 Isolation - concurrency control
serializability <-> correctness precedence graph automatically correct interleavings: locks + protocol (2PL, 2PLC) but: deadlocks! C. Faloutsos

5 Deadlocks detection handling (prevention) C. Faloutsos

6 Deadlock detection T1 T2 lock manager L(A) Yes L(B) Yes ... L(B) No
time T T lock manager L(A) Yes L(B) Yes ... L(B) No <waits> L(A) No DEADLOCK C. Faloutsos

7 Algo for deadlock detection?
C. Faloutsos

8 Algo for deadlock detection?
wait-for graph: nodes -> transactions arcs -> Tsource waits for Tsink if cycle, then deadlock! C. Faloutsos

9 Eg: time for ‘B’ T1 T2 ‘A’ ‘B’ for ‘A’ T1 T2 lock manager L(A) Yes
L(B) Yes ... L(B) No <waits> L(A) No for ‘B’ T1 T2 ‘A’ ‘B’ for ‘A’ C. Faloutsos

10 Another example is there a deadlock? if yes, which xacts are involved?
C. Faloutsos

11 Another example now, is there a deadlock?
if yes, which xacts are involved? T1 T2 T3 T4 C. Faloutsos

12 Deadlock detection how often should we run the algo?
how many transactions are typically involved? C. Faloutsos

13 Deadlock handling Q: what to do? T1 T2 T3 T4 C. Faloutsos

14 Deadlock handling Q0: what to do? A: select a ‘victim’ & ‘rollback’
Q1: which/how to choose? T1 T2 T3 T4 C. Faloutsos

15 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 T3 T4 C. Faloutsos

16 Deadlock handling Q2: How far to rollback? A2.1: completely
A2.2: minimally Q3: Starvation?? T1 T2 T3 T4 C. Faloutsos

17 Deadlock handling Q3: Starvation??
A3.1: include #rollbacks in victim selection criterion. T1 T2 T3 T4 C. Faloutsos

18 SQL statement usually, conc. control is transparent to the user, but
LOCK <table-name> [EXCLUSIVE|SHARED] C. Faloutsos

19 Concurrency control - conclusions
serializability <-> correctness automatically correct interleavings: locks + protocol (2PL, 2PLC, ...) deadlock detection + handling C. Faloutsos

20 Quiz: is there a serial schedule (= interleaving) that is not serializable? is there a serializable schedule that is not serial? can 2PL produce a non-serializable schedule? (assume no deadlocks) C. Faloutsos

21 Quiz - cont’d is there a serializable schedule that can not be produced by 2PL? a xact obeys 2PL - can it be involved in a non-serializable schedule? all xacts obey 2PL - can they end up in a deadlock? C. Faloutsos

22 serializable schedules serializable schedules
Quiz - hints: Q: 2PLC?? serializable schedules serializable schedules 2PL schedules serial sch’s C. Faloutsos

23 serializable schedules serializable schedules
Quiz - hints: 2PL schedules serializable schedules serializable schedules 2PLC serial sch’s C. Faloutsos


Download ppt "C. Faloutsos Concurrency control - deadlocks"

Similar presentations


Ads by Google