+ All Categories
Home > Documents > CS 245: Database System Principles Notes 10: More TP

CS 245: Database System Principles Notes 10: More TP

Date post: 14-Mar-2016
Category:
Upload: remedios-willis
View: 30 times
Download: 1 times
Share this document with a friend
Description:
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) - PowerPoint PPT Presentation
33
PA152 Notes 10 1 CS 245: Database System Principles Notes 10: More TP Hector Garcia-Molina Pavel Rychlý
Transcript
Page 1: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 1

CS 245: Database System Principles

Notes 10: More TP

Hector Garcia-MolinaPavel Rychlý

Page 2: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 2

Další oblasti souběžného zpracování• kaskádový rollback, obnovitelný

rozvrh• uváznutí

– prevence– detekce

Page 3: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 3

Příklad: Tj Ti

Wj(A) ri(A) Commit Ti

Abort Tj

Řízení souběžného zpracování a obnova

……

… ……

… Kaskádový rollback (raději ne!)

Page 4: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 4

• Rozvrh je konfliktně serializovatelný

• Tj Ti

• ale ne obnovitelný

Page 5: CS 245: Database System Principles Notes 10: More TP

PA152 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)

Page 6: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 6

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

Page 7: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 7

......

......

Zpět k příkladu:

Tj Ti

Wj(A)ri(A)

Ci může být tady commit?

Page 8: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 8

DefiniceTi čte z Tj v S (Tj S Ti) pokud

(1) wj(A) <S ri(A)

(2) aj <S ri(A) (< : není před)(3) If wj(A) <S wk(A) <S ri(A) then

ak <S ri(A)

Page 9: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 9

Definice

Rozvrh S je obnovitelný pokudkdykoliv Tj S Ti a j i a Ci Stak Cj <S Ci

Page 10: CS 245: Database System Principles Notes 10: More TP

PA152 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íc právě jedna akce Ci nebo Ai na transakci

Page 11: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 11

Jak zajistit obnovitelné rozvrhy?

Page 12: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 12

striktní 2PL: zámky pro zápis držíme až do commit Tj Ti

Wj(A)

Cjuj(A)

ri(A)

......

...

......

......

Page 13: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 13

Kontroly (validation) beze změny!

Page 14: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 14

• S je obnovitelný pokud má každá transakce commit až po dokončení (commit) všech transakcí, ze kterých čte.

• S zamezuje kaskádovému rollback pokud každá transakce čte hodnoty pouze dokončených transakcí.

Page 15: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 15

• Rozvrh S je striktní pokud každá transakce čte a zapisuje hodnoty pouze dokončených transakcí.

Avoids cascading rollback

RC

ACR

ST SERIAL

Page 16: CS 245: Database System Principles Notes 10: More TP

PA152 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ámebez čtení

Page 17: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 17

Uváznutí (Deadlocks)• detekce

– graf čekání• prevence

– upořádání zdrojů– časový limit– čekej-zemři– Wound-wait

Page 18: CS 245: Database System Principles Notes 10: More TP

PA152 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

T1

T3

T2

T6

T5

T4T7

Page 19: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 19

Uspořádání zdrojů

• uspořádáme všechny elementy A1, A2, …, An

• transakceT může zamknout Ai po Aj pouze pokud i > j

Problém : žádosti o zámky jsou nepřirozené

Page 20: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 20

Časový limit• Pokud transakce čeká více než L

sec., zrušit!

• jednoduché schéma• těžká volba L

Page 21: CS 245: Database System Principles Notes 10: More TP

PA152 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)

Page 22: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 22

T1(ts =10)

T2(ts =20)

T3 (ts =25)

wait

wait

Příklad:

wait?

Page 23: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 23

T1(ts =22)

T2(ts =20)

T3 (ts =25)

wait(A)

Druhý příklad:

žádá A: čeká na T2 nebo T3?

Pozn.: ts mezi20 a 25.

Page 24: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 24

T1(ts =22)

T2(ts =20)

T3 (ts =25)

wait(A)

Druhý příklad (pokračování):

wait(A)

Jedna možnost: T1 čeká pouze na T3.Jakmile T2 získá zámek, T1 musí zemřít!

Page 25: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 25

T1(ts =22)

T2(ts =20)

T3 (ts =25)

wait(A)

Druhý příklad (pokračování):

wait(A)

wait(A)

Jiná možnost: T1 získá zámek na A až po dokončeníT2i T3, tedy T1 čeká na T2i T3 T1 umírá okamžitě!

Page 26: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 26

T1(ts =22)

T2(ts =20)

T3 (ts =25)

wait(A)

Druhý příklad (pokračování):

wait(A)

wait(A)

Další možnost: T1 má být před T2, tedy T1 čeká pouze na T3; T2 tedy čeká na T3 i T1... T2 může strádat?

redundantní hrana

Page 27: CS 245: Database System Principles Notes 10: More TP

PA152 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ámek pro Ti

Page 28: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 28

T1(ts =25)

T2(ts =20)

T3 (ts =10)

wait

wait

Příklad:

wait

Page 29: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 29

T1(ts =15)

T2(ts =20)

T3 (ts =10)

wait(A)

Druhý příklad:

requests A: wait for T2 or T3?

Pozn.: ts mezi10 a 20.

Page 30: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 30

T1(ts =15)

T2(ts =20)

T3 (ts =10)

wait(A)

Druhý příklad (pokračování):

wait(A)

Jedna možnost: T1 čeká pouze na T3. Ale jakmile T2 dostane zámek, T1 čeká na T2 a zraňuje T2.

Page 31: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 31

T1(ts =15)

T2(ts =20)

T3 (ts =10)

wait(A)

Druhý příklad (pokračování):

wait(A)

wait(A)

Jiná možnost: T1 získá zámek na A až po dokončeníT2i T3, tedy T1 čeká na T2i T3 T2 zraní okamžitě!

Page 32: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 32

T1(ts =15)

T2(ts =20)

T3 (ts =10)

wait(A)

Druhý příklad (pokračování):

wait(A)

wait(A)

Jiná možnost: T1 má být před T2, tedy T1 čeká pouze na T3; T2 tedy čeká na T3 a T1... T2 otočen!

Page 33: CS 245: Database System Principles Notes 10: More TP

PA152 Notes 10 33

Uživatelské příkazy

Mnoho různých variant, obecně• Begin_work• Commit_work• Abort_work


Recommended