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

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

Uváznutí (deadlock) Doplňující referát k přednášce Transakce Šárka Hlušičková.

Podobné prezentace


Prezentace na téma: "Uváznutí (deadlock) Doplňující referát k přednášce Transakce Šárka Hlušičková."— Transkript prezentace:

1 Uváznutí (deadlock) Doplňující referát k přednášce Transakce Šárka Hlušičková

2 Uváznutí – definice, podmínky Stav, kdy každá transakce z množiny uváznutých transakcí čeká na jinou transakci z této množiny, až uvolní prostředky. Aby nastalo uváznutí, musí být současně splněny všechny čtyři následující podmínky (Coffmanovy podmínky): Vzájemné vyloučení – prostředek může být přidělen pouze jednomu procesu Držení prostředků – proces smí držet a přitom žádat další prostředky Neodnímatelnost – prostředky může vrátit pouze proces, který je vlastní Čekání do kruhu – existuje cyklus ve waits-for grafu

3 Pravděpodobnost uváznutí

4 Pravděpodobnost uváznutí (pokračování) Uváznutí sestává z cyklu. Pravděpodobnost, že transakce T´ uvázne v cyklu délky 2, je P W (T) 2 /n (pst,ze T´´čeká na T´ je, P W (T)/n ). Pravděpodobnost, že uvázne v cyklu délky 3, je řádově P W (T) 3, tj. obecně v cyklu délky i je to řádově P W (T) i. Pokud tedy pravděpodobnost čekání je malá (řekněme menší než 0,1), pak lze tyto vyšší mocniny ignorovat, z čehož plyne: čekání je vzácné, cykly jsou vzácné 2 a většina cyklů je délky 2. Pst uváznutí transakce T je tedy přibližně: P W (T) 2 /n ≈ na 4 /4R 2 a pst uváznutí v celém systému je přibližně: n 2 a 4 /4R 2

5 Pravděpodobnost uváznutí – důsledky Výše uvedený model je zjednodušený, nicméně z toho plyne: Pravděpodobnost čekání roste kvadraticky s velikostí transakce ( ≈ na 2 /2R), je tedy vhodné využít: jemnou granularitu zamykání sdílené zámky pro čtení atd. což sníží kolize při zamykání (snížení kolizí na polovinu, snížení čekání na čtvrtinu a uváznutí dokonce na šestnáctinu). Pravděpodobnost uváznutí v systému roste kvadraticky s počtem transakcí ( ≈ n 2 a 4 /4R 2 ), tj. transakční monitor musí hlídat jejich počet.

6 Možnosti řešení Vůbec si problému nevšímat Detekce a zotavení Vyhnutí se uváznutí Prevence zajištěná nesplněním jedné ze čtyř podmínek Velmi jednoduchým řešením je nikdy nečekat a místo čekání na zámek transakci okamžitě rollbackovat, tím se ale můžeme dostat do livelocku (tj. transakce není nikdy dokončena), což se hůře detekuje a navíc spotřebovává zdroje.

7 Prevence uváznutí Alespoň jedna z nutných podmínek pro uváznutí není splněna: Vzájemné vyloučení – nelze, došlo by k porušení izolace. Držení prostředků – všechny potřebné zdroje buď alokujeme při spuštění transakce, nebo neumožníme alokovat další zdroje, má-li transakce už nějaký v držení. Může vést k umoření transakce nebo neefektivnímu využití zdrojů. Neodnímatelnost – transakci držící prostředek (resp. čekající na něj a držící jiný) abortujeme. Čekání do kruhu – zdroje jsou očíslovány a transakce smí žádat o zdroje pouze ve vzestupném pořadí.

8 Metody Wait/Die a Wound/Wait Každá transakce má přiděleno časové razítko, které určuje prioritu (při rollbacku se nemění). Pokud transakce T i čeká na zámek držený transakcí T j : Metoda Wait/Die Pokud T i je starší než T j, pak T i smí čekat na zámek držený transakcí T j. Pokud T j je starší než T i, pak T i rollbackuje (die). Metoda Wound/Wait Pokud T i je starší než T j, pak T j rollbackuje (wounded). Pokud T j je starší než T i, pak T i čeká na zámek.

9 Metody Wait/Die a Wound/Wait (pokračování) Wait/Die abortuje častěji, ale abortovaná transakce obvykle provede jen málo práce. Wound/Wait rollbackuje vzácně, ale abortovaná transakce běží déle. Porušuje podmínku neodnímatelnosti – prioritní/časové upřednostňování transakcí. Výhody: jednoduché, nemůže dojít k umoření transakce, protože starší transakce má vždy přednost. Nevýhody: může dojít k rollbacku, i přestože by nedošlo k uváznutí – ne zcela efektivní využití zdrojů.

10 Další metody prevence uváznutí Konzervativní 2PL protokol všechny zámky před spuštěním transakce (jinak čeká ve frontě) nutno vědět, co vše je třeba zamknout (obecně nerozhodnutelný problém). Timeout na přidělení zámku pokud transakce požaduje více zámků, každý požadavek je asociován s časem, a pokud není zámek v tomto čase přidělen, transakce rollbackuje.

11 Vyhnutí se uváznutí (deadlock avoidance) Dynamická metoda, zámek je přidělen pouze tehdy, pokud nemůže dojít k uváznutí. Systém udržuje bezpečný stav, kdy každému procesu lze přidělit všechny požadované zdroje – graf alokace zdrojů (hledání cyklu). To ale znamená znát stav všech zdrojů v systému a všechny požadavky procesů (!).

12 Detekce uváznutí a zotavení Timeout – transakce dlouho nic nedělá. Waits-for graf – minimalizace počtu abortů, cenou výpočetní náročnost: vrchol T – transakce T hrana z T do T´ – T čeká na zámek držený T´ nebo T bude čekat na zdroj, který bude přidělen T´(tj. T je za T´v seznamu) a jejich požadavky jsou nekompatibilní cyklus v grafu – uváznutí Zotavení obvykle znamená restart nějaké transakce, která se uváznutí účastnila. Výběr dle času spuštění, priority, délky logu... Může dojít k opětovnému deadlocku nebo i livelocku.

13 Zdroje Lokoč, Jakub: Transakce [online],. Gray, Jim; Reuter, Andreas: Transaction processing: concepts and techniques. SanMateo (Cal.): Morgan Kaufmann, ISBN The Johns Hopkins University, Department of Computer Science: Operating Systems : Deadlocks [online],. Kazuhiro Minami: CS411 Database Systems: 15: Distributed Transaction [online],.


Stáhnout ppt "Uváznutí (deadlock) Doplňující referát k přednášce Transakce Šárka Hlušičková."

Podobné prezentace


Reklamy Google