1 / 33

CS 245: Database System Principles Notes 10: More TP

CS 245: Database System Principles Notes 10: More TP. Hector Garcia-Molina Pavel Rychl ý. Další oblasti souběžného zpracování. kaskádový rollback, obnovitelný rozvrh uváznutí prevence detekce. Řízení souběžného zpracování a obnova. …. …. Příklad: T j T i W j (A)

Download Presentation

CS 245: Database System Principles Notes 10: More TP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 245: Database System PrinciplesNotes 10: More TP Hector Garcia-Molina Pavel Rychlý Notes 10

  2. Další oblasti souběžného zpracování • kaskádový rollback, obnovitelný rozvrh • uváznutí • prevence • detekce Notes 10

  3. Řízení souběžného zpracování a obnova … … Příklad: Tj Ti Wj(A) ri(A) Commit Ti Abort Tj … … … … Kaskádový rollback (raději ne!) Notes 10

  4. Rozvrh je konfliktně serializovatelný • Tj Ti • ale ne obnovitelný Notes 10

  5. Pro každou transakci potřebujeme dělat konečné rozhodnutí: • commit - systém zajistí, že transakce je nebo bude dokončena • abort - systém zajistí, že transakce je nebo bude zrušena (nebude mít žádný efekt) Notes 10

  6. Přidáme další dvě akce: • Ci - commit Ti • Ai - abort Ti Notes 10

  7. Zpět k příkladu: Tj Ti Wj(A) ri(A) Cimůže být tady commit? ... ... ... ... Notes 10

  8. Definice Ti čte z Tj v S (Tj STi) pokud (1) wj(A)<S ri(A) (2) aj <S ri(A) (< : není před) (3) If wj(A)<Swk(A)<Sri(A) then ak <S ri(A) Notes 10

  9. Definice Rozvrh S jeobnovitelnýpokud kdykoliv TjS Ti a j  i a Ci  S tak Cj <S Ci Notes 10

  10. Poznámka: v transakcích jsou čtení i zápisy před commit nebo abort  If Ci  Ti, then ri(A) < Ci wi(A) < Ci  If Ai  Ti, then ri(A) < Ai wi(A) < Ai • a navícprávě jedna akce Ci nebo Ai na transakci Notes 10

  11. Jak zajistit obnovitelnérozvrhy? Notes 10

  12. striktní 2PL:zámky pro zápis držíme až do commit Tj Ti Wj(A) Cj uj(A) ri(A) ... ... ... ... ... ... ... Notes 10

  13.  Kontroly(validation) beze změny! Notes 10

  14. S jeobnovitelnýpokud má každá transakce commitaž po dokončení (commit) všech transakcí, ze kterých čte. • S zamezuje kaskádovému rollbackpokud každá transakcečte hodnoty pouze dokončených transakcí. Notes 10

  15. Rozvrh S jestriktní pokud každá transakcečte a zapisuje hodnoty pouze dokončených transakcí. RC Avoids cascading rollback ST SERIAL ACR Notes 10

  16. Příklady • Obnovitelný: • w1(A) w1(B) w2(A) r2(B) c1 c2 • Zamezuje kaskádovému Rollback: • w1(A) w1(B) w2(A) c1 r2(B) c2 • Striktní: • w1(A) w1(B) c1 w2(A) r2(B) c2 Předpokl. w2(A) děláme bez čtení Notes 10

  17. Uváznutí (Deadlocks) • detekce • graf čekání • prevence • upořádání zdrojů • časový limit • čekej-zemři • Wound-wait Notes 10

  18. Detekce uváznutí • vytváříme (inkrementálně nebo opakovaně) graf čekání • používáme zámky • pokud najdeme cyklus, rollback viníka T5 T2 T1 T7 T4 T6 T3 Notes 10

  19. Uspořádání zdrojů • uspořádáme všechny elementy A1, A2, …, An • transakceT může zamknout Aipo Ajpouze pokud i > j Problém : žádosti o zámky jsou nepřirozené Notes 10

  20. Časový limit • Pokud transakce čeká více než L sec.,zrušit! • jednoduché schéma • těžká volba L Notes 10

  21. Čekej-zemři • Transakce dostávají časovou známku ts(Ti) při svém startu • Ti může čekat na Tj pouze pokud ts(Ti)< ts(Tj)jinak umírá (je zrušena) Notes 10

  22. wait? Příklad: T1 (ts =10) T2 (ts =20) T3 (ts =25) wait wait Notes 10

  23. Druhýpříklad: žádá A: čeká na T2nebo T3? T1 (ts =22) T2 (ts =20) T3 (ts =25) Pozn.: ts mezi 20 a 25. wait(A) Notes 10

  24. Druhýpříklad (pokračování): Jedna možnost: T1čeká pouze na T3. Jakmile T2získá zámek, T1musí zemřít! T1 (ts =22) T2 (ts =20) T3 (ts =25) wait(A) wait(A) Notes 10

  25. Druhýpříklad (pokračování): Jiná možnost: T1získá zámek na A ažpo dokončení T2i T3, tedy T1čeká na T2i T3 T1umírá okamžitě! T1 (ts =22) T2 (ts =20) T3 (ts =25) wait(A) wait(A) wait(A) Notes 10

  26. Druhýpříklad (pokračování): Další možnost: T1má být před T2, tedy T1čeká pouze na T3; T2tedy čeká na T3i T1...  T2může strádat? T1 (ts =22) T2 (ts =20) T3 (ts =25) wait(A) wait(A) wait(A) redundantní hrana Notes 10

  27. zraň-čekej • Transakce dostávají časovou známku ts(Ti) při svém startu • Ti zraňuje Tj pokud ts(Ti)< ts(Tj)jinak čeká “zraň”: rollback na Tj a přiděl zámekproTi Notes 10

  28. wait Příklad: T1 (ts =25) T2 (ts =20) T3 (ts =10) wait wait Notes 10

  29. Druhýpříklad: requests A: wait for T2 or T3? T1 (ts =15) T2 (ts =20) T3 (ts =10) Pozn.: ts mezi 10 a 20. wait(A) Notes 10

  30. Druhýpříklad (pokračování): Jedna možnost: T1čeká pouze na T3. Alejakmile T2dostane zámek, T1čeká na T2 a zraňuje T2. T1 (ts =15) T2 (ts =20) T3 (ts =10) wait(A) wait(A) Notes 10

  31. Druhýpříklad (pokračování): Jiná možnost: T1získá zámek na A ažpo dokončení T2i T3, tedy T1čeká na T2i T3 T2 zraní okamžitě! T1 (ts =15) T2 (ts =20) T3 (ts =10) wait(A) wait(A) wait(A) Notes 10

  32. Druhýpříklad (pokračování): Jiná možnost: T1má být před T2, tedy T1čeká pouze na T3; T2tedy čeká na T3 a T1...  T2otočen! T1 (ts =15) T2 (ts =20) T3 (ts =10) wait(A) wait(A) wait(A) Notes 10

  33. Uživatelské příkazy Mnoho různých variant, obecně • Begin_work • Commit_work • Abort_work Notes 10

More Related