Rzen soub ezn eho prov ad en transakc

Podobné dokumenty
Obnova transakc po v ypadku

Obnova transakc po v ypadku

Sekven cn soubory. PV 062 Organizace soubor u. Jan Staudek Verze : jaro 2018

TÉMATICKÝ OKRUH TZD, DIS a TIS

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

Rzen informacn bezpecnosti v organizaci

Rzen informacn bezpecnosti v organizaci

Distribuovan e algoritmy

Vl akna. PB 152 Operacn syst emy. Jan ÐStaudek Verze : jaro 2015

Procesy. PB 152 Operacn syst emy. Jan Staudek Verze : jaro 2017

Transakce, soub eznost a uv aznut v distribuovan em prostred

Poctacov e syst emy { prehled

Procesy. Uvodem k proces um. PB 152 Operacn syst emy. Program a proces. Uvodem k proces um

Distribuovan e prostred, cas a stav v distribuovan em prostred

Distribuovan e prostred, cas a stav v distribuovan em prostred

Podsyst em vstupu a v ystupu

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

Projekt implementace ISMS Dodatek 1, PDCA

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Spr ava hlavn pam eti

9. Transakční zpracování

Spr ava hlavn pam eti

Uvod, celkov y prehled problematiky

Uvod, celkov y prehled problematiky

Vl akna. Proces a vl akna. PB 152 Operacn syst emy. Resen editoru pomoc vl aken. Koncept sekvencnho procesu m uze b yt neefektivn

Hasov an (hashing) na vn ejsch pam etech

Operacn syst emy { prehled

Virtu aln pam et' PB 152 Operacn syst emy. Jan Staudek Verze : jaro 2017

Volba v udce, Leader Election

Prklad dokumentov e z akladny ISMS

GPDR, General Data Protection Regulation

Projekt implementace ISMS

Zotavení z chyb. Databázové systémy

Operacn syst emy { prehled

Volba v udce, Leader Election

Aplikacn bezpecnost. Informacn bezpecnost z pohledu aplikacnch syst em u. PV 017 Bezpecnost informacnch technologi

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Pl anov an. PB 152 Operacn syst emy. Jan Staudek Verze : jaro 2017

Aplikacn bezpecnost. PV 017 Bezpecnost informacnch technologi. Jan Staudek Verze : podzim 2017

Soubor, souborov e organizace

Prepn an, switching. Propojovac probl em. PV 169 Z aklady prenosu dat. Prepnac, prepnan a st' Metody prepn an

Audit (prezkoum av an) bezpecnostnch opatren, politik, syst em u,...

Typologie, funkcn skladby a architektury OS

Konzistentnost. Přednášky z distribuovaných systémů

Téma 11 Transakce a řízení souběhu

Podsyst em vstupu a v ystupu

Politika informacn bezpecnosti

Audit (prezkoum av an) bezpecnostnch opatren, politik, syst em u,...

Transakce a zamykání Jiří Tomeš

Soubor, souborov e organizace

Typologie, funkcn skladby a architektury OS

Transakční zpracování

Projekt implementace ISMS

Politika informacn bezpecnosti, Dodatek

Prklady opatren, zranitelnost a hrozeb

Služba ve Windows. Služba (service) je program

Komunikace a synchronizace proces u

Rzen reakc na bezpecnostn incidenty

Komunikace a synchronizace proces u

Distribuované algoritmy

Politika informacn bezpecnosti, Dodatek

PB153 Operační systémy a jejich rozhraní

Hierarchick e indexy, B / B+ stromy, tries

Komunikace a synchronizace proces u

Krit eria hodnocen informacn bezpecnosti, dodatek

Principy operačních systémů. Lekce 6: Synchronizace procesů

Hierarchick e indexy, B / B+ stromy, tries

Paralelní přístup k databázi

Principy operačních systémů. Lekce 7: Obrana proti deadlocku

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Digit aln vysl an. PV 169 Z aklady prenosu dat. Jan Staudek Verze : podzim 2018

Projekt implementace ISMS Dodatek 4, Prklad politiky ISMS

Projekt implementace ISMS, Dodatek 2, Pozn amky k projektov emu rzen

9. Transakční zpracování

Hierarchick e indexy, B / B+ stromy, tries

Koncept informacn bezpecnosti

DBS transakční zpracování

Souborov e syst emy { koncepty a rozhran

Soubor, souborov e organizace

Rzen rizik. PV 017 Bezpecnost informacnch technologi. Jan Staudek Verze : podzim 2018

Anatomie informacn bezpecnosti

Řízení souběžného přístupu k datům v systémech řízení báze dat

Digit aln vysl an. K odov an spoje. PV 169 Z aklady prenosu dat. Prvek sign alu, prvek dat, stupe n sign alu. Stupe n dat, baudov a / bitov a rychlost

Krit eria hodnocen informacn bezpecnosti

Informacn teorie. PV 062 Organizace soubor u. Jan Staudek Verze : jaro 2018

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1

N avrh a pouzit metrik informacn bezpecnosti, m eren v ISMS

N avrh a pouzit metrik informacn bezpecnosti, m eren v ISMS

Vlastnosti ACID. Příklad převodu peněz

Typologie, funkcn skladba a architektury OS, prklady z Windows, Unix, Linux, MAC OSx

B azov y fenom en pri zajist'ov an bezpecnosti { riziko

projektu implementace ISMS

Národ í katalog otevře ých dat veřej é správy

Koncept informacn bezpecnosti

Přenos mezi zkušební organizací a notebooky zkušebních orgánů příslušné

Souborov e syst emy { koncepty a rozhran

4.3 Operace nad ordin ln mi datov mi typy Operace nad logick m datov m typem Operace nad celo seln mi datov mi typy

Pl anu zachov an kontinuity podnik an,

Dijkstrův algoritmus

Pl anu zachov an kontinuity podnik an,

Transkript:

Osnova predn asky Rzen soub ezn eho prov ad en transakc PA 150 Principy operacnch syst em u Jan ÐStaudek Û Å«Æ ±²³ µ ¹º»¼½¾ Ý t http://www..muni.cz/usr/staudek/vyuka/ Spr ava soub ezn eho prov ad en transakc v prostred bez poruch pesimistick e vs. optimistick e pl anovace z amky protokol na b azi zamyk an polozek dat protokol na b azi znalosti postupu zpracov an dat (grafov y) protokol na b azi casov ych raztek (porad transakc) protokol na b azi ov erov an zachov an serializovatelnosti Obnov am po poruch ach se venuje n asledujc predn aska Verze : podzim 2016 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 1 Fakta: Pl anov an behu soubezn ych transakc s eriov e proveden validnch transakc zachov a konzistentnost b aze dat fundament aln vlastnost transakce je izolovanost soubezn e proveden (validnch) transakc zachov a konzistentnost b aze dat v prpadech, kdy prslusn y pl an je koniktove serializovateln y izolovanost soubezne resen ych transakc sdlejcch objekty se mus zajistit explicitne { sch ematy rzen soubeznosti Implicitn e lze zajistit serializovatelnost soub ezn ych transakc (presn eji plnou s eriovost, bohuzel) pouze jejich resenm formou kritick ych sekc vz ajemn a v ylucnost cel ych transakc { tj. vesmes neefektivn resen Pl anov an behu soubezn ych transakc Souc ast TPM je pl anovac, kter y povoluje prov aden transakc pouze podle serializovateln ych pl an u v prostred s poruchami/v ypadky navc podle obnoviteln ych pl an u a ide alnm prpade podle pl an u bez kask adnho vracen serializovatelnost pl anu zajist'uje za pochodu (on-line) a pritom mus b yt garantovan a co nejvyss propustnost (v soubezne prov aden ych transakc / jednotku casu) Pl anovace TPM zajist'uj, ze operace read, write v soub ezn e prov aden ych transakcch se prov adej pouze v prpustn em porad { podle n ekter eho serializovateln eho pl anu bez ohledu na to, jak OS proces um ci vl akn um vyvol avajcm transakce prideluje zdroje (napr. CPU) Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 2 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 3

Metody zajist'ov an izolovanosti soub ezn ych transakc sch emat rzen soub eznosti je vce, z adn e nen NEJLEPSI uzamcen cel e DB pro jednu transakci je aplikacn e neakceptovateln e Stnov e kopie (c ast) DB { zmnme se pouze okrajove Predm etem studia jsou ctyri sch emata rzen soub eznosti vybudovan a na b azi { z amk u sdlen ych promenn ych { casov eho razen transakc pomoc casov ych raztek { omezen porad prstup u ke sdlen ym promenn ym { grafov y protokol zajist'ujc acyklicnost precendence b ehu transakc { detekce kolize a obnoven b ehu transakc Metody zajist'ov an izolovanosti soub ezn ych transakc Z amky { zajist'uj prid elen sdlen e polozky transakci po dobu nutnou pro zajist en serializovatelnosti z amky jsou dvojho typu { sdlen e, pripoustej n asobnost operac read s vyloucenm operac write do sdlen e polozky { exkluzivn { zajist'uj v ylucn y prstup transakce k polozce Casov a raztka kazd a transakce m a jedinecn e casov e raztko dan e dobou jejho vzniku pri vzniku koniktu transakce pristupuj ke sdlen ym promenn ym v porad casov ych raztek pokud toto porad nelze zajistit (doslo by napr. ke v case zpetn emu z apisu hodnoty polozky) koniktn transakce krachuje a restartuje se v pozdejsm case, s nov ym casov ym raztkem Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 4 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 5 Metody zajist'ov an izolovanosti soub ezn ych transakc Grafov y protokol aplikovateln a metoda v prpadech, kdy je akceptovateln e apriori denovat hierarchick e uspor ad an sdlen ych objekt u Detekce kolize a obnova b ehu akceptovateln a metoda v prpadech, kdy bez HODN E transakc s prevazujcmi operacemi read a M ALO transakc s operacemi write Typy pl anovac u soub ehu transakc pesimistick e pl anovace, konzervativn prstup predpokl adaj hodne konikt u, predch az jim silnou serializac { stanovenm prpustn ych porad prstupu k objekt um zamykac protokoly { typicky 2-f azov e zamyk an (zjevne nejpopul arnejs protokol) protokoly na b azi casov ych raztek (casov e razen bez zamyk an) grafov y protokol (hierarchick e zamykan) optimistick e pl anovace, liber aln ejs prstup predpokl adaj, ze konikt u je m alo, tj. m alo transakc zapisuje m alo blokuj behy transakc,,,nech avaj veci bezet" kdyz dojde ke koniktu, tj. zjist se, ze pl an nen serializovateln y, probl em koniktu se res rusenm a opakov anm koniktnch transakc protokol na b azi validace serializovatelnosti pl anu Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 6 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 7

Z amky, transakcn protokol na b azi zamyk an nejcastejs forma implementace pl anovace transakc z amek, lock z amek { blokovac prvek udrzovan y ke kazd e datov e polozce z amky spravuje spr avce z amk u { proces/sluzba TPM z amek lze zamknout a odemknout k datov e polozce m a povolen prstup ta transakce, kter a zamkne jej z amek z amky jsou dvojho typu { sdlen y pro read, exkluzitivn pro write a existuj pravidla, kdy lze ten kter y typ z amku zamknout transakce jsou pomoc zamyk an a odemyk an z amk u synchronizovan e tak, aby jejich ucinky na sdlen a data byly ekvivalentn nekter emu jejich s eriov emu zpracov an casto pouzvan a synonyma zamknut z amku, zsk an z amku, vlastnen z amku,... odemknut z amku, vr acen z amku, uvolnen z amku,... Z amky, transakcn protokol na b azi zamyk an transakcn protokol na b azi zamyk an mnozina pravidel vymezujc chov an transakc pri zamyk an a odemyk an z amk u omezuje mnozinu mozn ych pl an u na koniktove serializovateln e pl any zarucuje koniktovou serializovatelnost, pokud vsechny pl any, kter e determinuje, jsou koniktove serializovateln e Typy z amk u, rezimy prstupu k dat um Sdlen y z amek { (rezim shared, lock S) pokud T i vlastn lock-s polozky Q, m uze obsah polozky Q cst, ale nesm do polozky Q zapisovat Exkluzivitn z amek { (rezim exclusive, lock X) pokud T i vlastn lock-x polozky Q, m uze obsah polozky Q cst a rovnez sm do polozky Q zapisovat Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 8 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 9 Z amky, transakcn protokol na b azi zamyk an Z amky, transakcn protokol na b azi zamyk an T i pristupujc k Q mus pred prstupem ke Q zskat od spr avce z amk u z amek polozky Q relevantn forme prstupu T i z amek polozky m uze uvolnit, tj. vr atit ho spr avci, po t e, co uz nem a potrebu prstupu k dan e polozce z amky m uze implicitne uvolnit rovnez TPM pri ukoncov an nebo krachu transakce roli spr avce z amk u pln TPM operace dostupn e na API TPM: lock-s(... ) operace zsk an sdlen eho z amku polozky... lock-x(... ) operace zsk an exkluzivitnho z amku polozky... unlock(... ) operace uvolnen z amku polozky... De facto se jedn a o ulohu cten ari-psari z ad a-li T i zajistit pomoc zsk an z amku lock-x exkluzivn prstup k Q a jin a transakce uz zskala jak ykoliv z amek polozky Q, T i mus cekat na uvolnen tohoto z amku z ad a-li T i prov est pomoc zsk an z amku lock-s sdlen y prstup ke Q a jin a transakce uz zskala z amek lock-x polozky Q, T i mus cekat na uvolnen tohoto z amku lock-x z ad a-li T i prov est pomoc zsk an z amku lock-s sdlen y prstup ke Q a z amek lock-s polozky Q uz zskala jin a transakce, T i zsk a z amek lock-s t ez Kdyz se transakce stane proveden a ci zkrachoval a, server (TPM) odemkne transakc explicitn e neodemcen e z amky Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 10 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 11

Transakce s (exkluzivitnmi) z amky Transakce s (exkluzivitnmi) z amky, jin y mozn y pl an Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 12 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 13 Z amky, kdy uvolnit z amek? Z amky, kdy uvolnit z amek? mejme 2 transakce T 1 a T 2 a necht' je inici alne A=100 a B=200 T 1 : B:=B 50; write (B); read (A); A:=A+50; write (A); T 2 : read (A); display(< A + B >); pri s eriov em proveden T 1, T 2, resp. T 2, T 1 bude transakce T 2 na konci zobrazovat 300 Necht' texty program u T 1, T 2 zajist'uj, ze transakce k datov e polozce pristupuj pouze po zsk an jejho prslusn eho z amku, napr. : T 1 : lock-x(b); B:=B 50; write (B); unlock(b); lock-x(a); read (A); A:=A+50; write (A); unlock(a); T 2 : lock-s(a); read (A); unlock(a); lock-s(b); unlock(b); display(< A + B >); T 1 : T 2 : Spr avce z amk u: lock-x(b); grant-x (B, T 1 ) B:=B 50; write (B); unlock(b); lock-s(a); grant-s (A, T 2 ) read (A); unlock(a); lock-s(b); grant-s (B, T 2 ) unlock(b); display(< A + B >); pokr. na dalsm snmku Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 14 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 15

Z amky, kdy uvolnit z amek? lock-x(a); grant-x (A, T 1 ) read (A); A:=A+50; write (A); unlock(a); transakce T 2 ovsem nezobrazila 300, ale 250 zamyk an polozek pouze na dobu individu alnch prstup u k polozk am dat neodstran hrozbu nekonzistentnosti, povol pl an, kter y nen serializovateln y probl em nekonzistence trivi alne vyres napr. presunut uvolnen z amk u v obou transakcch na konec k odu, tj. na pri prechodu hotov e transakce na provedenou povolen e pl any jsou serializovateln e (viz dals snmek) Z amky, kdy uvolnit z amek? pokrac. { presunut uvoln en z amk u v obou transakcch na konec k odu probl em nekonzistence odstran T 1 : lock-x(b); B:=B 50; write (B); lock-x(a); read (A); A:=A+50; write (A); unlock(a); unlock(b); T 2 : lock-s(a); read (A); lock-s(b); display(a+b); unlock(a); unlock(b); Ovsem po poc atecnm soubehu T1 s T2, bude muset T2 cekat na uvolnen B (tj. na konec T1) a T1 na uvolnen A (tj. na konec T2) v t eto aplikaci zsk av an/uvol nov an z amk u se skr yv a hrozba uv aznut Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 16 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 17 T 1 : lock-x(b); B:=B 50; write (B); lock-x(a); Ilustrace uv aznut T 2 : lock-s(a); read (A); lock-s(b); resen uv aznut { jedna z transakc mus b yt vr acena (roll-back) a jej z amky uvolneny (vracen v sobe skr yv a hrozbu st arnut) st arnut lze zabra novat tm, ze pozadavky na z amky jedn e polozky uspokojujeme porad FIFO Transakcn zamykac protokol Zamyk an polozek pouze na dobu individu alnch prstup u k polozk am dat neodstran hrozbu nekonzistentnosti Potrebujeme protokol rzen soub eznosti transakc indikujc kdy transakce m uze zamknout a odemknout datovou polozku, aby se dos ahlo izolovanosti soub ezn ych transakc Transakcn zamykac protokol omez pocet mozn ych pl an u Mnozina techto pl an u je podmnozinou vsech mozn ych pl an u N as zajmaj pouze ty transakcn zamykac protokoly, kter e povoluj pouze koniktov e serializovateln e pl any, kter e jsou ekvivalentn nekter emu z jejich seriov ych pl an u vz ajemne se se lis pouze poradm proveden nekoniktnch operac plat, ze operace jsou koniktn, pokud operuj se stejnou polozkou a alespo n jedna z nich je write Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 18 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 19

Dvouf azov y transakcn protokol na b azi zamyk an Dvouf azov y transakcn protokol na b azi zamyk an Two-Phase Locking Protocol, 2PLP Jeden z protokol u, kter y zajist'uje koniktovou serializovatelnost Pokud nen zn am a z adn a dals informace o zp usobu zpracov an dat je 2PLP nutn y a postacujc protokol pro zajisten koniktov e serializovatelnosti Princip 2PLP { jakmile transakce odemkne n ekter y z amek, nesm uz zamknout z adn y dals z amek Transakce proto vyd av a zamykac a odemykac pozadavky ve 2 f azch, v zamykac (r ustov e) f azi a v odemykac /couvac) f azi r ustov a f aze zsk av an z amk u, serializov an transakc podle pravidel: a) pokud objekt nen zamknut y, zamkne se a transakce pokracuje b) pokud je objekt uzamknut y koniktnm z amkem jinou transakc, transakce cek a na jeho odemknut c) pokud je objekt uzamknut y nekoniktnm z amkem jinou transakc, objekt se sdl, transakce zsk a z amek a pokracuje d) pokud je objekt jiz zamknut y stejnou transakc, zamknut se uplatn a transakce pokracuje. (Pokud uplatnen br an koniktn z amek, pouzije se pravidlo b) couvac f aze uvol nov an z amk u { lze prov adet POUZE PO poslednm zsk an z amku Uv aznut 2PLP neres { zamezen uv aznut lze dos ahnout napr. vnucenm pevn eho razen zprstup novan ych dat Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 20 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 21 Z amky, kdy uvolnit z amek? Dvouf azov y transakcn protokol na b azi zamyk an vnucenm pevn eho razen zprstup novan ych dat T 1 : lock-x(b); B:=B 50; write (B); lock-x(a); read (A); A:=A+50; write (A); unlock(b); unlock(a); r ustov a f aze couvac f aze T 2 : lock-s(b); lock-s(a); display(a+b); unlock(b); unlock(a); kask adnmu vracen lze zabr anit tm, ze transakce uvol nuj exkluzivitn z amky az jsou proveden e { striktn (strict) dvouf azov y protokol na b azi zamyk an data zapsan a neprovedenou transakc jsou exkluzivne zamcen a do doby uplatnen commit, takze jin e transakce je nemohou cst jakmile se transakce stane proveden a nebo se zrus, TPM odemkne vsechny objekty dosud zamknut e touto transakc pokud se vsechny z amky uvol nuj az pri commit transakce, pak se jedn a o prsn y (rigorous) dvouf azov y protokol na b azi zamyk an transakce mohou b yt serializovan e v porad uplat nov an commit ob e tyto verze 2PLP se casto pouzvaj v komercnch DBS Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 22 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 23

Dvouf azov y transakcn protokol na b azi zamyk an Pokud by se exkluzivitn z amky uvol novaly po proveden posledn operace ale pred prechodem transakce do stavu proveden a, pl an by byl neobnoviteln y: Drvejs transakce T uvoln sv e z amky a zatm neprovede commit. Mezitm pozdejs transakce U pouzije odemcen e objekty a stane se provedenou. Pot e T zkrachuje ale U je jiz proveden a a provedla nef erov e cten a nem uze b yt obnoven a, ponevadz je jiz proveden a 2PLP, automatick e generov an z amk u transakce mohou vyd avat instrukce read/write bez z adost o zsk an z amk u, pokud proveden instrukc read/write zajist'uje spr avce z amk u po implicitn alokaci z amk u vsechny automaticky zsk avan e z amky se vrac po proveden/zrusen transakce (prsn y protokol) proveden operace read (D): (syst em provede lock-s(d) az m uze a pot e provede read(d)) if T i drz z amek D then read(d) else begin je-li to nutn e vyck a se az z adn a jin a transakce nedrz lock-x (D); T i zsk a lock-s (D); read(d) end Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 24 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 25 2PLP, konverze z amk u Racion aln potreba konverze sdlen ych z amk u na exkluzivitn z amky T 1 : T 2 : read (A); read (A); read (C); display(a+b); write (A); cist y 2PLP nut T 1 na zac atku zamknout A exkluzivne 2PLP umozn uvolnit z amek A v T 1 po z apisu A T 1 a T 2 nemaj sanci na soubeznost resenm je umoznit T 1 zamknout A pro read sdlene a posl eze pro write pov ysit z amek A na exkluzivn 2PLP, konverze z amk u Ilustrace konverze z amk u { mozn y pl an (jen locks) T 1 : lock-s (A); lock-s (B); lock-s (C); lock-x (A); unlock (A); unlock (B); unlock (C); T 2 : lock-s (A); lock-s (B); unlock (A); unlock (B); nav ysen lock S lock X lze prov adet pouze v r ustov e f azi, ponzen lock X lock S pouze v couvac f azi Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 26 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 27

2PLP, automatick e generov an z amk u proveden operace write (D): (syst em provede lock-x(d), resp. m en lock-s(d) na lock-x(d) az m uze a pot e provede write (D)) if T i drz lock-x(d) then write(d) else begin je-li to nutn e vyck an az z adn a jin a transakce nedrz z adn y z amek polozky D; if T i drz lock-s(d) then zmen se lock-s(d) na lock-x(d) else T i zsk a lock-x (D); write(d) end 2PLP, ochrana pred kask adnm vracenm pri obnov e Princip 2PLP se zajist enm obnovitelnosti bez kask adnho vracen { transakce, kter a cte nebo zapisuje jist y objekt, se mus pozastavit do doby az se jin a transakce, kter a jiz zapsala do t ehoz objektu, stane provedenou nebo zrusenou. Pro podporu tohoto pravidla, transakce postupne zsk avan e z amky drz az do prechodu do stavu proveden a nebo zrusen a Pokud se st av a proveden a (po t commit), drz si z amky az do doby, nez se objekty zaps do trval e pameti Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 28 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 29 Kritika zamyk an Spr ava z amk u predstavuje zv ysen rezie Zamykat se mus i cist e dotazy, aby si zajistilo, ze transakce nectou data pr ave modikovan a jin ymi transakcemi Dals prklad vysok e rezie zamyk an { Dva klientsk e procesy bezc soubezne postupne zvysuj hodnoty n objekt u. Necht' jsou spusten e ve stejnou dobu a bez stejne dlouho a nez avisle samostatn ymi transakcemi inkrementuj kazd y z n objekt u. Pravdepodobnost, ze se soucasne pokus o prstup ke stejn emu objektu je v pr umeru 1/n, zamyk an je opravdu potreba pouze jednou za n proveden transakc. Kritika zamyk an Neregulovan e zamyk an m uze zp usobit uv aznut Prevence uv aznut serializac mozn ych alokac omezuje soubeznost Detekce uv aznut nen vhodn a pro interaktivn programy Aby se zamezilo kask adnmu vracen transakc, z amky se uvol nuj az v okamziku commit transakce V yrazne se tm snizuje potenci aln soubeznost Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 30 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 31

Prklad 1 Prklad 1, pokracov an Server spravuje objekty a 1, a 2,..., a n, API pro klienty poskytuje operace read(i), write (i, hodnota) a server res transakce T : x = read(i); write(j, 44); U : write(i, 55); write(j, 66) Pro prpad, kdy jsou z amky v T uvol novan e okamzite po zprstupn en datov e polozky, ilustrujte prolozen U a T s dopadem, ze v ysledn y pl an nen serializovateln y T je v koniktu s U pri prstupu k a i, porad je T pak U T je v koniktu s U pri prstupu k a j, porad je U pak T pl an nen serializovateln y Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 32 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 33 Prklad 2 Prklad 3 Server spravuje objekty a 1, a 2,..., a n, API pro klienty poskytuje operace read(i), write (i, hodnota) a server res transakce T : x = read(i); write(j, 44); U : write(i, 55); write(j, 66) Kter e z n asledujcch pl an u jsou serializovateln e a kter e se mohou ci nemohou vyskytnout pri 2-f azov em zamyk an? Server spravuje objekty a 1, a 2,..., a n, API pro klienty poskytuje operace read(i), write (i, hodnota) a server res transakce T : x = read(i); read(j); U : write(i, 55); write(j, 66) Necht' inci aln hodnoty a i a a j jsou 10 a 20 Necht' read-only transakce T uvol nuje z amky okamzit e Necht' transakce U pouzv a 2-f azov e zamyk an Bude transakce T zsk avat konzistentn hodnoty? Budou objekty na disku nekonzistentn? Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 34 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 35

Prklad 3, pokrac. Prklad 3, pokrac. T je read-only a je v koniktu s U: a i zsk av a T pred U, a j zsk av a U pred T Prolozen nen serializovateln e Hodnoty zskan e T jsou x = 10, y = 66, v ysledn e hodnoty objekt u jsou a i = 55, a j = 66 S eriov e proveden T pred U d av a x = 10, y = 20, a i = 55, a j = 66 S eriov e proveden U pred T d av a x = 55, y = 66, a i = 55, a j = 66 Neexistuje z adn a z aruka konzistentnho zsk av an, protoze prekr yv an transakc m uze objekty, pot e, co jsou odemcen e, zmenit Objekty na disku nekonzistentn nebudou Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 36 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 37 Grafov y (stromov y) protokol rzen soub ehu transakc Grafov y (stromov y) protokol rzen soub ehu transakc Zamykac pravidla protokolu 2PLP jsou zalozena na koniktech mezi operacemi read a write na nejmens mozn e granularit e Moznost vzniku uv aznut transakc 2PLP neres. Preventivn ochranou pred vznikem uv aznut je napr. vnucen porad zprstup nov an dat Pokud lze apriori denovat mozn a porad zprstup nov an datov ych polozek zachov avajc ve vsech prpadech linearitu postupu, pak lze pouzt pro apriorn zajist en koniktov e serializovatelnosti Necht' ex. mnozina datov ych objekt u D = {d 1, d 2,..., d n } Necht' ve vsech transakcch zprstup nujcch d i i d j plat, ze se mus d i i d j zprstup novat ve shodn em porad, tj. pokud se denuje relace d i d j, pak plat, ze transakce si d i mus zamknout drve, nez d j relaci lze modelovat acyklick ym grafem { stromem Omezme se na exkluzivn prstup, jsou povoleny pouze instrukce lock-x grafov y (stromov y) protokol rzen soub ehu transakc kter y vrozen e vzniku uv aznut zamezuje Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 38 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 39

Grafov y (stromov y) protokol rzen soub ehu transakc T i m uze inici alne (tj. nedrz-li z adn y z amek) zamknout kteroukoliv polozku dat n asledne T i m uze zamknout Q pouze tehdy, kdyz uz zamkla rodice Q z amek m uze transakce uvolnit kdykoliv jedna T m uze zamknout{odemknout tut ez datovou polozku pouze 1x plat, ze vsechny pl any vyhovujc stromov emu protokolu jsou koniktov e serializovateln e (bez d ukazu) Grafov y (stromov y) protokol rzen soub ehu transakc denice porad zprstup nov an v ysledek logick e organizace dat, napr. hierarchick e uspor ad an objekt u v ysledek fyzick e organizace dat vlozeno v yhradne pro ucely rzen soubeznosti,... prklad stromu prstup u pro skupinu transakc T 1,..., T 4 : T 1 : lock-x(b);lock-x(e);lock-x(d); unlock-x(b);unlock-x(e);lock-x(g); unlock-x(d);unlock-x(g); T 2 : lock-x(d);lock-x(h); unlock-x(d);unlock-x(h); T 3 : lock-x(b);lock-x(e); unlock-x(e);unlock-x(b); T 4 : lock-x(d);lock-x(h); unlock-x(d);unlock-x(h); Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 40 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 41 Grafov y (stromov y) protokol rzen soub ehu transakc prklad pl anu povolen eho tmto stromov ym protokolem Grafov y (stromov y) protokol rzen soub ehu transakc zajist'uje koniktovou serializaci zabra nuje uv aznut, transakce se nemus vracet (roll-back) z amky lze uvol novat drve nez v 2PLP, doby cek an jsou krats, zvysuje se soub eznost nedostatky: v ysledn y pl an nezarucuje obnovitelnost v ysledn y pl an nezarucuje vyloucen kask adnch vracen transakce si mus form alne zamykat data, ke kter ym nepristupuj { zbytecn a rezie zamyk an { potenci aln zdroj snizov an soubeznosti plat (bez d ukazu) { pro danou mnozinu transakc mohou existovat koniktov e serializovateln e pl any, kter e nelze zskat stromov ym protokolem d ale plat (bez d ukazu) { existuj pl any zskateln e 2PLP a nezskateln e stromov ym protokolem a naopak Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 42 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 43

Protokol rzen soub ehu transakc s casov ymi raztky Protokol rzen soub ehu transakc s casov ymi raztky Rzen soub eznosti transakc zalozen e na jejich casov em razen TPM zaznamen av a pro kazd y sdlen y objekt dobu poslednho cten a z apisu pri kazd e operaci s objektem na b azi casov ych raztek transakc dan ych okamzikem jejich vzniku rozhoduje, zda { lze operaci prov est bezprostredne, { lze operaci prov est pozdeji (transakce bude cekat) nebo { se mus operace odmtnout (transakce krachuje, klient ji m uze restartovat) pozadavek transakce na z apis je validn pouze kdyz objekt byl naposledy cten y nebo zapisovan y drvejs transakc nebo nebyl dosud zprstupnen y pozadavek transakce na cten je validn pouze kdyz objekt byl naposledy zapisovan y drvejs transakc nebo nebyl dosud zprstupnen y Kazd a operace transakce s datab azovou prom ennou je pri prov ad en casov e validovan a Porad koniktnch operac mus respektovat porad transakc v case Jestlize jist a transakce prepse v datab azi hodnotu promenn e X, v uci n stars transakce jiz nem uze tuto hodnotu cst Jestlize jist a transakce prepse v datab azi hodnotu promenn e X, v uci n stars transakce jiz nem uze tuto hodnotu prepsat Jestlize jist a transakce precte v datab azi hodnotu promenn e X, v uci n stars transakce jiz nem uze tuto hodnotu prepsat Jestlize k pozitivn validaci casov eho porad koniktn operace transakce nedojde, transakce krachuje, rus se (roll-back) a bude se (klientem) restartovat v nov em (pozdejsm) case (zmnen a stars transakce se stane v uci zmnen e jist e transakci mlads) Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 44 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 45 Protokol rzen soub ehu transakc s casov ymi raztky Protokol rzen soub ehu transakc s casov ymi raztky Pri startu transakce T i se T i prideluje casov e raztko, T S i T S i je jedinecn e, v jednom okamziku doch az k jedin e ud alosti T S i denuje pozici transakce T i na casov e ose T S i < T S j { transakce T i predch az transakci T j, je stars T S i > T S j { transakce T i n asleduje po transakci T j, je mlads Pozadavky transakc se tot aln e rad podle prslusn ych casov ych raztek transakc pozadavek transakce na write objektu je validn pouze kdyz objekt byl naposled cten y / zapisovan y drvejs (stars) transakc a nebo nebyl dosud zprstupnen y v ubec pozadavek transakce na read objektu je validn pouze kdyz objekt byl naposled zapisovan y drvejs (stars) transakc a nebo nebyl dosud modikovan y Casov e raztko T S se m uze odvozovat ze syst emov ych hodin (nejsme zatm v distribuovan em prostred) z logick eho ctace inkrementovan eho kazd ym spustenm transakce Casov a raztka urcuj porad serializovatelnosti pokud T S i < T S j, protokol mus zajistit realizaci pl anu, kter y je ekvivalentn s eriov emu pl anu, ve kter em T i predch az T j Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 46 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 47

Protokol rzen soub ehu transakc s casov ymi raztky Protokol rzen soub ehu transakc s casov ymi raztky Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 48 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 49 Protokol rzen soub ehu transakc s casov ymi raztky Datov e polozce Q se pridel dve casov a raztka W Q { nejvets casov e raztko z transakc, kter e uspesne provedly write(q) R Q { nejvets casov e raztko z transakc, kter e uspesne provedly read(q) Tato casov a raztka se koriguj pri kazd em read(q) nebo write(q) Protokol pomoc casov ych raztek zajist'uje, ze koniktn operace read a write se provedou v porad dan em casov ymi raztky transakc Protokol rzen soub ehu transakc s casov ymi raztky Necht' T i prov ad read(q): Jestlize T S i < W Q, { stars T i potrebuje cst hodnotu Q, kter a byla prepsan a mlads T { operace read(q) v T i se odmt a a { T i se vrac (roll-back) vr acen e T i se pridel nov e casov e raztko a T i se spust znovu Jestlize T S i W Q, { pak T i potrebuje cst hodnotu Q jiz denovanou stars T nebo T i { read(q) v T i se provede a R Q se nastav na max(r Q, T S i ) pokud je v dobe testu transakce T, kter a provedla z apis, proveden a { pokud T proveden a nen, T i pock a dokud se T nestane provedenou nebo zkrachuje a test se zopakuje Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 50 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 51

Protokol rzen soub ehu transakc s casov ymi raztky Necht' T i prov ad write(q): Jestlize T S i < R Q, { pak hodnota Q vytv aren a v T i byla potrebn a uz drve { T i predpokl ad a, ze tato hodnota uz nem a b yt vytv aren a, { operace write se odmt a a T i se vrac (roll back) Jestlize T S i < W Q, { pak T i predpokl ad a, ze zapisuje,,uz starou"hodnotu Q, { operace write se odmt a a T i se vrac (roll back),... V ostatnch prpadech se write provede a oprav se W Q Pouzit y algoritmus zarucuje koniktovou serializaci (koniktn operace se provedou v porad TS transakc ) Pouzit y algoritmus nezp usobuje uv aznut (z adn a transakce necek a) Protokol rzen soub ehu transakc s casov ymi raztky Predpoklad { transakcm se pridel TS pred provedenm 1. instrukce, takze T S 2 < T S 3 Pl an je realizovateln y i 2-f azov ym zamykacm protokolem. Ex. pl any pro 2-f azov y zamykac protokol nevyhovujc protokolu s casov ymi raztky a naopak Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 52 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 53 Protokol rzen soub ehu transakc s casov ymi raztky Protokol rzen soub ehu transakc s casov ymi raztky zajist'uje koniktovou serializovatelnost konikty jsou reseny v casov em porad podle casov ych raztek zamezuje uv aznut z adn a transakce trvale necek a nevylucuje moznost st arnut ke st arnut dojde kdyz posloupnost kr atk ych koniktnch transakc opakovane zp usobuje opakov an dlouh e transakce pokud se zjist existence opakovane restartovan e transakce, koniktn transakce by mely byt docasne zablokovan e Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 54 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 55

Protokol rzen soub ehu transakc s casov ymi raztky determinovan e pl any mohou b yt neobnoviteln e T i zkrachuje, ale T j pred zkrachov anm T i precetla data zapsan a T i. T j mus tudz zkrachovat t ez. Pokud je ale uz proveden a (commit), pl an je neobnoviteln y. Pokud dals transakce cetly data zapsan a T j, v ysledkem je kask adov e vracen. (jedno) mozn e resen zajist en obnovitelnosti a zamezen kask adov emu vracen: vsechny z apisy se provedou najednou na konci transakce (zapisuje pouze nezkrachovan a transakce) z apisy mus b yt vz ajemne vylouceny s ostatnmi prstupy k temto dat um z jin ych transakc zkrachoval a transakce se restartuje s nov ym casov ym raztkem Protokol rzen soub ehu transakc na b azi validace optimistick y protokol rzen soub ehu transakc efektivn protokol v prpad e mal e pravd epodobnosti konikt u mal e pravdepodobnosti konikt u = majorita transakc prov ad vetsinou pouze operace read efektivn = dosahuje vysok y stupe n mozn eho soubehu porad serializace se nepredurcuje vracet se mus pomerne m alo (koniktnch) transakc test validace se prov ad pri vyd an pozadavku na commit transakce cl validacnho testu m uze transakce zapsat transakc zpracovan e hodnoty dat (do doby testu uchov avan e ve vnitrn pameti) do b aze dat, aniz by tm porusila podmnky serializovatelnosti pl anu soubezne resen ych transakc? Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 56 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 57 Protokol rzen soub ehu transakc na b azi validace Protokol rzen soub ehu transakc na b azi validace Predpoklad { ve v etsin e aplikac je mal a pravd epodobnost, ze dv e transakce koniktn e pristupuj ke stejn emu objektu Transakcm se umozn bezet soubezne a predpokl ad a se, ze ke konikt um dojde v yjimecne Pokud test odhal, ze konikt provedenm testujc transakce nevznikl: { Transakce bez z apis u se stane proveden a po validaci. { Transakce se z apisy se stane proveden a az po korekci DB Transakce ctou kopie (,,commitnut ych") objekt u vytv aren e v RAM, nef erov e cten nevznik a Pri resen commit transakce se testem validnosti soub ehu ov er, zda doslo ke koniktu Pokud test odhal, ze konikt vznikl, koniktn transakce se abortuj a provedou znovu Hroz nebezpec st arnut transakc Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 58 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 59

Protokol rzen soub ehu transakc na b azi validace implementace { kazd a transakce sest av a ze 3 f az operacn f aze, T cte hodnoty z datab aze, ukl ad a je do sv ych lok alnch kopi a modikuje (write) pouze odpovdajc lok aln prom enn e Nef erov e cten se neuplatn, cten se prov ad z permanentn e ulozen ych objekt u, resp. z jejich kopi v RAM Pro kazdou transakci TPM udrzuje dva seznamy { seznam objekt u cten ych danou transakc { seznam objekt u modikovan ych danou transakc Protokol rzen soub ehu transakc na b azi validace validacn f aze (podrobn y popis testu viz d ale) { spoust ji prkaz pro commit transakce { transakce nemodikujc b azi dat, se stane provedenou okamzit e po pozitivnm ukoncen validace { transakce modikujc b azi dat, m uze sv e lok aln promenn e zapsat do b aze dat pouze kdyz tm neporus podmnky serializovatelnosti, a pot e se stane provedenou { viz dals f aze nespln en validace transakci krachuje a transakce se zopakuje f aze z apisu do b aze dat, b aze dat se aktualizuje a transakce se stane provedenou, jen kdyz byl test validace uspesn y a transakce zapisovala Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 60 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 61 Protokol rzen soub ehu transakc na b azi validace Princip validacnho testu pro T j (resen eho jako kritick a sekce v TPM) konikt nevznik a, pokud, plat jedna z n asledujcch dvou vztahov ych podmnek v uci vsem transakcm T i starsm nez T j (T S i < T S j ): { transakce stars nez T j je pred startem T j uz proveden a (tj. provedla aktualizaci b azi dat podle sv ych v ysledk u ulozen ych ve vnitrn pameti) { transakce stars nez T j je pred startem validace T j jeste aktivn, a { T i necetla objekty zapisovan e T j, (read x write) { T j necetla objekty zapisovan e T i, (write x read) { T i nemodikovala objekty zapisovan e T j, (write x write) a { T j nemodikovala objekty zapisovan e T i, (write x write) Zp etn a validace Zpetn a a dopredn a validace validujc transakce se overuje v uci transakcm, kter e se s n prekr yvaj a f azi validace zah ajily pred n Dopredn a validace validujc transakce se overuje v uci transakcm, kter e jsou v okamziku validace aktivn, tj. jsou v operacn f azi Pokud se validace a z apis do DB res jako kritick a sekce v TPM, pak stac testovat pouze kombinace read/write Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 62 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 63

Zp etn a validace transakc Zp etn a validace transakc zpetn a validace { v uci prekr yvajcm se transakcm T i s drvejsm zah ajenm validace a z apisu dat do DB m alo cten v jedn e T v se porovn av a se mnoha z apisy ve vce T i, vznikaj rezijn n aklady uchov av anm star ych z apisov ych mnozin po dobu co mohou b yt potreba pri koniktu krachuje T v, protoze T i jsou jiz proveden e validuje se T v, startt n=t 1, posledn proveden a T pred startem T v startt n+1=t 2, prvn proveden a T po startu T v finisht n =T 3, posledn proveden a T po startu T v boolean valid=true; for(int T i =startt n+1;t i <=finisht n ;T i ++){ if(read set of T v intersects write set of T i ) valid=false; } Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 64 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 65 Dopredn a validace transakc Dopredn a validace transakc dopredn a validace { v uci dosud aktivnm, dosud nevalidujcm se transakcm, pri koniktu lze zrusit validujc se transakci nebo validovan e transakce M alo z apis u v jedn e T v se porovn av a s mnoha ctenmi ve vce active i. POZOR: behem validace mohou vznikat dals transakce pouze psc transakce active i se kontrolovat nemus, read-only transakce T v validac projde vzdy validuje se T v, boolean valid=true; for(int T id =active 1 ;T id <=active N ;T i ++){ if(write set of T v intersects read set of T id ) valid=false; } krachovat m uze T v nebo vsechny koniktn active i Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 66 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 67

Protokol rzen soub ehu transakc na b azi validace Validacn sch ema automaticky br an kask adnm n avrat um skutecn y z apis se provede az je transakce proveden a Dlouh e transakce mohou st arnout dky cast emu v yskytu kr atk ych transakc dlouh e transakce se casto res opakovane ochrana: docasne se povol beh pouze st arnoucm transakcm Ke st arnut m a validacn protokol stejnou n aklonnost jako protokol na b azi casov ych raztek Protokol rzen soub ehu transakc na b azi validace Validacn sch ema rzen je optimistick e rzen soub eznosti transakce se res s optimistick ym predpokladem dokoncen sv eho behu a pozitivn validace na z aver zamyk an a casov e raztkov an jsou pesimistick a rzen soub eznosti prosazuj cek an/n avrat pri detekci kazd eho koniktu, a to i v prpadech, kdy by mohla b yt sance, ze pl an by mohl b yt koniktove serializovateln y Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 68 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 69 Prklad 4 Prklad 4, pokrac. Server spravuje objekty a 1, a 2,..., a n, API pro klienty poskytuje operace read(i), write (i, hodnota) a server res transakce T : x = read(i); write(j, 44); U : write(i, 55); write(j, 66) Transakce T a U jsou resen e soubezne Popiste v ysledky n asledujcch prpad u T pozaduje prov est commit prvn a pouzv a se zpetn a validace T pozaduje prov est commit prvn a pouzv a se dopredn a validace U pozaduje prov est commit prvn a pouzv a se zpetn a validace U pozaduje prov est commit prvn a pouzv a se dopredn a validace Prpomnka { z apisy lze delat po uspesn e validaci Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 70 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 71

Operace INSERT a DELETE v transakcch V transakcch se obecn e mohou vyskytnout i operace INSERT a DELETE polozek v DB, odstra nov an neexistujc polozky se ch ape jako logick a chyba cten dosud neexistujc polozky se ch ape jako logick a chyba,... DELETE Pri 2PL protokolu si mus transakce rusenou polozku exkluzivne zamknout V protokolu s TS se prov ad test podobn y testu pro write jestlize INSERT mlads transakce jiz precetla nebo zapsala hodnotu, kterou chce stars transakce rusit, stars transakce zkrachuje a zopakuje se 2PL protokol: transakce dostane na vkl adanou polozku exkluzivn z amek Protokol s casov ymi raztky z apisov a a ctec casov a raztka polozky nastav na cas startu transakce Porovn an metod rzen soub ehu transakc vsechny zp usobuj rezijn ztr aty a omezuj potencion aln soub eznost stritkn 2-f azov e zamyk an, pesimismus, cast e konikty dynamick e razen podle porad prstupu k objekt um vhodn e pri dominanci z apis u transakce se prpadne pozdrzuj, rus se jen pri uv aznut hlavn oblast pouzit { distribuovan e syst emy (CORBA,... ) pouzvaj souborov e servery casov e razen, pesimismus, cast e konikty statick e razen, pri startu transakce vhodn e pri dominanci cten transakce se res okamzite, pozdrzuj se i rus, zabra nuje se uv aznut pouzvaj souborov e servery Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 72 Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 73 Porovn an metod rzen soub ehu transakc optimistick a metoda, validace, rdk e konikty transakce bez bez omezen, validuj se pri dokoncen transakce m uze krachovat pri pokusu o prevod do stavu proveden a nebo i drve (pri tzv. dopredn e validaci) dals optimistick e metody, nic se nerus, res se konikt Dropbox { cloudov a sluzba, archivace soubor u, umoz nujc i sdlen soubor u { pokud 2 uzivatel e soucasne nahrazuj stejn y soubor, prvn ulozen se provede, druh e se odmtne Google Apps { cloudov a sluzba poskytujc webove orientovan e aplikace { pokud 2 uzivatel e soucasne pracuj s jednou aplikac, vid aktu aln sdlen y stav a uplatn se posledn korekce Wikipedia { akceptuje se prvn z apis sdlen e webovsk e str anky a n asledn y z apis se ozn am jako konikt a z ad a se resit konikt Jan Staudek, FI MU Brno PA150 { Rzen soubezneho provaden transakc 74