TOLEDO IBARRA IBARRA MIGUEL ANGEL 7° A ISC
Paradigmas de interacción entre r!ces!s Paradigma 1: servidores replicados En este cas! "!s ser#id!res mane$an %mediante m&"ti"es instancias' rec(rs!s c!martid!s ta"es c!m! dis!siti#!s ! arc)i#!s*
Paradigma 2: algoritmos de heartbeat L!s r!ces!s reriódicamente de+en intercam+iar in,!rmación c!n mecanism!s ti! send-recei#e* send-recei#e*
Paradigma 3: algoritmos de pipeline La in,!rmación rec!rre (na serie de r!ces!s (ti"i.and! a"g(na ,!rma de send-recei#e*
Paradigma 4: probes (send) y echoes(ecos) En este cas! "a interacción entre "!s r!ces!s ermite rec!rrer rec!rrer gra,!s ! /r+!"es %! estr(ct(ras din/micas' diseminand! in,!rmación*
Paradigma 5: algoritmos de broadcast Permiten Permiten a"can.ar (na in,!rmación g"!+a" en (na ar0(itect(ra distri+(ida* Sir#en ara t!ma de decisi!nes distri+(idas*
Paradigma 6: token passing En m(c)!s cas!s "a ar0(itect(ra distri+(ida reci+e (na in,!rmación g"!+a" a tra#1s de" #ia$e de t!2ens de c!ntr!" ! dat!s* Tam+i1n ermite "a t!ma de decisi!nes distri+(3das*
Paradigma 7: manager!orkers Reresenta Reresenta t3icamente (na im"ementación distri+(ida de" m!de"! de +ag !, tas2s*
Paradigma de servidores replicados.
Paradigma de servidores replicados. Modelos de solución de flósoos. E" rimer m!de"! de s!"(ción 0(e )em!s #ist!4 es e" centralizado. En este cas! "!s r!ces!s 5i"ós!,! se c!m(nican c!n un r!ces! 6aiter 0(e decide e" acces! ! n! a "!s rec(rs!s* La segunda solución que llamaremos distribuida supone cinco procesos Waiter cada uno de los cuales maneja un tenedor. Para este problema un Filósofo puede comunicarse con dos Waiters (izquierdo y derecho) solicitando y de!ol!iendo el recurso. Los Waiters "# se comunican entre ellos. $n la tercer solución que llamaremos descentralizada cada Filósofo !e un %nico Waiter. $n cambio los Waiters se comunican entre ellos (de hecho cada uno con sus dos !ecinos) para decidir el manejo del recurso asociado a &su' Filósofo.
Algoritmos de heartbeat. E" aradigma de )eart+eat es &ti" c(and! tenem!s s!"(ci!nes iterati#as 0(e se 0(ieren ara"e"i.ar*
Uti"i.and! (n es0(ema di#ide 8 c!n0(er9 se distri+(:e "a carga entre ;!r2ers 0(e rea"i.an c/"c("!s : act(a"i.an c!n s(s res("tad!s a !tr!s ;!r2ers* Cada as!9 de+iera signi
'
Dec"araci!nes e inicia"i.aci!nes "!ca"es> %()*E +no terminado,
'
send #a"!res a "!s ;!r2ers #ecin!s>
receive #a"!res de "!s ;!r2ers #ecin!s> ctualizar !alores locales -
Algoritmos de heartbeat. El eemplo de image labelling. •
•
•
•
Si tenem!s (na imagen reresentada en (na matri. Image?m@n4 en m(c)!s cas!s es im!rtante searar"a en .!nas 0(e se identi<0(en c!n (n "a+e"* Un m!d! nat(ra" de ara"e"i.ar este ti! de a"icaci!nes es di#idir "a Imagen en P stris9 ! c!n$(nt! de <"as en "as 0(e (n r!ces! trata de !ner (n "a+e" a cada i@e"* Nat(ra"mente en cada cic"! "!s res("tad!s de+en ser trasmitid!s entre "!s r!ces!s #ecin!s !r0(e "as .!nas9 (eden ser c!martidas* Las iteraci!nes (eden ser <$as ! tener (n r!ces! c!!rdinad!r ! manager 0(e detecte c(and! ning(n! de "!s P r!ces!s ;!r2ers enc!ntró cam+i!s en e" "a+e""ing*
Algoritmos de heartbeat. Autómatas celulares/ el uego de la vida. M(c)as a"icaci!nes de sistemas ,3sic!s ! +i!"ógic!s (eden m!de"i.arse c!m! (na c!"ección de c(er!s 0(e reetidamente interact&an : e#!"(ci!nan en e" tiem!*
A"g(n!s e$em"!s m(: sim"es (eden m!de"i.arse c!n a"g&n ti! de a(tómata ce"("ar* La idea es di#idir e" esaci! en (n c!n$(nt! de c1"("as d!nde cada (na es (n a(tómata
O+#iamente "!s r!ces!s %c1"("as' interact&an c!n (n aradigma ti! )eart+eat4 en#iand! : reci+iend! mensa$es en cada cic"!*
E" $(eg!9 d(ra (n n&mer! redeterminad! de cic"!s4 !r "! 0(e n! )ar3a ,a"ta c!!rdinad!r*
La inicia"i.ación es de t!da "a gri""a4 a" a.ar*
Sin ana"i.ar "!s +!rdes : e@trem!s4 s(!niend! (n r!ces! Ce""?i4$ !r c1"("a : c!nsiderand! (n send n! +"!0(eante tenem!s (n códig!= C(A< e;change"$/n4 $/n& +)<= ro4 column4 state,> PROCESS cell "i#$ to n4 #$ to n& )<= state>
'
?eclaraciones de variables> @OR "! #$ to numenerations&
'
B intercambiar ino con los vecinos @OR "p # i0$ to iD$4 # 0$ to D$& send e;change "p4& +i4 4 state,> @OR "p #$ to & ' receive e;change "i4& +ro4column4 value,> uardar el valor de las c2lulas vecinas> ActualiFar el estado local> -
Paradigma del Pipelining. =ipos de problemas. Un ie"ine es (n arreg"! "inea" de r!ces!s <"tr!9 0(e reci+en dat!s de (n (ert! %cana"' de entrada : entregan res("tad!s !r (n cana" de sa"ida* Est!s r!ces!s %;!r2ers9' (eden estar en r!cesad!res 0(e !eran en ara"e"!4 en (n rimer es0(ema a "a.! a+iert! %6 en e" INPUT4 6n en e" OUTPUT'* Un seg(nd! es0(ema !si+"e es (n ie"ine circ("ar9d!nde 6n se c!necta c!n 6* Est!s es0(emas sir#en en r!ces!s iterati#!s ! +ien d!nde "a a"icación n! se res(e"#e en (na asada !r e" ie* $n un tercer esquema posible e*iste un proceso coordinador que maneja la &realimentación' entre Wn y W+.
Multiplicación de matrices con un Pipe de procesadores. La m("ti"icación distri+(ida de matrices A : B de n@n mediante (n ie n! arece (na a"icación nat(ra"9* A0(3 "a res!"#erem!s c!n (n ie cerrad! c!n c!!rdinad!r* E" c!!rdinad!r asar/ "as <"as de A !r e" cana" de entrada a" 6!r2er : "(eg! "as c!"(mnas de B a" 6!r2er : reci+ir/ en !rden in#ers! "as <"as de" r!d(ct! C*
Cada 6!r2er de" ie tiene tres ,ases de e$ec(ción= rimer! reci+e "as <"as de A4 g(ardand! "a rimera 0(e reci+e : asand! "as restantes* De este m!d! e" 6!r2er 6i tendr/ "a <"a i de A* En "a seg(nda ,ase rea"i.a n cic"!s de reci+ir (na c!"(mna de B4 asar"a : ca"c("ar (n r!d(ct! interi!r* L(eg! de "!s n cic"!s4 6i tiene C?i4 F* En "a tercer ,ase t!das "as <"as de C (:en entre "!s 6!r2ers4 terminand! en e" c!!rdinad!r* La s!"(ción 0(e #em!s a c!ntin(ación es m(: interesante !r e" gran ($! de mensa$es %casi c!ntin(!' en e" ie : !r "a im!rtancia de" !rden en 0(e se en#3an "!s dat!s inicia"es :
mensa$es a "!s 6!r2ers
C(A< result +?O17*E v"n&,>
<"as de C ara e" c!!rdinad!r
PROCESS Coordinator ' ?O17*E A"n4n&4 7"n4n&4 C"n4n&> ,nicializar y - @OR "i#3 to n0$& send vector"3& +A"i4 G&,>
en#3a "as <"as de A
@OR "i#3 to n0$& send vector"3& +7"G4 i&,>
en#3a "as c!"(mnas de B
@OR "i#n0$ to 3&
reci+e C en !rden in#ers!
receive result +C"i4 G&,> -
Multiplicación de matrices con un Pipe de procesadores. %or!ers. PROCESS %or!er "#3 to n0$& ?O17*E A"n&4 7"n&4 C"n&> ?O17*E temp"n&>
'
<"a : c!"(mna c!n "as 0(e tra+a$a
(sad! ara asar #ect!res
?O17*E total>
(sad! ara ca"c("ar e" r!d(ct! intern!
/ecibe las 0las de almacena la primera y pasa las otras receive vector"& +A,> @OR "i# D$ to n0$&
'
receive vector"& +temp,> send vector" D$& +temp,> 1$23"4 F1$ /ecibe las columnas de - y calcula el producto interno @OR "#3 to n0$& ' receive vector"& +7,>
O+tiene c!"(mna de B NO es e" &"tim! 6!r2er
)@ + H n0$, send vector"D$& +7,>
Ca"c("a e" r!d(ct! intern! 0(e "e c!rres!nde
total#3> @OR "!# 3 to n0$& total D# A"!& G 7"!&> C"& # total> -
5$/6$/ F1$ $n!7a su columna de 6 al siguiente Wor8er o coordinador )@ + H n0$,
NO es e" &"tim! 6!r2er
send vector"D$& +C,>
E*SE send result+C,>
/ecibe y pasa 0las anteriores de 6 @OR "#3 to 0$& ' receive vector"& +temp,>
O+tiene <"a res("tad!
de C )@ + H n0$,
NO es e" &"tim! 6!r2er
send vector"D$& +temp,>
E*SE send result+temp,> -
-
Paradigma de Prueba0Eco. Clases de problemas. Hr+!"es : gra,!s s!n (ti"i.ad!s en m(c)as a"icaci!nes distri+(idas ta"es c!m! +&s0(edas en "a 6EB4 +ases de dat!s4 sistemas e@ert!s : $(eg!s* Las ar0(itect(ras distri+(idas se (eden asimi"ar a "!s n!d!s de gra,!s : /r+!"es4 c!n cana"es de c!m(nicación 0(e "!s #inc("an* E" aradigma de r(e+aec! se +asa en e" en#3! de (n mensa$e %r!+e9' en#iad! !r (n n!d! a s( s(ces!r : "a esera !steri!r de" ec!9 0(e es e" mensa$e de res(esta* L!s a"g!ritm!s de r(e+aec! s!n artic("armente interesantes c(and! se trata de rec!rrer redes d!nde n! )a: %! n! se c!n!ce' (n n&mer! <$! de n!d!s acti#!s* %e$em"! c"/sic! s!n "as redes mó#i"es'*
Paradigma de Prueba0Eco. Clases de problemas. 7roadcasting. E" r!+"ema de )acer (n +r!adcast a t!d!s "!s dem/s n!d!s de (na red es (n c"/sic! en r!cesamient! distri+(id!* Un rimer en,!0(e es s(!ner 0(e a"g&n n!d! tiene "a t!!"!g3a de "a red en a"g(na ,!rma de matri. d!nde "a entrada ?i4 $ es tr(e si "!s n!d!s est/n c!nectad!s* Res!"#er e" +r!adcast c!n (n sanning tree s(!ne (n n!d! 0(e tiene decidid! e" r!(ting : "! en#3a a s(s s(ces!res4 c!n$(ntamente c!n e" mensa$e m*
Cada n!d! a s( #e. reci+e e" mensa$e m : e" sanning tree t : #is(a"i.a c(a"es s!n "!s )i$!s9 a "!s 0(e de+e reen#iar e" mensa$e* E" r!ces! es asincrónic!4 er! !dr3a ser sincrónic! %men!r e
Paradigma de Prueba0Eco. 7roadcasting con spanning tree. =IPE graph # 7OO* "n4 n&> C(A< probe"n& +graph spanning=ree> message m,> PROCESS
'
graph t> message m> receive probe"p& +t4m,> @OR "#3 to n0$ st es JhioK de p en t& send probe"& +t4 m,> PROCESS )niciator
'
graph topologL# t!!"!g3a de "a red> graph t # sanning tree de t!!"!g:> message m # mensa$e a en#iar !r +r!adcast> send probe"S& +t4m,> -
Paradigma de Prueba0Eco. 7roadcasting S)< spanning tree. B El broadcast se complica cuando PROCESS
'
7OO* lin!s"n& # vecinos del nodo p>
)<= num # nro. de vecinos> message m> receive probe"p& +m,>
en#iar e" mensa$e a t!d!s "!s #ecin!s* @OR "#3 to n0$ st lin!s"&& send probe"& +m,>
reci+ir n(m c!ias red(ndantes de m @OR "#$ to num0$& receive probe"p& +m,> PROCESS )niciator
'
e$ec(tad! s!+re e" n!d! S
message m # mensa$e a en#iar !r +r!adcast> send probe"S& +m,> -
Paradigma de Prueba0Eco. Cómo obtener la topologa de la red. La s!"(ción 0(e c!nstr(:e e" sanning tree es !+#iamente m/s e
Algoritmos de to!en passing. #tro paradigma de interacción muy utilizado se basa en un tipo especial de mensaje o &to8en' que puede utilizarse para otorgar un permiso (control) o para recoger información global de la arquitectura distribuida.
Un e$em"! t3ic! es e" cas! de tener 0(e c!ntr!"ar e@c"(sión m&t(a distri+(3da %!r e$em"! c!n sem/,!r!s distri+(id!s'*
Si !r e$em"! tenem!s (na BDD4 (n m!nit!r acti#! (ede ser "a s!"(ción m/s sim"e> m/s c!m"e$! es im"ementar sem/,!r!s distri+(3d!s en "a red %"! c(a" tiene (n a"t! c!st! en mensa$es ti! +r!adcast' : (na tercer !si+i"idad 0(e #erem!s a c!ntin(ación +asada en armar (n t!2en ring de r!ces!s 0(e c!!eran* 1i 3ser9+:n; son un conjunto de procesos de aplicación que contienen secciones cr7ticas y no cr7ticas.
Para n! !c(ar "!s r!ces!s User en e" mane$! de "!s t!2ens4 ideam!s (n r!ces! a(@i"iar %)e"er' !r cada User4 de m!d! de mane$ar "a circ("ación de "!s t!2ens* C(and! )e"er?i tiene e" t!2en adec(ad!4 signi Process (elper"i#$ to n& ' %()*E +true,
'
Esera e" t!2en
receive to!en"i& + ,> )@ +not emptL +enter"i&,,
'
User?i "! necesitaJ
receive enter"i& + , send go "i& + ,>
Ot!rga e" ermis!
receive e;it"i& + ,>
6ait !r e" e@it
send to!en " iD$ MO? n& + ,>
Pasa e" t!2en a" sig(iente
Process 1ser"i#$ to n& ' %()*E +true,
'
send enter"i& + ,> receive go"i& + ,>
SECCION CRITICA>
B Protocolo de Entrada a la SC
send e;it"i& + ,>
B Protocolo de Salida de la SC
SECCION NO CRITICA> -
E" a"g!ritm! tiende a ser ,air si "!s r!ces!s de#(e"#en e" t!2en* En cas!s rea"es a #eces "a circ("ación de t!2ens se )ace m/s "enta9 ara n! dem!rar "!s r!ces!s en c!m(nicaci!nes c!n "!s )e"ers*
ManagerN%or!ers con un 7ag o =as!s distribuido
E" c!ncet! de bag o" tasks 0(e #im!s s(!ne 0(e (n c!n$(nt! de ;!r2ers c!marten (na +!"sa9 0(e c!ntiene tareas ! r!ces!s indeendientes : dat!s c!martid!s* La idea es 0(e "!s ;!r2ers (eden )acer (s! de "!s dat!s : tareas as3 c!m! crear n(e#as instancias ! tareas 0(e 0(edan en "a +!"sa*
*a maLor virtud de este enoue es la escalabilidad L la acilidad para euilibrar la carga de trabao de los or!ers.
A)!ra ana"i.arem!s "a im"ementación de este aradigma c!n mensa$es en "(gar de mem!ria c!martida* Para est! (n r!ces! manager im"ementar/ "a +!"sa9 mane$and! "!s tas2s4 c!m(nic/nd!se c!n "!s ;!r2ers : detectand!
Eemplo de ManagerN%or!ers/ Multiplicación de matrices ralas. N!rma"mente e" r!d(ct! de d!s matrices A : B de n @ n e"ement!s signi
nr!* De e"ement!s n! cer! en (na <"a de A
pair GelementsA"n&>
(nter! a" 3ndice : #a"!r de cada n! cer!
de A
ManagerN%or!ers/ Multiplicación de matrices ralas. Proceso Manager. Module Manager =IPE pair # +)<= inde;4 ?O17*E value,> op get=as!+result )<= ro4 len> result pair "G& elems,> op putResult+)<= ro4 len> pair "G& elems,> 7O?I Manager )<= lengthA"n&4 lengthC"n&> pair GelementsA"n&4 GelementsC"n&> B Se supone A inicialiFada )<= ne;tRo#34 tas!s?one#3>
PROCESS Manager ' %()*E +ne;tRo H n OR tas!s?one Hn, '
5a"ta mandar tareas ! reci+ir res("tad!s )< get=as!+ro4 len4 elems,0000 ro#ne;tRo> len # lengthA"i&> copiar los pares de #$i% en elems ne;tRoDD> " & putResult +ro4 len4 elems,0000 lengthC"rolen> copiar los pares de elems a &elements'$ro!% tas!?oneDD> -
ManagerN%or!ers/ Multiplicación de matrices ralas.*os or!ers. PROCESS %or!er " # $ to num%or!ers& ' )<= length7"n&> pair Gelements7"n&>
se s(!ne inicia"i.ada B )<= ro4 lengthA4 lengthC> pair GelementsA4 GelementsC> )<= r4 c4 na4 nb> ?O17*E sum> %()*E +true,
'
O+tener (na <"a de A : ca"c("ar "a <"a de C CA** get=as!+ro4 lengthA4 elementsA,>
lengthC#3> @OR " i#3 to n0$& )< send putResult+ro4 lengthC4 elementsC,> -
=ransacciones sobre un servidor Una transacción de
erem!s tres es0(emas de c!ntr!" de c!nc(rrencia= +"!0(e!s4 c!ntr!" !timista : !rdenación !r tiem!*
Operaciones atómicas L Multithreading En (n sistema c!nc(rrente c!n m&"ti"es c"ientes : (n ser#id!r4 d!nde "!s c"ientes c!marten !+$et!s : m1t!d!s de acces! a "!s mism!s4 es imrescindi+"e aseg(rar "a at!micidad : c!nsistencia de "as !eraci!nes s!+re "!s dat!s
mltithreading * sincroni+aci,n
Tra+a$em!s (n !c! e" e$em"! de (n ser#id!r +ancari! : !eraci!nes sim"es de "!s c"ientes
De!sitar4 E@traer4 C!ns("tar Sa"d!4 C!ns("tar &"tim!s M!#imient!s4 Cam+iar C"a#e4 Pagar Ser#ici!s*** Imaginem!s e" escenari! de ! tar$etas tra+a$and! s!+re "a misma c(enta4 adem/s de !tras !eraci!nes ers!na"es9 ! dem!radas9* -#.# /yncroni+ed0 ait0 oti"y cliente
transparencia para el
@allas en un sistema CNS. 5a""as ,3sicas de" ser#id!r
Esta+"ecer (n r!ces! de rec(eración de ,a""as 0(e mantenga "a integridad de "as transacci!nes : re#enga "a r!agación de err!res* 5a""as en "!s dis!siti#!s de a"macenamient! de dat!s Mem!ria RAM4 Mem!ria de disc!
C)e0(e!s de aridad4 red(ndancia4 disc!s ese$ad!s4 a#is!s de ,a""as* 5a""as en "!s sistemas de c!m(nicación
Retard!s ar+itrari!s4 d("icación ! m!di
Necesidad de #eri
=ransacciones Atomicidad. L!s c"ientes necesitan 0(e s(s s!"icit(des a" ser#id!r sean atómicas94 es decir= Est1n "i+res de inter,erencia de !tras !eraci!nes de c"ientes c!nc(rrentes*
K Se c!m"eten e@it!samente ! +ien se retr!traigan sin de$ar ning&n e,ect! si e" ser#id!r ,a""a* Ana"icem!s e" cas! de tres c"ientes s!+re e" mism! !+$et! c(enta +ancaria4 rea"i.and! "as !eraci!nes de De!sitar4 E@traer : C!ns("tar* S(!ngam!s (n sa"d! inicia"4 0(e e" 0(e De!sita "! )ace !r (n m!nt! <$!4 e" 0(e e@trae !r (n !rcenta$e : e" 0(e C!ns("ta re0(iere Sa"d! : &"timas !eraci!nes*
Propiedades de =ransacciones Atómicas E" !+$eti#! de (n ser#id!r de transacci!nes es [email protected] "a c!nc(rrencia %e
(na transacción !
2 #islamiento Cada transacción de+e ser rea"i.ada sin inter,erencia
c!n "as dem/s* S(s res("tad!s intermedi!s n! de+ieran ser #isi+"es a "as dem/s*
Propiedades AC)?/ AtomicitL4 ConsistencL4 )solation4 ?urabilitL Atomicidad
Una transacción de+e ser a t!d! ! nada*
'onsistencia Los datos y procesos resultantes de una transacción deben mantenerse consistentes por la ejecución de la misma.
#islamiento $l tratamiento independiente y protegido de las transacciones e!ita que los estados intermedios condiciones otras transacciones. ?urabilidad L!s e,ect!s de (na transacción terminada c!rrectamente
de+en ree$arse en ,!rma esta+"e en e" sistema*
Acciones relacionadas con @allas. Si alla un proceso servidor
E" r!ces! ser/ reem"a.ad! !r !tr! 0(e de+e a+!rtar t!das "as transacci!nes n!
E" ser#id!r "e da (n tiem! de rec(eración ! de terminación a "a-s transacci!nes de" c"iente : "(eg! "as a+!rta* Si un proceso cliente detecta una alla del servidor
E" c"iente de+iera in,!rmarse de "a ,a""a : tener (na !"3tica ara reiniciar "as transacci!nes n! c!nc"(idas a" rec(erarse e" ser#id!r* En a"g(n!s cas!s se re0(erir/ "a interacción )(mana %deósit!s de c)e0(es en "!s ca$er!s !r e$em"!'*
Conceptos de Control de Concurrencia #ctali+aciones perdidas T!mem!s e" e$em"! de deósit!s
c!nc(rrentes c!rres!ndientes a" K de" sa"d!4 a artir de (n sa"d! dad!* Q(1 asa si n! se sec(encia"i.a "a !eraciónJJ ecperaciones inconsistentes T!mem!s e" e$em"! de (na
s(c(rsa" 0(e 0(iere e" sa"d! de "as c(entas en e""a4 mientras se est/n rea"i.and! (na trans,erencia entre d!s c(entas* Si +ien e" diner! n! se e@trae4 "a c!ns("ta (ede dar errónea si n! se ais"a c!rrectamente "a trans,erencia* 8ivalencia secencial
9peraciones conictivas a: ares de !eraci!nes 0(e s!n
nat(ra"mente c!nicti#as : n! se (eden rea"i.ar sim("t/neamente sin a"g&n riesg!*
Recuperabilidad de transacciones abortadas
;ectras scias E" r!+"ema de "eer (n dat! intermedi! desde (n
c"iente4 de (na transacción en c(rs! c!nc(rrentemente s!+re e" mism! !+$et!* Si esta seg(nda a+!rtara %imaginem!s (n deósit!'4 "a "ect(ra de "a rimera ser3a ,a"sa : !dr3a c!nd(cir a (n err!r %imaginem!s (na e@tracción ! c!ns("ta de sa"d!' ecperaci,n de la transacci,n Para e!itar el efecto anterior toda transacción que utilice alg%n dato intermedio dependiente de una transacción no 0nalizada debiera $1P$// antes de darse por 0nalizada. #bortos en cascada La c!nsec(encia inmediata de "! anteri!r es 0(e
(eden generarse a+!rt!s en cascada !r ,a""as9 en transacci!nes de "as 0(e deendan m(c)as !tras* E#itar est! im"ica MAOR dem!ra4 e#itand! "a "ect(ra de dat!s de !+$et!s c!n transacci!nes n! terminadas* scritras prematras Si tenem!s d!s !eraci!nes c!nc(rrentes de
escrit(ra %s(!ngam!s s(mar a (na c(enta'4 a" a+!rtar (na de e""as : tratar de rec(erar e" estad! re#i! de "a c(enta (ede ""e#ar a err!res* Est! se de+e a (na escrit(ra remat(ra9* Para e#itar"! "as escrit(ras de+en dem!rarse )asta c!m"etarse t!das "as dem/s escrit(ras endientes s!+re e" mism! !+$et!*
men!r e
mientras "a transacción 0(e !era s!+re 1" n! est/ terminada* De+en mantenerse ara !der rec(erarse de ,a""!s*
7loueos. Las transacci!nes de+en "ani
N!rma"mente se )a+"a de d!s ,ases de" +"!0(e!= (na de crecimient! de "a transacción4 en 0(e #a +"!0(eand! t!d! "! 0(e re0(iere ara s( e$ec(ción : !tra de ac!rtamient! ! la e0ciencia de la ejecución concurrente. 7loueo de dos ases estricto.
*as transacciones pueden abortar # se re0(ieren e$ec(ci!nes
estrictas ara e#itar "as "ect(ras s(cias : "as escrit(ras remat(ras* Ba$! (n r1gimen de e$ec(ción estricta4 (na transacción 0(e necesita "eer ! escri+ir (n !+$et! de+e ser retrasada )asta tant! t!da !tra transacción 0(e )a:a escrit! e" mism! !+$et! est1 terminada ! a+!rtada* Para )acer c(m"ir esta reg"a4 se mantienen t!d!s "!s +"!0(e!s a"icad!s d(rante e" r!gres! de (na transacción )asta 0(e 1sta se c!ns(ma ! a+!rta B"!0(e! de d!s ,ases estrict! ma:!r seg(ridad : men!r e
ES )MPOR=A<=E RE1*AR *A RA<1*AR)?A? ?E *OS 7*O1EOS. )mplementación de 7loueos.
En "!s ser#id!res4 n!rma"mente )a: (n gestor de bloqueos 0(e mantiene e" c!n$(nt! de +"!0(e!s %!r e$em"! (na ta+"a'4 d!nde cada +"!0(e! es (na instancia de "a c"ase BLOQUEO : mantiene a" men!s "a sig(iente in,!=
Identi
Identi
Ti! de B"!0(e!*
"otar que el gestor de bloqueo es un &scheduler' de recursos compartidos y como tal debe de0nirse una pol7tica de prioridades y=o asignación de los bloqueos.
7loueos indefnidos Un bloqueo inde0nido es (n estad! en e" 0(e cada miem+r! de (n gr(! de transacci!nes est/ eserand! !r a"g&n !tr! miem+r! ara "i+erar e" +"!0(e!* Se (ede #er en (n gra,! c!m! (n cic"! e0(i#a"ente a (n dead"!c2* La pre!ención de un bloqueo inde0nido es dif7cil porque requerir7a con!ertir en est>tico todo el pedido de recursos y realizarlo al inicio de la transacción (tipo sem>foro de sección cr7tica). La detección de un bloqueo inde0nido debe lle!ar a elegir alguna transacción a abortar para romper el bloqueo. =imeouts enta$as ara r!mer +"!0(e!s inde
c(and! "!s sistemas est/n s!+recargad!s*
An/"isis de" r!+"ema de "!s m&"ti"es c"ientes de Banc! : "!s +"!0(e!s Base de dat!s genera" de "!s c"ientes* Dat!s distri+(id!s de" c"iente en "as s(c(rsa"es de" Banc!* Acces! c!nc(rrente de" mism! c"iente* Oeraci!nes m("tic"iente4 c!nc(rrentes en e" tiem! : distri+(idas ge!gr/