Lecture10-TransactionalProcessing

download Lecture10-TransactionalProcessing

of 21

Transcript of Lecture10-TransactionalProcessing

  • 7/23/2019 Lecture10-TransactionalProcessing

    1/21

    CMPT 431

    Dr. Alexandra Fedorova

    Lecture X: Transactions

  • 7/23/2019 Lecture10-TransactionalProcessing

    2/21

    2CMPT 431 A. Fedorova

    Transactions

    A transaction is a collection o actions lo!icall"#elon!in! to!et$er

    To t$e outside %orld& a transaction 'usta((ear as a single indivisible operation

  • 7/23/2019 Lecture10-TransactionalProcessing

    3/21

    3CMPT 431 A. Fedorova

    )se o Transactions *n

    Distri#uted +"ste's Correct concurrent operations

    , -xa'(le: u(datin! t$e #an account

    /10 ead t$e current #alance in t$e account

    /20 Co'(ute t$e ne% #alance

    /30 )(date t$e data#ase to record t$e ne% #alance, n concurrent access& o(erations done #" 'ulti(le t$reads 'a"

    interleave

    , T$is leads to incorrect o(eration

    , Transactions ensure (ro(er o(eration

    Masking failures

    , *n a re(licated #an data#ase , t$e account is u(dated at t%o sites, ne site is u(dated& t$e ot$er one cras$es #eore t$e u(date is

    co'(lete

    , T$e s"ste's state is inconsistent

    , Transactions ensure (ro(er recover"

  • 7/23/2019 Lecture10-TransactionalProcessing

    4/21

    4CMPT 431 A. Fedorova

    AC*D Pro(erties o Transactions

    Atomicity, transaction is indivisi#le , itco'(letes entirel" or not at all& des(ite ailures

    Consistency ,s"ste' rules 5invariants6 are

    'aintained des(ite cras$es or concurrent access

    Isolation, transactions a((ear indivisi#le toeac$ ot$er des(ite concurrent access, * 'ulti(le t$reads execute transactions t$e e7ect is

    t$e sa'e as i transactions %ere executed se8uentiall"in so'e order

    Durability , e7ects o co''itted transactionssurvive su#se8uent ailures

  • 7/23/2019 Lecture10-TransactionalProcessing

    5/21

  • 7/23/2019 Lecture10-TransactionalProcessing

    6/21

    6CMPT 431 A. Fedorova

    Concurrenc" Control

    *'(le'ented usin! locs 5or ot$ers"nc$roni9ation (ri'itives6

    A nave a((roac$: one !lo#al loc , notransactions can (roceed si'ultaneousl". Badperformance

    A #etter a((roac$: associate a loc %it$ eac$data ite' 5or !rou( o ite's6

    Ac8uire locs on ite's used in transactions

    Turns out how "ou ac8uire locs is ver"i'(ortant

  • 7/23/2019 Lecture10-TransactionalProcessing

    7/217CMPT 431 A. Fedorova

    Concurrenc" Control

    Transaction 1

    loc5x6

    u(date 5x6

    unloc 5x6

    abort

    Transaction 2

    loc5x6

    read5x6

    unloc 5x6commit

    sawinconsiste

    nt data!

  • 7/23/2019 Lecture10-TransactionalProcessing

    8/218CMPT 431 A. Fedorova

    +trict T%o;P$ase Locin!

    P$ase 1: A transaction can ac8uire locs& #utcannot release locs

    P$ase 2: A transaction releases locs at the

    end, %$en it a#orts or co''its

  • 7/23/2019 Lecture10-TransactionalProcessing

    9/219CMPT 431 A. Fedorova

  • 7/23/2019 Lecture10-TransactionalProcessing

    10/2110CMPT 431 A. Fedorova

    Deadloc =$en %e ac8uire 'ore t$an one loc at once %e are (rone to

    deadlocks

    Tec$ni8ues a!ainst deadlocs:

    , Prevention

    , Avoidance

    , Detection

    Prevention:loc orderin!. Do%nside:'a" li'itconcurrenc". Locs are $eld lon!er t$an necessar"

    Avoidance: i a transaction $as %aited or a loc or toolon!& a#ort t$e transaction. Do%nside: transactions are

    a#orted unnecessaril" etection:%ait;or !ra($ 5=F@6 , %$o %aits or %$o'. *

    t$ere is a c"cle& a#ort a transaction in a c"cle. Do%nside:constructin! =F@s is ex(ensive in distri#uted s"ste's.

  • 7/23/2019 Lecture10-TransactionalProcessing

    11/2111CMPT 431 A. Fedorova

    Maintainin! AC*D Pro(erties

    To 'aintain AC*D (ro(erties& transaction(rocessin! s"ste's 'ust i'(le'ent:, Concurrenc" control 5*solation& Consistenc"6

    , ailure "ecover# $Atomicit#% urabilit#&

  • 7/23/2019 Lecture10-TransactionalProcessing

    12/2112CMPT 431 A. Fedorova

    T"(es o Failures

    Transaction abort , to resolve deadloc or asre8uested #" t$e client

    Cras', loss o s"ste' 'e'or" state. Dis 5or

    ot$er non;volatile stora!e6 is e(t intact

    isk failure

    Catastrop'ic failure , 'e'or"& dis and#acu( co(ies all disa((ear

    (e will discusst'ese in detail

  • 7/23/2019 Lecture10-TransactionalProcessing

    13/2113CMPT 431 A. Fedorova

    A#ort ecover"

    Acco'(lis$ed usin! transactional log

    Lo! is used to >re'e'#er? t$e state o t$es"ste' in case recover" is needed

    o% lo! is used de(ends on u(date se'antics:

    , *n;(lace u(dates 5ri!$t a%a"6

    , Deerred u(dates 5at t$e end o transaction6

  • 7/23/2019 Lecture10-TransactionalProcessing

    14/2114CMPT 431 A. Fedorova

    Transactions =it$ *n;Place

    )(dates )(date: record an undo record 5e.!.& t$e old

    value o t$e ite' #ein! u(dated6 in an undolog& and u(date t$e data#ase

    ead: si'(l" read t$e data ro' t$e data#ase

    Co''it: Bus$ data#ase c$an!es to dis& thendiscard undo records

    A#ort: )se t$e undo records in t$e lo! to #acout t$e u(dates

  • 7/23/2019 Lecture10-TransactionalProcessing

    15/2115CMPT 431 A. Fedorova

    Transactions %it$ Deerred

    )(dates )(date: ecord a redo record 5e.!.& t$e ne%

    value o t$e ite' #ein! u(dated6 in a redo lo!

    ead: co'#ine t$e redo lo! and t$e data#ase

    to deter'ine t$e desired data

    Co''it: )(date t$e data#ase #" a((l"in! t$eredo lo! in order& Bus$ t$e lo! to dis& thenre(ort successul co''it

    Here commit needs not ush thedatabase to disk !ust the log

    A#ort: do not$in!

  • 7/23/2019 Lecture10-TransactionalProcessing

    16/2116CMPT 431 A. Fedorova

    Cras$ ecover"

    A cras$ 'a" leave t$e data#aseinconsistent

    ,T$e data#ase 'a" contain data ro'unco''itted or a#orted transactions

    ,T$e data#ase 'a" lac u(dates ro'co''itted transactions

    Ater t$e cras$ %e %ould lie

    , e'ove data ro' unco''itted or a#ortedtransactions

    , e;a((l" u(dates ro' co''itted transactions

  • 7/23/2019 Lecture10-TransactionalProcessing

    17/2117CMPT 431 A. Fedorova

    ecover" =it$ )ndo Lo!!in!

    All co''itted transactions %ould $ave #eenBus$ed to dis& so no need to redo t$e'

    )se undo records to re'ove data ro'

    unco''itted or a#orted transactions

    =$at i an u(date %as %ritten to data#asebefore t$e undo record %as %ritten to lo!

    "rite#ahead log rule$A undo record must be

    fushed to disk beore the corresponding update isrefected in the database

  • 7/23/2019 Lecture10-TransactionalProcessing

    18/2118CMPT 431 A. Fedorova

    ecover" %it$ edo Lo!!in!

    co''it? lo! record 'ade it

    to dis %edo rule$ We must fush the commit record to disk

    beore telling the client that transaction is committed

  • 7/23/2019 Lecture10-TransactionalProcessing

    19/2119CMPT 431 A. Fedorova

    Peror'ance Considerations:

    Dis Access -ac$ transaction necessaril" involves dis access

    5ex(ensive6

    To reduce (eror'ance costs& lo! is e(t on a

    se(arate dis t$an data#ase Lo! is %ritten se8uentiall" under nor'al o(eration

    +e8uential %rites are ast

    T$at is %$" redo lo!!in! is #etter or (eror'ance&since "ou dont $ave to Bus$ t$e data#ase to dison co''it

    Data#ase is u(dated as"nc$ronousl"& (a!es areeventuallyBus$ed to dis& so its not a (eror'ance#ottlenec

  • 7/23/2019 Lecture10-TransactionalProcessing

    20/21

    20CMPT 431 A. Fedorova

    Peror'ance Considerations: Lo!

    +i9e Lo! %ill ee( on !ro%in! orever

    To (revent t$is& %e use c$ec(oints

    * t$e data $as #een Bus$ed to t$e data#asedis& discard corres(ondin! co''it records

    For eac$ transaction& ee( a lo! se8uencenu'#er 5L+

  • 7/23/2019 Lecture10-TransactionalProcessing

    21/21

    21CMPT 431 A Fedorova

    +u''ar"

    Transactions are used or concurrent o(erationsand or 'asin! ailures

    AC*D (ro(erties:

    , Ato'icit", Consistenc"

    , *solation

    , Dura#ilit"

    To 'aintain t$ese (ro(erties& data#asesi'(le'ent:, Concurrenc" control 5t%o;($ase locin!& deadloc

    resolution6

    , Failure recover" 5lo!!in!& redoEundo6