TÉMATICKÝ OKRUH TZD, DIS a TIS



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

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

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

Transakční zpracování

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

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

Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu Obědvající filosofové

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

9. Transakční zpracování

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

DBS transakční zpracování

Distribuované algoritmy

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ

Transakce a zamykání Jiří Tomeš

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

IW3 MS SQL SERVER 2014

Architektura Pentia úvod

MĚSTO KROMĚŘÍŽ ORGANIZAČNÍ ŘÁD

Při překrývání se využívá toho, že ne všechny moduly programu jsou vyžadovány současně. Jakmile skončí využívání jednoho

Úkoly odborů Magistrátu hlavního města Prahy a zvláštních organizačních jednotek Magistrátu hlavního města Prahy v přenesené působnosti

a jiné elektronické přístroje včetně mobilů. Pracujte samostatně. Povolen je 1 list A4 vlastnoručně psaných poznámek k předmětu...

Databáze I. 5. přednáška. Helena Palovská

síťová verze - zaúčtování příjemek / výdejek POZOR! <ENTER> párování příjemek s fakturou umazávání plachty při nízkém kreditu

1. Programování PLC. Programovatelné automaty II - 1 -

DATABÁZOVÉ SYSTÉMY. Vladimíra Zádová, KIN, EF TUL - DBS

ZÁSADY poskytování účelových dotací pro sociální oblast

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

Informatika Algoritmy

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

Paměti a jejich organizace

BankKlient. FAQs. verze 9.50

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Relační databáze a povaha dat

Úvod do programování

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

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Architektura procesorů PC shrnutí pojmů

Pokud nebude na příkazové řádce uveden právě jeden argument, vypište chybové hlášení a stručný

Zuzana Čížková - OBCHODNÍ PODMÍNKY platné k: , 23:12

OS Deadlock a prevence

Standardní operační postup (SOP) ČNRDD/M02/verze 02. Elektronické záznamy

Rámcový manuál pro práci s programem TopoL pro Windows

1.1. Správa a provozní podpora APV ROS, HW ROS a základního SW

Dijkstrův algoritmus

Umělá inteligence I. Roman Barták, KTIML.

Předmět směrnice. Čl. 2 Základní pojmy, technické pojmy a zkratky

Rozdílová dokumentace k ovládání IS KARAT.net

Nabíječ NiCd a NiMh článků řízený mikroprocesorem

10. Editor databází dotazy a relace

6200 Bytový odbor. 2 - vyžaduje stanoviska příslušných útvarů MMB a organizací v rámci prodeje bytového fondu

Uživatelská příručka

77/ Pokyny č. 34. Českého úřadu zeměměřického a katastrálního

Schváleno: RMK dne , usnesení č. 370 Účinnost od:

LOGIC. Stavebnice PROMOS Line 2. Technický manuál

INFORMAČNÍ TECHNOLOGIE

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

189/2004 Sb. ZÁKON ze dne 1. dubna 2004 ČÁST PRVNÍ ZÁKLADNÍ USTANOVENÍ

Základy umělé inteligence

Volby a Referenda ALIS spol. s r.o.

Profilová část maturitní zkoušky 2015/2016

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

Povinnosti provozovatele a postup KÚ podle zákona č. 59/2006 Sb., o prevenci závažných havárií. PROVOZOVATEL 2c

VŠEOBECNÉ OBCHODNÍ PODMÍNKY

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

5 Rekurze a zásobník. Rekurzivní volání metody

Pojištění k americkým hypotékám České spořitelny

Principy operačních systémů. Lekce 3: Virtualizace paměti

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

13/sv. 18. NAŘÍZENÍ EVROPSKÉHO PARLAMENTU A RADY (ES) č. 258/97 ze dne 27. ledna 1997 o nových potravinách a nových složkách potravin

Manuál pro hospodaření MAS Strážnicko,

Výběr zhotovitele a poskytovatele služeb v oblasti montáží, oprav a odečtů bytových vodoměrů SV a TV, RTN TEXTOVÁ ČÁST ZADÁVACÍ DOKUMENTACE

KUPDATE. Copyright Petr Pelikán, PeliCo, Brno revize:

Certifikační autorita PostSignum QCA České pošty, s.p.

Zemní ochrana rotoru generátoru ve spojení proudové injektážní jednotky PIZ 50V a ochrany REJ 521

SMĚRNICE OBĚH ÚČETNÍCH DOKLADŮ. Obsah : OBEC BŘEZINA. Oběh účetních dokladů Strana 1 ČÁST PRVNÍ ÚVODNÍ USTANOVENÍ...2

DOPLNĚK. Projekt Informační systém základních registrů je spolufinancován Evropskou unií z Evropského fondu pro regionální rozvoj.

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Zablokování (Deadlock) Mgr. Josef Horálek

Některé poznatky z potvrzování geometrických plánů

Paralelní přístup k databázi

RADA EVROPSKÉ UNIE. Brusel, 24. května 2005 (OR. en) 15311/04 Interinstitucionální spis: 2003/0139 (COD) ENV 645 MI 303 RELEX 596 CODEC 1288 OC 470

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

Tabulka. Datová struktura, která umožňuje vkládat a později vybírat informace podle identifikačního klíče. Mohou být:

M I S Y S - W E B. Intranet řešení systému MISYS. Verze Příručka uživatele

v y z ý v á Rekonstrukce podlah v tělocvičnách v objektu Gymnázia, Praha 9, Českolipská 373

ÚZEMNÍ STUDIE KRAJINY

UNIVERZITA PALACKÉHO V OLOMOUCI

MYBIZ - Řešení pro zpřístupnění dat ze stávajících aplikací na mobilních zařízeních (Mobilize your business!) Požadavky zákazníka.

Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

Profilová část maturitní zkoušky 2015/2016

B4B35OSY: Operační systémy

HACCP pro pěstitelské pálenice

Management procesu II Mgr. Josef Horálek

B4B35OSY: Operační systémy

SMS Manager & HAIRSOFT MANUÁL

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Transkript:

TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 15. Otázka : Paralelní procesy v databázích. Transakce, zamykání, uváznutí. Dvoufázový protokol, časová razítka. Obsah : 1 Úvod 2 Paralelní procesy v databázích 3 Transakce, požadavek sériovosti 4 Zamykání 5 Uváznutí 6 Dvoufázový protokol 7 Časová razítka

1. Úvod 2. Paralelní procesy v databázích U většiny systému je nutné, aby databáze byla současně přístupná více uživatelům a aby s ní pracovalo současně (paralelně) více aplikací. V těchto případech nastává problém, jak zajistit, aby při paralelním zpracování dat v databázi nedocházelo vlivem špatné koordinace zpracování k chybám, k porušení konzistence a integrity. Pokud programy data jen čtou, je vhodné zajistit co největší míru paralelismu. Hodnoty dat se nemění a nemůže tedy vzniknout nekonzistence. U programů, které databázi modifikují (vkládají, ruší nebo aktualizují data) je však nutné zajistit, aby v každém okamžiku měl k datům přístup jen jediný program. Problémy s řízením paralelních procesů vznikají u aplikací s databází provozovaných na jediném počítači pomocí terminálové sítě, databází provozovaných prostřednictvím počítačové sítě a v největší míře u databází distribuovaných. 3. Transakce, požadavek sériovosti Obdobně jako při zajišťování konzistence dat vlivem chyby systému při jednouživatelském provozu databáze také zde je základní jednotkou zpracování transakce. Transakcí nazýváme základní logickou jednotku zpracování. Pro zachování integrity i konzistence musí transakce proběhnout buď celá, nebo vůbec ne. Říkáme, že transakce musí být atomická, tj. dále nedělitelná. Metody zajištění transakcí mají společnou vlastnost: pracují s kopiemi dat tak dlouho, dokud není jasné, že transakce proběhla bezchybně celá, nebo že je nutné ji zopakovat. Databázové transakce mohou být složeny z vysokého počtu operací. Transakce se vždy týkají jen změn v databázi. Metoda zpožděné aktualizace výsledky transakce nezapisuje přímo do databázového souboru, ale do pomocného systémového souboru log. Pokud dojde při transakci k chybě, může se celá provádět znovu, protože původní data nebyla změněna. Přitom se obsah pomocného souboru začne vytvářet znovu, původní je ignorován. Skončí-li transakce úspěšně, obsah souboru log se překopíruje do skutečného datového souboru. Pokud by došlo k chybě při kopírování, může se spustit znovu tolikrát, dokud neskončí tato druhá etapa úspěšně. Metoda přímé aktualizace Provádí zápis do výsledného datového souboru přímo, avšak pro případ neúspěšného ukončení transakce si zaznamená do souboru log počáteční hodnoty před transakcí objektů (záznamů, tabulek), které transakce modifikuje. Skončí-li transakce úspěšně, obsah pomocného souboru log se ignoruje. Dojde-li v průběhu transakce k chybě, překopírují se z pomocného souboru původní hodnoty zpět do datového souboru. U víceuživatelského provozu databáze požadujeme navíc tzv. sériovost transakcí. Jde o

přirozený požadavek, aby výsledek po paralelním provedení řady transakcí byl stejný, jako když by byly provedeny celé transakce postupně za sebou. Pro systém, kde každá transakce nejprve přečte objekt operací READ a teprve potom do něj zapíše operací WRITE, je možno sestrojit tzv. precendenční graf. Je to orientovaný graf, jehož uzly jsou transakce a jehož hrany jsou orientovány Ti Tj, jestliže (1) Ti provede WRITE(A) dříve, než Tj provede READ(A) (2) Ti provede READ(A) dříve, než Tj provede WRITE(A). T0 provede READ(A) dříve než T1 provede WRITE, dle (2) platí T0 T1 T1 provede READ dříve než T0 provede WRITE, dle (2) platí T1 T0 Jestliže získaný orientovaný graf obsahuje cyklus, pak testované schéma paralelního zpracování transakcí nesplňuje požadavek sériovosti. Pro systém, kde transakce zapisuje pomocí WRITE(A), aniž by předtím četla operací READ(A) lze ukázat, že neexistuje žádný efektivní algoritmus, který by rozhodl, zda dané schéma paralelního zpracování transakcí splňuje požadavek sériovosti. 4. Zamykání

Jedním ze způsobů, jak zajistit požadavek sériovosti, je zpřístupnit data vždy jen jediné transakci. Když jedna transakce získá k údaji výlučný (exklusivní) přístup, pak tento údaj nemůže modifikovat jiná transakce dříve, než první transakce skončí a uvolní přístup k údaji - a to i v případě, že byla při paralelním zpracování několikrát přerušena. Říkáme, že údaje jsou zamčeny. Jediný klíč ke každému zámku (při modifikaci) přiděluje systém pro řízení paralelního zpracování těm transakcím, které o něj požádají. Existuje několik úrovní zamykání údajů (CO se zamyká): 1. Na úrovni operačního systému definujeme soubor typu read-only a tak zakážeme zápis a modifikaci všem. 2. Na úrovni SŘBD v aplikačním programu definujeme svůj pracovní soubor jako soubor s výlučným přístupem (exclusive). Tak zamezíme přístup všem ostatním procesům, dokud náš program neskončí a neuvolní soubor. Použijeme příkaz k uzamčení a uvolnění souboru, říkáme, že soubor zamykáme explicitně. V SŘBD existují příkazy pro práci se souborem, které vyžadují výlučný přístup k souboru a tak si uzamykají soubor automaticky. 3. V aplikačním programu stačí často zamknout jen jeden nebo několik záznamů, ne celý soubor, aby tak byly ostatní záznamy přístupné ostatním uživatelům. Opět zamykání záznamů může být explicitní nebo automatické. 4. Některé SŘBD umožňují zamykat dokonce jen jednotlivé položky. Rozlišujeme zámky dvou základních druhů (JAK se zamyká) 1. zámky pro sdílený přístup (shared) umožňují údaje jen číst více transakcím současně, ne však do nich zapisovat 2. zámky výlučné (exclusive) umožní čtení i zápis vždy pouze jediné transakci. Pokud má jedna transakce údaj (soubor, záznam) uzamčený a další transakce jej chce uzamknout také, může dojít ke kolizi. Proto v SŘBD existují funkce testující, zda je údaj volný. Pokud není, je nutno situaci programově řešit (počkat na uvolnění, zrušit transakci ap.). Způsob zamykání (KDO zamyká) 1. Aplikační program (programátor) explicitním příkazem 2. SŘBD automaticky (implicitně) současně s některým příkazem pro manipulaci s daty Použití zámků však není jednoduché, nesprávné použití může vést k nesprávným výsledkům. Důvodem může být například uvolnění zámku příliš brzy (může dojít k nekonzistenci) 5. Uváznutí

Takovéto situaci, kdy obě transakce čekají, nelze žádný požadavek uspokojit a celý proces uvázne v mrtvém bodě nazýváme uváznutím (deadlock). Problém tedy je v tom, že pokud používáme zámků málo, hrozí nekonzistence, používáme-li zámků mnoho, hrozí uváznutí. Máme nyní dva problémy: splnění požadavku sériovosti a řešení uváznutí v mrtvém bodě. 1 Požadavek sériovosti K řešení prvního problému, požadavku sériovosti, se používá tzv. protokolu o zámcích. Je to řada pravidel udávajících, kdy může transakce zamknout a uvolnit objekty. Dvoufázový protokol 6. Jednoduchou metodou pro sestavení takového protokolu je metoda dvoufázového zamykání. Spočívá v tom, že v první fázi zámky jen zamykáme a neuvolňujeme, ve druhé fázi naopak jen uvolňujeme a nezamykáme. Často odemknou všechny objekty až před ukončením transakce. Pokud transakce schématu paralelního zpracování vyhovují protokolu o zámcích, je zajištěn požadavek sériovosti, není však vyloučena možnost uváznutí v mrtvém bodě. 2 Problém uváznutí se řeší pomocí dvou typů metod 1AA) prevence uváznutí, operace zamykání a uvolňování se řídí v transakcích tak, aby k uváznutí nedošlo 2AA) řešení nastalého uváznutí návratem po stopách některých transakcí ADD 1AA) Pro prevenci uváznutí existuje více technik. Nejjednodušší metodou prevence uváznutí je uzamčení všech položek, které transakce používá, hned na začátku transakce ještě před operacemi a jejich uvolnění až na konci transakce. Tak se transakce nezahájí dříve, dokud nemá k dispozici všechny potřebné údaje a nemůže dojít k uváznutí uprostřed transakce. Tato metoda však má dvě velké nevýhody 1. využití přístupu k položkám je nízké, protože jsou dlouhou dobu zbytečně zamčené 2. ransakce musí čekat až budou volné současně všechny údaje,které chce na začátku

zamknout, a to může trvat velmi dlouho. Jiná metoda prevence uváznutí využívá faktu, že k uváznutí nedojde, jestliže transakce zamykají objekty v pořadí respektujícím nějaké lineární uspořádání, definované nad těmito objekty (např. abecední ap.). Z hlediska uživatelského však takový požadavek je příliš omezující. Plánovače Některé systémy řeší problém uváznutí synchronizací paralelních transakcí pomocí plánovače. V SŘBD jsou zabudovány tyto programové moduly Modul řízení transakcí (RT); je to fronta, na kterou se transakce obracejí se žádostí o vykonání operací READ(X) a WRITE(X). Každá transakce je doplněna příkazy BEGIN TRANSACTION a END TRANSACTION. Modul řízení dat (RD) realizuje čtení a zápis objektů dle požadavků plánovače a dává plánovači zprávu o výsledku a ukončení. Plánovač zabezpečuje synchronizaci požadavků z fronty dle realizované strategie a řadí požadavky do schémat. Schéma pro množinu transakcí je pořadí, ve kterém se operace těchto transakcí realizují. Nejjednodušší schéma je sériové (vždy proběhne celá transakce, pak další), ovšem je málo průchodné. Cílem celé strategie je větší průchodnost systému. Plánovač při dvoufázovém zamykání vykonává tyto operace řídí zamykání objektů operace čtení a modifikace objektů povoluje jen těm transakcím, které mají příslušné objekty zamknuté sleduje, jestli transakce dodržují protokol dvoufázového zamykání; pokud zjistí jeho porušení, transakci zruší předchází uváznutí nebo ho detekují a řeší zrušením transakce. Časová razítka 7 Jiný způsob řízení paralelních transakcí je pomocí časových razítek (ČR). Časové razítko je číslo přidělené transakci nebo objektu databáze. Čísla tvoří rostoucí posloupnost (např. jsou fcí času), jsou jednoznačná pro všechny transakce a platí pro všechny operace transakce. Čísla používá plánovač pro řízení konfliktních operací READ(A) a WRITE(A). Konfliktními operacemi rozumíme dvě operace týkající se téhož objektu báze a alespoň jedna z nich je WRITE. Všechny páry konfliktních operací se provádějí v pořadí jejich ČR, pak vytvářejí sériová schémata. Princip základního plánovače založeného na ČR: Tento typ plánovače eviduje pro každý objekt A databáze dvě čísla největší ČR, které měla operace READ(A), již provedená nad objektem A, označíme jej R/ČR(A) největší ČR, které měla operace WRITE(A) provedená nad A, označíme jej W/ČR(A) Když plánovač obdrží požadavek s nějakým časovým razítkem ČR na čtení hodnoty objektu A, provede: je-li ČR < W/ČR(A) odmítne požadavek a zruší transakci, která požadavek zaslala, jinak vyhoví požadavku a aktualizuje hodnotu

R/ČR(A) = max( ČR, R/ČR(A) ) Když plánovač obdrží požadavek s nějakým časovým razítkem ČR na zápis hodnoty objektu A, provede: je-li ČR < W/ČR(A) or ČR < R/ČR(A) odmítne požadavek a zruší transakci, která požadavek zaslala, jinak vyhoví požadavku a aktualizuje hodnotu W/ČR(A) = ČR Zrušené transakce se znovu spustí s novou (vyšší) hodnotou ČR. Tento základní plánovač může způsobovat časté rušení transakcí. Existují jeho modifikace nebo jiné strategie plánovačů, které snižují počet zrušení transakcí. ADD 2AA) Řešení problému uváznutí Jestliže systém nepoužívá prevenci uváznutí, musí mít prostředky pro detekci (rozpoznání) uváznutí a obnovu činnosti umrtvených transakcí. Detekce se provádí obvykle použitím grafu relace "kdo na koho čeká". Je to graf, jehož uzly jsou transakce a orientované hrany představují uvedenou závislost. Záznamem a analýzou grafu čekání se rozpoznává uváznutí. Je-li v grafu cyklus, systém uvázl v mrtvém bodě. Jestliže taková situace nastane, systém musí jednu nebo více transakcí vrátit zpět (pomocí souboru log), čímž se zablokovaný přístup k datům (pro tuto transakci) odblokuje a umožní provést ostatní transakce. Připomíná to situaci, kdy se dva automobily potkají na úzké cestě a jeden musí vycouvat. Jestliže taková situace nastane, systém musí jednu nebo více transakcí vrátit zpět (pomocí souboru log), čímž se zablokovaný přístup k datům (pro tuto transakci) odblokuje a umožní provést ostatní transakce. Připomíná to situaci, kdy se dva automobily potkají na úzké cestě a jeden musí vycouvat. Obnovení činnosti se provádí pomocí souboru log, popsaného v předchozí kapitole. V případě potřeby je možno kteroukoliv transakci vrátit. Jde jen o to, kdy a které transakce se mají provést znovu. Systém vybírá takové transakce, aby s celým postupem byly spojeny co nejmenší náklady, k tomu bere v úvahu: - jaká část transakce již byla provedena, kolik dat transakce použila a kolik jich ještě potřebuje pro dokončení, kolik transakcí bude třeba celkem vrátit. Podle těchto kriterií by se mohlo dále stát, že bude vracena stále tatáž transakce a její dokončení by bylo stále odkládáno. Je vhodné, aby systém měl evidenci o vracených transakcích a při výběru bral v úvahu i tuto skutečnost.