Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

PA152Notes 091 CS 245: Database System Principles Notes 09: Concurrency Control Hector Garcia-Molina Pavel Rychlý.

Podobné prezentace


Prezentace na téma: "PA152Notes 091 CS 245: Database System Principles Notes 09: Concurrency Control Hector Garcia-Molina Pavel Rychlý."— Transkript prezentace:

1 PA152Notes 091 CS 245: Database System Principles Notes 09: Concurrency Control Hector Garcia-Molina Pavel Rychlý

2 PA152Notes 092 Řízení souběžného zpracování T1T2…Tn DB (omezení na konzistenci)

3 PA152Notes 093 Příklad: T1:Read(A)T2:Read(A) A  A+100A  A  2Write(A)Read(B) B  B+100B  B  2Write(B) Constraint: A=B

4 PA152Notes 094 Rozvrh A T1T2 Read(A); A  A+100 Write(A); Read(B); B  B+100; Write(B); Read(A);A  A  2; Write(A); Read(B);B  B  2; Write(B); AB25 125 250 250

5 PA152Notes 095 Rozvrh B T1T2 Read(A);A  A  2; Write(A); Read(B);B  B  2; Write(B); Read(A); A  A+100 Write(A); Read(B); B  B+100; Write(B); AB25 50 150 150

6 PA152Notes 096 Rozvrh C T1T2 Read(A); A  A+100 Write(A); Read(A);A  A  2; Write(A); Read(B); B  B+100; Write(B); Read(B);B  B  2; Write(B); AB25 125 250 125 250250

7 PA152Notes 097 Rozvrh D: T1T2 Read(A); A  A+100 Write(A); Read(A);A  A  2; Write(A); Read(B);B  B  2; Write(B); Read(B); B  B+100; Write(B); AB25 125 250 50 150 250150

8 PA152Notes 098 Rozvrh E T1T2’ Read(A); A  A+100 Write(A); Read(A);A  A  1; Write(A); Read(B);B  B  1; Write(B); Read(B); B  B+100; Write(B); AB25 125 25 125125 Stené jako D kromě T2’ místo T1

9 PA152Notes 099 Jaké rozvrhy jsou „dobré“ bez ohledu na –původní stav –význam transakcí Díváme se pouze na pořadí čtení a zápisu Příklad: Sc=r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 1 (B)w 1 (B)r 2 (B)w 2 (B)

10 PA152Notes 0910 Sc’=r 1 (A)w 1 (A) r 1 (B)w 1 (B)r 2 (A)w 2 (A)r 2 (B)w 2 (B) T 1 T 2 Příklad: Sc=r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 1 (B)w 1 (B)r 2 (B)w 2 (B)

11 PA152Notes 0911 Jenomže, pro Sd: Sd=r 1 (A)w 1 (A)r 2 (A)w 2 (A) r 2 (B)w 2 (B)r 1 (B)w 1 (B) zde musí platit: T 2 musí předcházet T 1 v libovolném ekvivalentním rozvrhu tj., T 2  T 1

12 PA152Notes 0912 T 1 T 2 Sd nelze přetransformovat do ekvivalentního rozvrhu Sd není “ekvivalentní” žádnému sériovému rozvrhu Sd is “špatný” T 2  T 1 a zároveň, T 1  T 2

13 PA152Notes 0913 Zpět k Sc Sc=r 1 (A)w 1 (A)r 2 (A)w 2 (A)r 1 (B)w 1 (B)r 2 (B)w 2 (B) T 1  T 2 T 1  T 2  bez cyklů  Sc je “ekvivalentí” sériovému rozvrhu (v tomto případě T 1,T 2 )

14 PA152Notes 0914 Pojmy Transakce: posloupnost akcí r i (x), w i (x) Konfliktní akce: r 1(A) w 2(A) w 1(A) w 2(A) r 1(A) w 2(A) Rozvrh: reprezentuje chronologické upspořádání, ve kterém mají být akce vyhodnoceny Sériový rozvrh: bez prolínání akcí transakcí

15 PA152Notes 0915 A co souběžné akce? Ti voláSystémInput(X) t  x read(x,t)voládokončeno input(x) čas T2 volá write(B,S) System volá input(B) dokončeno B  S Systém volá output(B) dokončeno

16 PA152Notes 0916 Tedy reálný efekt je buď S=…r 1 (x)…w 2 (b)… nebo S=…w 2 (B)…r 1 (x)…

17 PA152Notes 0917 Předpokládáme ekvivalenci k r 1 (A) w 2 (A) nebow 2 (A) r 1 (A)  synchronizace na nižší úrovni Předpokládáme “atomické akce” A co souběžné konfliktní akce na jednom objektu? start r 1 (A)end r 1 (A) start w 2 (A) end w 2 (A) time

18 PA152Notes 0918 Definice S 1, S 2 jsou konfliktně ekvivalentní rozvrhy pokud lze S 1 transformovat do S 2 pomocí posloupnosti výměn nekonfliktních akcí

19 PA152Notes 0919 Definice Rozvrh je konfliktně serializovatelný pokud je konfliktně ekvivalentní nějakému sériovému rozvrhu.

20 PA152Notes 0920 Uzly: transakce v rozvrhu S Hrany: Ti  Tj pokud - p i (A), q j (A) jsou akce v S - p i (A) < S q j (A) - minimálně jedna z p i, q j je zápis Závislostní graf P(S)

21 PA152Notes 0921 Cvičení: Nakreslete graf P(S) pro S = w 3 (A) w 2 (C) r 1 (A) w 1 (B) r 1 (C) w 2 (A) r 4 (A) w 4 (D) Je S serializovatelný?

22 PA152Notes 0922 Lemma S 1, S 2 konfliktně ekvivalentní  P(S 1 )=P(S 2 ) Důkaz: Předpokl. P(S 1 )  P(S 2 )   T i : T i  T j v S 1 a není v S 2  S 1 = …p i (A)... q j (A)… p i, q j S 2 = …q j (A)…p i (A)... konflikt  S 1, S 2 nejsou konfliktně ekvivalentní

23 PA152Notes 0923 Pozn.: P(S 1 )=P(S 2 )  S 1, S 2 konfliktně ekvivalentní Protipříklad: S 1 =w 1 (A) r 2 (A) w 2 (B) r 1 (B) S 2 =r 2 (A) w 1 (A) r 1 (B) w 2 (B)

24 PA152Notes 0924 Věta P(S 1 ) acyklický  S 1 konfliktně serializovatelný (  ) Předp. S 1 je konfliktně serializovatelný   S s : S s, S 1 konfliktně ekvivalentní  P(S s ) = P(S 1 )  P(S 1 ) acyklický, protože P(S s ) je acyklický

25 PA152Notes 0925 (  ) Přepd. P(S 1 ) acyklický Transformujme S 1 následovně: (1) Zvolme transakci T 1 do které nevede žádná hrana (2) Přesuneme všechny akce T 1 na začátek S 1 = ……. q j (A)……. p 1 (A)….. (3) nyní máme S 1 = (4) opakujme (1)—(3) pro zbytek! T 1 T 2 T 3 T 4 Věta P(S 1 ) acyklikcký  S 1 konfliktně serializovatelný

26 PA152Notes 0926 Jak zajistit serializovatelnost rozvrhů? 1. možnost: necháme běžet systém, zaznamenáváme P(S) na konci dne kontrolujeme P(S) na cykly a určíme, jestli byl výpočet správný

27 PA152Notes 0927 2. možnost: zajistíme, aby cykly v P(S) nevznikaly T 1 T 2 …..T n Scheduler DB Jak zajistit serializovatelnost rozvrhů?

28 PA152Notes 0928 Protokol zámků Dvě nové akce: lock (exclusive):l i (A) unlock:u i (A) scheduler T 1 T 2 lock table

29 PA152Notes 0929 Pravidlo #1: dobře utvořené transakce T i : … l i (A) … p i (A) … u i (A)...

30 PA152Notes 0930 Pravidlo #2 Korektní rozvrh S = …….. l i (A) ………... u i (A) ……... žádný l j (A)

31 PA152Notes 0931 Jaké rozvrhy jsou korektní? Jaké transakce jsou dobře utvořené? S1 = l 1 (A)l 1 (B)r 1 (A)w 1 (B)l 2 (B)u 1 (A)u 1 (B) r 2 (B)w 2 (B)u 2 (B)l 3 (B)r 3 (B)u 3 (B) S2 = l 1 (A)r 1 (A)w 1 (B)u 1 (A)u 1 (B) l 2 (B)r 2 (B)w 2 (B)l 3 (B)r 3 (B)u 3 (B) S3 = l 1 (A)r 1 (A)u 1 (A)l 1 (B)w 1 (B)u 1 (B) l 2 (B)r 2 (B)w 2 (B)u 2 (B)l 3 (B)r 3 (B)u 3 (B) Cvičení:

32 PA152Notes 0932 Jaké rozvrhy jsou korektní? Jaké transakce jsou dobře utvořené? S1 = l 1 (A)l 1 (B)r 1 (A)w 1 (B)l 2 (B)u 1 (A)u 1 (B) r 2 (B)w 2 (B)u 2 (B)l 3 (B)r 3 (B)u 3 (B) S2 = l 1 (A)r 1 (A)w 1 (B)u 1 (A)u 1 (B) l 2 (B)r 2 (B)w 2 (B)l 3 (B)r 3 (B)u 3 (B) S3 = l 1 (A)r 1 (A)u 1 (A)l 1 (B)w 1 (B)u 1 (B) l 2 (B)r 2 (B)w 2 (B)u 2 (B)l 3 (B)r 3 (B)u 3 (B) Cvičení:

33 PA152Notes 0933 Rozvrh F T1 T2 l 1 (A);Read(A) A A+100;Write(A);u 1 (A) l 2 (A);Read(A) A Ax2;Write(A);u 2 (A) l 2 (B);Read(B) B Bx2;Write(B);u 2 (B) l 1 (B);Read(B) B B+100;Write(B);u 1 (B)

34 PA152Notes 0934 Rozvrh F T1 T2 25 25 l 1 (A);Read(A) A A+100;Write(A);u 1 (A) 125 l 2 (A);Read(A) A Ax2;Write(A);u 2 (A) 250 l 2 (B);Read(B) B Bx2;Write(B);u 2 (B) 50 l 1 (B);Read(B) B B+100;Write(B);u 1 (B) 150 250 150 A B

35 PA152Notes 0935 Pravidlo #3 Two phase locking (2PL) Dvoufázové zamykání pro trasakce T i = ……. l i (A) ………... u i (A) ……... no unlocks no locks

36 PA152Notes 0936 # zámků držených Ti čas Rostoucí Klesající fáze fáze

37 PA152Notes 0937 Rozvrh G pozastaveno

38 PA152Notes 0938 Rozvrh G pozastaveno

39 PA152Notes 0939 Rozvrh G pozastaveno

40 PA152Notes 0940 Rozvrh H (T 2 obráceně) pozastaveno

41 PA152Notes 0941 Uvázlé transakce jsou odmítnuty (roll back) –Nemají žádný efekt –Neobjeví se v rozvrhu Tj., Rozvrh H = Toto místo je záměrně prázdné!

42 PA152Notes 0942 Další krok: Ukážeme, že pravidla #1,2,3 zajišťují konfliktní serializovatelnost rozvrhů

43 PA152Notes 0943 Konfliktní pravidla pro l i (A), u i (A): l i (A), l j (A) konflikt l i (A), u j (A) konflikt Pozn.: konflikt není,,...

44 PA152Notes 0944 Věta Pravidla #1,2,3  serializovatelný (2PL) rozvrh Definice Shrink(Ti) = SH(Ti) = první akce unlock v Ti

45 PA152Notes 0945 Lemma Ti  Tj in S  SH(Ti) < S SH(Tj) Důkaz: Ti  Tj znamená S = … p i (A) … q j (A) …; p,q konflikt Z pravidel 1,2: S = … p i (A) … u i (A) … l j (A)... q j (A) … Z prav. 3: SH(Ti) SH(Tj) tedy SH(Ti) < S SH(Tj)

46 PA152Notes 0946 Důkaz: (1) Předp. P(S) obsahuje T 1  T 2  …. T n  T 1 (2) Z lemmatu: SH(T 1 ) < SH(T 2 ) <... < SH(T 1 ) (3) To je nemožné, tedy P(S) je acyklický (4)  S je konfliktně serializovatelný Věta Rules #1,2,3  konfliktně (2PL) serializovatelný rozvrh

47 PA152Notes 0947 Následující vylepšení jednoduchého protokolu dvoufázového zamykání pouze zvyšují výkon a paralelismus…. –sdílené zámky –různá granularita –vznik fantómů při operacích insert, delete –jiné typy řízení přístupu

48 PA152Notes 0948 Sdílené zámky Dosud: S =...l 1 (A) r 1 (A) u 1 (A) … l 2 (A) r 2 (A) u 2 (A) … Není konflikt Místo toho: S=... ls 1 (A) r 1 (A) ls 2 (A) r 2 (A) …. us 1 (A) us 2 (A)

49 PA152Notes 0949 Akce zamknutí l-t i (A): zamkne A v módu t (t je S nebo X) u-t i (A): odemkne A v módu t (t je S nebo X) Zkráceně: u i (A): odemkne A v libovolném módu T i má zamčené A

50 PA152Notes 0950 Pravidlo #1 Dobře utvořené transakce T i =... l-S 1 (A) … r 1 (A) … u 1 (A) … T i =... l-X 1 (A) … w 1 (A) … u 1 (A) …

51 PA152Notes 0951 Co s transakcemi, které čtou i zapisují stejný objekt? Možnost 1: Žádá exkluzivní zámek T i =...l-X 1 (A) … r 1 (A)... w 1 (A)... u(A) …

52 PA152Notes 0952 Možnost 2: Povýšení (Tj. potřebuje číst a neví, jestli bude zapisovat…) T i =... l-S 1 (A) … r 1 (A)... l-X 1 (A) …w 1 (A)...u(A)… Bereme jako: - 2. zámek na A, nebo - uvolni S, dej zámek X Co s transakcemi, které čtou i zapisují stejný objekt?

53 PA152Notes 0953 Pravidlo #2 Korektní plán S =....l-S i (A) … … u i (A) … žádné l-X j (A) S =... l-X i (A) … … u i (A) … žádné l-X j (A) žádné l-S j (A)

54 PA152Notes 0954 Způsob souhrnu Pravidla #2 Matice kompatibility Comp S X S true false Xfalse false

55 PA152Notes 0955 Pravidlo # 3 2PL transakcí Kromě povýšení beze změny: (I) Pokud povýšení dává další zámek (tj., S  {S, X}) beze změny! (II) Pokud povýšení uvolňuje (sdílený) zámek (tj., S  X) - povolujeme v rostoucí fázi

56 PA152Notes 0956 Důkaz: podobný důkazu pro zámky X Detail: l-t i (A), l-r j (A) nejsou v konfliktu pokud comp(t,r) l-t i (A), u-r j (A) nejsou v konfliktu pokud comp(t,r) Věta Pravidla 1,2,3 . Konfliktně serializovatelný rozvrh pro zámky S/X

57 PA152Notes 0957 Jiné typy zámků kromě S/X Příklady: (1) přičítací zámek (incremental) (2) povyšovaný zámek (update)

58 PA152Notes 0958 Příklad (1): přičítací zámek Atomická akce přičtení: IN i (A) {Read(A); A  A+k; Write(A)} IN i (A), IN j (A) nejsou v konfliktu! A=7 A=5A=17 A=15 IN i (A) +2 IN j (A) +10 IN j (A) +2 IN i (A)

59 PA152Notes 0959 CompSXI S X I

60 PA152Notes 0960 CompSXI STFF XFFF IFFT

61 PA152Notes 0961 Update locks

62 PA152Notes 0962 Řešení Pokud chce T i číst A a ví, že by později mohla chtít do A i zapisovat, žádá povyšovaný zámek (ne sdílený)

63 PA152Notes 0963 CompSXU S X U Nová žádost Již držené zámky

64 PA152Notes 0964 CompSXU STFT XFFF U T/F FF -> symetrická tabulka? Nová žádost Již držené zámky

65 PA152Notes 0965 Poznámka: objekt A může být ve stejném čase zamčený zámky různých typů... S 1 =...l-S 1 (A)…l-S 2 (A)…l-U 3 (A)… l-S 4 (A)…? l-U 4 (A)…? Abychom udělili zámek typu t, musí být kompatibilní se všemi v té době drženými zámky na objektu A

66 PA152Notes 0966 Jak pracuje zamykání v praxi? Každý systém je jiný (Tj., nemusí ani dokonce zajišťovat KONFLIKTNí-SERIALIZOVATELNOST) Ale existuje jeden (zjednodušený) způsob...

67 PA152Notes 0967 (1) Nevěř transakcím jejich žádosti o zamčení či odemčení. (2) Drž všechny zámky až do commitu Počet zámků čas Jednoduchý systém zamykání:

68 PA152Notes 0968 Ti Read(A),Write(B) l(A),Read(A),l(B),Write(B)… Read(A),Write(B) Scheduler, part I Scheduler, part II DB tabulka zámků

69 PA152Notes 0969 Tabulka zámků princip A  B C ... Lock info for B Lock info for C null znamená odemčeno pro každý objekt

70 PA152Notes 0970 Ale používáme hašovací tabulku: A Pokud objekt není v tabulce, je odemčen. Lock info for A A... H

71 PA152Notes 0971 Lock info for A - příklad tran mode wait? Nxt T_link Object:A Group mode:U Waiting:yes List: T1 S no T2 U no T3X yes  To other T3 records

72 PA152Notes 0972 Jaké objekty zamykáme? ? Relation A Relation B... Tuple A Tuple B Tuple C... Disk block A Disk block B... DB

73 PA152Notes 0973 Zamykání funguje ve všech případech, ale jsou lepší větší nebo menší objekty? zamykání větších objektů (tj. relace) –potřebujeme méně zámků –menší souběh zamykání menších objektů (tj., záznamy, položky) –více zámků –větší souběh

74 PA152Notes 0974 Příklad: větší i menší R1 t1t1 t2t2 t3t3 t4t4 T 1 (IS) T 1 (S), T 2 (S)

75 PA152Notes 0975 Příklad: větší i menší R1 t1t1 t2t2 t3t3 t4t4 T 1 (IS) T 1 (S), T 2 (IX) T 2 (IX)

76 PA152Notes 0976 Násobná granularita Compžadatel IS IX S SIX X IS držitel IX S SIX X

77 PA152Notes 0977 Násobná granularita Compžadatel IS IX S SIX X IS držitel IX S SIX X TTTTF F F F FFFFF FFFT FTFT FFTT

78 PA152Notes 0978 ParentChild can belocked in IS IX S SIX X P C

79 PA152Notes 0979 zámekpřípustný zámek rodičepotomka IS IX S SIX X R P IS, S IS, S, IX, X, SIX [S, IS] ne nutně X, IX, [SIX] žádný

80 PA152Notes 0980 Pravidla (1) Dodržuj funkci comp pro násobnou granularitu (2) Zamykání vždy začíná od kořene (3) Ti může zamknout uzel Q zámkem S nebo IS, pokud má zamčeno parent(Q) zám. IX nebo IS (4) Ti může zamknout uzel Q zámkem X,SIX,IX pokud má zamčeno parent(Q) zám. IX,SIX (5) Ti je dvoufázová (6) Ti může odemknout uzel Q, pokud nemá zamčeného žádného potomka Q

81 PA152Notes 0981 Cvičení: Může T 2 přistupovat k objektu f 2.2 v módu X? O jaké zámky bude T 2 žádat? R1 t1t1 t2t2 t3t3 t4t4 T 1 (IX) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (IX) T 1 (X)

82 PA152Notes 0982 Cvičení: Může T 2 přistupovat k objektu f 2.2 v módu X? O jaké zámky bude T 2 žádat? R1 t1t1 t2t2 t3t3 t4t4 T 1 (X) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (IX)

83 PA152Notes 0983 Cvičení: Může T 2 přistupovat k objektu f 3.1 v módu X? O jaké zámky bude T 2 žádat? R1 t1t1 t2t2 t3t3 t4t4 T 1 (S) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (IS)

84 PA152Notes 0984 Cvičení: Může T 2 přistupovat k objektu f 2.2 v módu S? O jaké zámky bude T 2 žádat? R1 t1t1 t2t2 t3t3 t4t4 T 1 (IX) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (SIX) T 1 (X)

85 PA152Notes 0985 Cvičení: Může T 2 přistupovat k objektu f 2.2 v módu X? O jaké zámky bude T 2 žádat? R1 t1t1 t2t2 t3t3 t4t4 T 1 (IX) f 2.1 f 2.2 f 3.1 f 3.2 T 1 (SIX) T 1 (X)

86 PA152Notes 0986 Operace insert + delete Insert A Z ...

87 PA152Notes 0987 Modifikace pravidel zamykání: (1) Před smazáním A zamkni A zámkem X (2) Při vložení A zamkni A zámkem X

88 PA152Notes 0988 Fantóm Problém zůstává: Fantóm Příklad: relace R (E#,name,…) omezení: E# je klíč použijeme zamykání záznamů RE#Name…. o155Smith o275Jones

89 PA152Notes 0989 T 1 : Insert into R T 2 : Insert into R T 1 T 2 S 1 (o 1 ) S 2 (o 1 ) S 1 (o 2 ) S 2 (o 2 ) Check Constraint Insert o 3 [99,Gore,..] Insert o 4 [99,Bush,..]...

90 PA152Notes 0990 Řešení Použijeme strom s násobnou granularitou Před vložením uzlu Q zamkneme parent(Q) zámkem X R1 t1t1 t2t2 t3t3

91 PA152Notes 0991 Příklad T 1 : Insert T 2 : Insert T 1 T 2 X 1 (R) Check constraint Insert U(R) X 2 (R) Check constraint Oops! e# = 99 already in R! pozastaveno

92 PA152Notes 0992 Místo R můžeme použít index na R: Příklad: R Index 0<E#<100 Index 100<E#<200 E#=2E#=5 E#=107 E#=109...

93 PA152Notes 0993 Následuje: Tree-based concurrency control Stromové řízení souběžného zpracování Validation concurrency control Řízení souběžného zpracování kontrolami

94 PA152Notes 0994 Příklad A B C D EF všechny objekty jsou přístupné z kořene následováním ukazatelů zámek T 1  můžeme uvolnit zámek na A, pokud už A nebudeme potřebovat?

95 PA152Notes 0995 Idea: průchod “Monkey Bars” A B C D EF zámek T1

96 PA152Notes 0996 Proč to funguje? Všechny T i začínají z kořene; zámek X T i  T j  T i zamkne kořen před T j Funguje, i když nezačínáme vždy z kořene Root Q T i  T j

97 PA152Notes 0997 Pravidla stromového protokolu (exkluzivní zámky) (1) První zámek může T i dát na libovolný uzel (2) Potom může Ti zamknout Q, pokud má zamčeno parent(Q) (3) Uzly je možné odemykat kdykoliv (4) Pokud T i odemkne Q, nemůže Q zamknout znovu

98 PA152Notes 0998 Stromové protokoly zamykání jsou používány pro přístupy k B-stromům Tj. během vkládání odemkneme rodiče, pokud se potomek již nemůže rozdělit Root

99 PA152Notes 0999 Kontroly (Validation) Transakce mají 3 fáze: (1) Read –čtení všech potřebných hodnot z DB –zápis do dočasných oblastí –bez zamykání (2) Validate –kontrola jestli je rozvrh serializovatelný (3) Write –zápis do DB

100 PA152Notes 09100 Klíčová idea Kontrola je atomická operace Pokud jsou T 1, T 2, T 3, … upořádány podle času kontroly, výsledný rozvrh bude konfliktně ekvivalentní rozvrhu S s = T 1 T 2 T 3...

101 PA152Notes 09101 Implementace vyžaduje udržování dvou množin : FIN = transakce, které ukončily 3. fázi (dokončené transakce) VAL = transakce, které ukončily 2. fázi (kontrolu) a pro každou transakci Ti ignore(Ti) RS(Ti), WS(Ti)

102 PA152Notes 09102 Příklad 1 (co se nesmí stát): RS(T 2 )={B} RS(T 3 )={A,B} WS(T 2 )={B,D} WS(T 3 )={C} time T 2 start T 2 validated T 3 validated T 3 start  = 

103 PA152Notes 09103 Příklad 2 (co se nesmí stát): RS(T 2 )={A} RS(T 3 )={A,B} WS(T 2 )={D,E} WS(T 3 )={C,D} time T 2 validated T 3 validated finish T 2 BAD: w 3 (D) w 2 (D)

104 PA152Notes 09104 Pravidla kontroly pro T j : (1) Jakmile T j začne fázi 1: ignore(T j )  FIN (2) kontrola T j : if check (T j ) then [ VAL  VAL U {T j }; do write phase; FIN  FIN U {T j } ]

105 PA152Notes 09105 check(T j ) For T i  VAL - ignore(T j ) DO IF [ WS(T i )  RS(T j )   OR ( T i  FIN AND WS(T i )  WS(T j )   )] THEN RETURN false; RETURN true;

106 PA152Notes 09106 Cvičení: T: RS(T)={A,B} WS(T)={A,C} V: RS(V)={B} WS(V)={D,E} U: RS(U)={B} WS(U)={D} W: RS(W)={A,D} WS(W)={A,C} start validate finish

107 PA152Notes 09107 Kontroly (patřící mezi optimistické strategie řízení souběžného zpracování) jsou použitelné v případech: - konflikty jsou málo časté - máme dostatek systémových zdrojů - máme omezení reálného času


Stáhnout ppt "PA152Notes 091 CS 245: Database System Principles Notes 09: Concurrency Control Hector Garcia-Molina Pavel Rychlý."

Podobné prezentace


Reklamy Google