Lecture10-TransactionalProcessing
-
Upload
rubina-sheikh -
Category
Documents
-
view
216 -
download
0
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