1 / 22

Transactions

Transactions. System transactions Transakce nad všemi zdroji , nejenom datovými objekty v databázi Např . t ransakce nad datovými objekty v databázi Systémové transakce dělat krátké (pro jeden request) Transakce přes více requestů jsou dlouhé Business transaction

coy
Download Presentation

Transactions

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. Transactions • System transactions • Transakcenadvšemizdroji, nejenomdatovýmiobjekty v databázi • Např. transakcenaddatovýmiobjekty v databázi • Systémovétransakcedělatkrátké (pro jeden request) • Transakcepřesvícerequestůjsoudlouhé • Business transaction • Typicky se skládá z řadysystémovýchtransakcí • Nedá se nahraditsystémovoutransakcí, protožesystémovétransakcenemajíbýtdlouhé

  2. Offline Concurrency • Zodpovědnostzadodržení ACID vlastností business transakcemezisystémovýmitransakcemi je ponechánanaprogramátorovi (enterprise) aplikace

  3. Transactions • ACID • Atomicity (atomičnost) • Transakcemůžeproběhnoutbuďcelá, nebovůbec • Ukončenítransakceoperacemi commit/rollback • Consistency (konsistence) • Transakceprovádísama o soběsprávnývýpočet • Neporušujekonsistencyzdrojů (dat) • Isolation (izolovanost) • Paralelněprobíhajícítransakcesivzájemněneškodí • Různéstupněizolovanostitransakcí • Durability (trvalost) • Výsledkytransakce, kterábylaukončenaoperací commit jsoutrvalé (ipohaváriisystému)

  4. Atomičnosttransakce Po úspěšnémukončenítransakcejsouzdrojeopět v konzistentnímstavu V průběhutransakcenemusíbýtzdroje v konzistentnímstavu Zahájenítransakcezdrojejsou v konsistentnímstavu čas Průběhtransakce

  5. Izolovanosttransakcí • Problémy • Dirty read • T1:write(A), T2:read(A), …. T1:commit/rollback • Lost update • T1:write(A), T2:write(A), …, T1:commit • Unrepeatable read • T1:read(A), T2:write(A), … • Phantom • V průběhu T1 jinátransakce T2 vytvořízdroj, který, kdybyexistovalpřizahájení T1, T1 by s nm pracovala

  6. Izolovanosttransakcí • Stupněizolovanostitransakcí

  7. Optimistic versus pessimistic offline concurrency control • Optimistic: • Pravděpodobnostkonfliktu je malá • Předpokládáme, žekonfliktnenastane • Nedělámeprevencikonfliktu • Konfliktřešíme, ažkdyžnastane – ošetřenívýjimky • Nejobvyklejšíimplementace – každýzdrojmápřiřazenočísloverze • Obdobařízenísoučasnéhopřístupukezdrojovýmkódůmsystémytypucsv/svn.

  8. Optimistic offline concurrency control System transaction Business transaction Business transaction

  9. Optimistic offline concurrency control System transaction Business transaction Business transaction

  10. Optimistic versus pessimistic offline concurrency control • Optimistic • Pessimistic: • Pravděpodobnostkonfliktu je velká • Preventivněbránímevznikukonfliktu • Nejobvyklejšíimplementace – zamykánízdrojů • Business transakcemusízískatzámekzdrojepředtím, než se zdrojemzačnepracovat • Nebo uživatelnesmípřijítani o částsvépráce

  11. Pessimistic offline concurrency control Business transaction Business transaction

  12. Pessimistic offline concurrency control

  13. Optimistic versus pessimistic concurrency control • Pessimistic: • Lock manager • Dobré, pokud je součástídoménovéhomodelu • V (i) pamětinebo v (ii) databázidržíseznamzamčenýchobjektů. Pokudaplikaceběžínaclusteruserverů, musíbýttentoseznamuložen v databázi. • Sdílené (shared locks) zámky pro čtení, výhradní (exclusive locks) zámky pro zápis. • Kompatibilitazámků: SH x SH ano, SH x EX ne, EX x EX ne • Business transakcenemanipuluje se zámkypřímo, ale zásadněprostřednictvím lock managera, který je jejichvlastníkem

  14. Optimistic versus pessimistic concurrency control • Pessimistic: • Lock manager • Protocol lock managera • kdyzamknout– jde-li to, pakdřívenežzdrojzískám (mámjistotu, žepracuji s nejaktuálnějšíverzízdroje). Úplněnejlepší je zamknoutvšechnyzdrojedříve, než s nimiuživatelzačnepracovat, nemá-li to vlivnaomezeníprůchodnostisystému. • co zamknout – typicky ID zdroje (známho, podlenějvyhledávám), • kdyodemknout – nejlépenakonci business transakce • co dělat, kdyžnelzezamknout – nejjednodušší je transakcizrušit (rollback)

  15. Optimistic versus pessimistic concurrency control • Pessimistic: • Lock manager • Protocol lock managera • Tabulkazámkůspravovaná lock managerem • Serializovanýpřístup • Tabulkazámků v paměti – serializacenaúrovniprogr. jazyka • Tabulkazámků v databázi – serializacepomocísystémovétransakcenastupniizolovanosti SERIALIZABLE (současnéinserty a ready)

  16. Optimistic versus pessimistic concurrency control • Pessimistic: • Lock manager • Protocol lock managera • Tabulkazámkůspravovaná lock managerem • Nebezpečídeadlocku • Nečekatnazámek, radějivyhoditvýjimku, pokud se nepodařízámekzískathned. • Pozor EJB transkace – čekajínazámek!

  17. Optimistic versus pessimistic concurrency control • Pessimistic: • Lock manager • Protocol lock managera • Tabulkazámkůspravovaná lock managerem • Nebezpečídeadlocku • Lost transactions • Klientskýproces “spadne” uprostředtransakce • U webovéaplikacetypickyuživateltransakcinedokončí • Transakceneníschopnauvolnitzámky • Timeout naúrovniaplikacenebolépenaúrovniaplikačníhoserveru (typicky timeout http session) – potimeoutu se uvolní (nebozinvalidní) zámky

  18. Coarse-grained Lock • Zamykánískupinobjektůjednímzámkem • Výhodyoprotizamykáníjednotlivýchobjektů: • Optimistickézamykání – pro zamčení (opatřeníverzí) je třebanačístvelkémnožstvíobjektů • Pesimistickézamykání – rozsáhlátabulkazámků – sériovýpřístup – časovědlouhotrvajícítransakcepřivelkémmnožstvíobvjektů

  19. Coarse-grained Lock Optimistickézamykání – sdílenýobjektverze

  20. Coarse-grained Lock Pesimistickézamykání – zamykánísdílenéhoobjektuverze

  21. Coarse-grained Lock Pesimistickézamykání – zamykáníkořene

  22. Business transakce • Neimplementujsvůjvlastní lock manager nebotransakční monitor • Pochopdobře, jakfungujetransakčnímechanismusTvéhoaplikačníhoserveru

More Related