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

Slides:



Advertisements
Podobné prezentace
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Advertisements

J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
10. Dynamické datové struktury
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Třídění Seminář IVT. Definice uspořádání skupiny dat (záznamů) dle daného klíče vzestupně (od nejmenší do největší hodnoty klíče) sestupně (od největší.
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Některé pojmy teorie grafů I. Příklad: log p ABC = u 0 + u A + u B + u C + u AB + u AC A B C.
Varianty Turingova stroje Výpočet funkcí pomocí TS
Materiály k přednášce Úvod do programování Ondřej Čepek.
ADT Strom.
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
Databáze Jiří Kalousek.
LOGISTICKÉ SYSTÉMY 7/14.
1IT S ÍŤOVÝ DATOVÝ MODEL Ing. Jiří Šilhán. S ÍŤOVÝ DATOVÝ MODEL Je historicky nejstarším datovým modelem. Jeho základem jsou vzájemně propojené množiny.
B-strom je dynamická indexová struktura.
Databáze výhody a nevýhody Ing. Emilie Šeptáková
BEZPEČNOST DAT 2 Složky bezpečnosti dat  Integrita dat (Integrity)  Ochrana dat (Security)  Zotavení z chyb (Recovery)  Paralelní zpracování (Concurrency)
Informatika I 2. přednáška
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Algoritmy a programovací techniky
Formální jazyky a gramatiky
Sémantická analýza Jakub Yaghob
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Relační databáze.
Vypracoval: Ondřej Dvorský Třída: VIII.A
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy Tomáš Skopal
Offline concurrency patterns Petr Smrček Ondřej Svoboda ČVUT FEL A7B36ASS – Architektura SW sytémů LS 2013.
Informatika pro ekonomy II přednáška 10
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
JavaScript Podmínky, cykly a pole.
3. Přednáška posloupnosti
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
Transakce Roman Špánek TU v Liberci Transakce Transakce = série příkazů čtení a zápisu do databáze A Atomic C Consistency I Isolation D Durability.
STROMY Datová struktura sestávající z uzlů
Databázové systémy II Cvičení č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
A3B33OSD (J. Lažanský) verze: Jaro 2013 Transakce a řízení souběhu 1 Obsah Téma 12 – Transakce, řízení souběhu a obnova dat 1.Transakce a jejich stavy.
PA152Notes 081 CS 245: Database System Principles Notes 08: Failure Recovery Hector Garcia-Molina Pavel Rychlý.
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
PA152Notes 101 CS 245: Database System Principles Notes 10: More TP Hector Garcia-Molina Pavel Rychlý.
Aplikační a programové vybavení
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
Les, stromy a kostry Kružnice: sled, který začíná a končí ve stejném vrcholu, ostatní vrcholy jsou různé Souvislý graf: mezi každými dvěma vrcholy existuje.
24 Používání relačních databází (základní pojmy a principy z oblasti relačních databází, struktura databáze,oblasti použití relačních databází, vkládání.
Teorie portfolia Markowitzův model.
Optimistic and pessimistic offline lock. Naivní přístup:  Uživatel A načte data  Uživatel B načte (stejná) data  Uživatel A upraví data a uloží je.
Složitost algoritmu Vybrané problémy: Při analýze složitosti jednotlivých algoritmů často narazíme na problém, jakým způsobem vzít v úvahu velikost vstupu.
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Databázové systémy přednáška 6 – Indexy
Úvod do databázových systémů
Databázové systémy přednáška 8 – Transakce
A5M33IZS – Informační a znalostní systémy
Znázornění dopravní sítě grafem a kostra grafu Předmět: Teorie dopravy - cvičení Ing. František Lachnit, Ph.D.
Překladače 5. Syntaktická analýza
Informatika pro ekonomy přednáška 8
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Databázové systémy a SQL
Paralelní přístup k databázi
A5M33IZS – Informační a znalostní systémy
Přednášky z distribuovaných systémů
Přednáška 9 Triggery.
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Definiční obory. Množiny řešení. Intervaly.
AVL a B-stromy cvičení Radek Mařík.
Transkript prezentace:

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

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

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

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); AB

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); AB

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); AB

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); AB

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); AB Stené jako D kromě T2’ místo T1

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)

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)

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

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

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 )

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í

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

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

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

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í

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

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)

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ý?

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í

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)

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ý

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ý

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ý

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

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

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

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

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í:

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í:

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)

PA152Notes 0934 Rozvrh F T1 T 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) A B

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

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

PA152Notes 0937 Rozvrh G pozastaveno

PA152Notes 0938 Rozvrh G pozastaveno

PA152Notes 0939 Rozvrh G pozastaveno

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

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é!

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

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í,,...

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

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)

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

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

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)

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

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

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

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?

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)

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

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

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

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

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)

PA152Notes 0959 CompSXI S X I

PA152Notes 0960 CompSXI STFF XFFF IFFT

PA152Notes 0961 Update locks

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

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

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

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

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...

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í:

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ů

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

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

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

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

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

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

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)

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

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

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

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ý

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

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)

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)

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)

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)

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)

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

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

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

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,..]...

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

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

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...

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

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?

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

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

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

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

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

PA152Notes 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...

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

PA152Notes 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  = 

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

PA152Notes 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 } ]

PA152Notes 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;

PA152Notes 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

PA152Notes 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