1 / 13

Uváznutí (deadlock)

Uváznutí (deadlock). Doplňující referát k přednášce Transakce Šárka Hlušičková. 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.

derick
Download Presentation

Uváznutí (deadlock)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 Uváznutí – definice, podmínky

  3. Uvažujme systém s R záznamy, n+1 transakcemi a každá transakce sestává z a+1 update akcí. Každý update uzamkne náhodný záznam (uvolnění při commitu). Předpokládáme na << R (většina záznamů odemčena po většinu času). Pravděpodobnost čekání na zámek (kolize) je přibližně: PW= na/2R Zdůvodnění: Každá transakce má uzamčeno v průměru a/2 záznamů a počet ostatních transakcí je n. Transakce má a požadavků na zámek, tj. pravděpodobnost, že konkrétní transakce T bude během svého života čekat je: PW(T) = 1 – (1- PW)a≈aPW= na2/2R (Tj. rozepsaný součet konečné binom. řady 1 – + – ... + , protože na<<R, a tedy PW << 1, je možné členy zanedbat.) Pravděpodobnost uváznutí

  4. Uváznutí sestává z cyklu. Pravděpodobnost, že transakce T´ uvázne v cyklu délky 2, je PW (T)2/n (pst,ze T´´čeká na T´ je, PW(T)/n ). Pravděpodobnost, že uvázne v cyklu délky 3, je řádově PW (T)3, tj. obecně v cyklu délky i je to řádově PW (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ě: PW (T)2/n ≈ na4/4R2 a pst uváznutí v celém systému je přibližně: n2a4/4R2 Pravděpodobnost uváznutí (pokračování)

  5. Výše uvedený model je zjednodušený, nicméně z toho plyne: Pravděpodobnost čekání roste kvadraticky s velikostí transakce ( ≈ na2/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í ( ≈ n2a4/4R2), tj. transakční monitor musí hlídat jejich počet. Pravděpodobnost uváznutí– důsledky

  6. 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. Možnosti řešení

  7. 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í. Prevence uváznutí

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

  9. 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ů. Metody Wait/Die a Wound/Wait (pokračování)

  10. 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. Další metody prevence uváznutí

  11. 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ů (!). Vyhnutí se uváznutí(deadlock avoidance)

  12. 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. Detekce uváznutí a zotavení

  13. Lokoč, Jakub: Transakce [online], <http://siret.ms.mff.cuni.cz/lokoc/UK/Transakce.pdf>. Gray, Jim; Reuter, Andreas: Transaction processing: concepts and techniques. SanMateo (Cal.): Morgan Kaufmann, 1993. ISBN 1-55860-190-2. The Johns Hopkins University, Department of Computer Science: Operating Systems 600.418: Deadlocks [online], <www.cs.jhu.edu/~yairamir/cs418/os4/sld001.htm>. Kazuhiro Minami: CS411 Database Systems: 15: Distributed Transaction [online], <http://www.cs.uiuc.edu/class/fa08/cs411/slides/cs411-distributed-transaction.ppt>. Zdroje

More Related