Você está na página 1de 25

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

CONTROLE DE CONCORRNCIA C C
www.inf nf.pucrio.br/ /~casanova/L LivroCasanov va/ncap8.pd df

Este captulo d discute e em detalh o problema de controle de he e e conc corrncia e banco de dado distribu em os os udos. Inicialmente, p para motiv a var discu usso, s listados vrios p o s problemas que pod s deriam oc correr se no houv vesse qualquer cont trole de co oncorrncia Estes p a. problemas so chamados de anomalias de sinc s cronizao Em se o. eguida, um modelo abstrato de m o o saes, j incorpor rando me ecanismos de cont trole de integridade, trans intro oduzido. O critrio fu undamenta de correo para a al algoritmos de controle de conc corrncia, serializa o pr o, ximo assunto. O co orpo principal do cap ptulo apre esenta vri algoritm para c ios mos controle de concorr e ncia, grup pados em dois mto odos princ cipais, blo oqueio e pr-orden nao. A apresenta ao de cada mto odo ac companhad de um discus da ma sso sobr problem re mas adicio onais, ocas sionados pelo mto odo, que possam impedir o trmino normal das o trans saes. A discusso acerca d uso de bloqueios para ban o do e s ncos de dados cent tralizados apresent tada em separado do caso dis stribudo, e enquanto que o q uso de pr-ord denao co obre apena o caso distribudo. as d

8.1 IN NTRODU O
Esta s seo apr resenta ex xemplos de anomalias de sin ncroniza e o, intro oduz os cr ritrios bs sicos de c correo para contro de con p ole ncorrncia e a a nota ao a ser usada no captulo. O modelo de proce r o o essamento de transa aes adot tado nos ltimos captulos tamb bm aqu revisto. ui

8.1.1 A Anomalia de Sincroniza as o


Todo mtodo de contr role de concorrnc c cia deve evitar certos prob blemas, chamados de anomalia de sinc as cronizao que podem resulta do o, ar aces concor sso rrente irres strito aos d dados. As principais anomalias so: s perda da consist tncia do b banco acesso a dados inconsistentes o perda de atualiza aes Estas anomalias sero ilu s ustradas at travs de exemplos informais que s utiliz zam um banco de d dados cent tralizado (embora o fato de se centralizado er

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na1

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

ou d distribudo seja irrele evante par esta dis ra scusso). O esquem de relao Os mas do b banco so o seguint os tes:
CURSO OS[CODIGO O,NOME,NM MATR] repre esenta os c cursos ofer recidos em um

sem mestre, onde e


NMATR in ndica o nme de aluno matricula ero os ados em cad particula da ar

curso; TURM MAS[MATR RICULA,CODIGO] in ndica que a alunos (repr resentados pelo nm mero de MATRIC CULA) est matricu o ulados em que curs sos (repre esentados pelo CODIGO). H tr rs critrios de consistncia pa este ba s ara anco de dados: C1. o COD DIGO de cad curso da un nico. C2. todo C CODIGO usa ado em TURMAS deve estar listado em e
CUR RSOS

C3. para cada curs c, NMATR contm o total de alunos matriculados em c, confor a so R a m rme indicad em TURMA . do AS Consid dere agora trs tra a ansaes sobre es ste banco, definidas da , s segu uinte forma a:

M ATR RICULE (m,c c): COME ECODE-T TRANSACAO O M1. LEIA a tupla t d CURSOS com de S CODIGO=c; if t realmen nte existir th hen be gin M2. ESCRE EVA a tupla (m,c) em TU URMAS; incr remente de 1 o campo o NMA ATR de t; M3.

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na2

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII
REESCREVA a tupla t EM CUR RSOS; e nd. FIM-DETRA ANSACAO C ANC C ELE( (c ): INICIO ODETRA ANSACAO C1. REMO OVA a tupla de CUR a RSOS com CODIGO=c; C2. REMO OVA todas a tuplas de TURMAS co as om M-DE-TRANS SACAO CODIGO=c; FIM

L I S T E ( m ) COME ECODE-T TRANSACAO O L1. LEIA todas as MAT TRICULA=m; tuplas de TURMAS com

liste as tup plas lidas; L2. LEIA to odas as tupl las de CURS SOS tais que o CODIGO foi lido no comando e O o o ante erior; liste tod as das tupllas lidas; FIM M-DETRA ANSACAO

impo ortante ob bservar qu cada um destas transa ue ma s es preser rva a cons sistncia d banco. De fato, a transao MATRICUL do o LE(m,c) prim meiro verif fica a exist tncia do curso c antes de ef fetivament matricul m em c. Da me te lar esma form a trans ma, sao CAN NCELE(c) re etira o curs c de CU so URSOS e to odos os alunos
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na3

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

matr riculados n neste curs de TURM . No entanto, se estas tra so MAS e e ansaes fo orem exec cutadas c concorrent temente, sem ne enhum co ontrole, a anomalias de sincr ronizao podero o ocorrer. Por s simplicidad de, nos exemplos que se seguem execu s e m, ues conc correntes s sero repr resentadas por seq s ncias de rtulos co orrespondendo a co omandos q que acessam o banco de dad dos (os rt tulos so aqueles dados aos comandos na defini s io das transaes Comand que n acessa o s). dos no am banc de dad co dos no influenciam a discusso, sen m ndo, portan nto, ignora ados. Os v valores do parme os etros das transae so indicados fo es ora da prpria seq ncia de rtulos. Caso ha e aja mais de uma execu da me o esma trans sao, cada uma d das execu ues e os rtulos correspondentes sero o s s distin nguidos po subscrito or os. Assim a seqnc cia M3 C M11 M21 M 1 L1 L2 C1 C2 M12 M22 M32 ecuo se eqencial das transaes M MATRICULE (m,c), indica uma exe LISTE( (m), CANCE ELE(c) e MA ATRICULE2(m m,c), nesta ordem. Supon que o c nha curso INF20 exista e que o es 045 stado inicia do banc de al co dado os seja consisten nte. Cons sidere um ma exec cuo co oncorrente de MATR RICULE(82.3 3827,INF2045 e CAN 5) NCELE(INF20 045), repre esentada pela seguinte seq ncia de c comandos: M1 C1 C2 M2 M3 2 Esta s seqncia viola o se egundo crit trio de co onsistncia do banco De a o. fato, embora M corretamente det M1 termine qu o curso INF2045 ex ue xiste no es stado inicia e, portanto, o alun cuja ma al no atricula 82.3827 po nele se matricular, o ode e comando C1 e executado imediatam mente em seguida re emove est curso. Logo, te L no e estado fina do banc de dado a rela al co os, o assoc ciada a TUR RMAS conte a er tupla (82.3827,INF2045), se que haja nenhu a em uma tupla na rela associada a o CURS SOS com CODIGO=INF F2045. Isto constitui uma viola do segu o undo critr de rio cons sistncia. A Alm disto embora no produ erro propriamente, o comando o, uza M3 f fica sem ao pois o curso INF2 2045 no mais existe quando M execut m M3 tado. Este , ento, um exe emplo de uma exe ecuo concorrente de e trans saes qu leva a perda de consis ue stncia do banco, embora cada o trans sao por si s prese erve consis stncia. Como um outro exemplo de anom o o malias de sincroniza ao, suponha que o aluno 8 82.5694 est inicialme ente matric culado no c curso INF20 . Considere 045
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na4

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

uma execuo concorre a o ente de LIS STE(82.5694) e CANCE ELE(INF2045 represen 5) ntada pela seguinte s seqncia: L1 C1 C2 L2 2 Neste caso, o r resultado apresenta ado por LIS inco STE onsistente pois indic que o a ca aluno 82.56 est m 694 matriculado no curso INF2045, c o o como resultado de L mas este curso n listado por L2, pois foi cancelado po C1. Ou seja, L1, o p or o re esultado a apresentad por LIISTE no satisfaz a segund critrio de do ao do o cons sistncia d banco Temos aqui uma situao de ace do o. esso a dados inconsistentes por parte da transa LISTE. o concluir es seqn sta ncia de ex xemplos, s suponha n novamente que e Para c o cu urso INF204 exista i 45 inicialment Conside uma e te. ere execuo c concorrent de te 920,INF2045) representa ) ada pela seg guinte MATR RICULE (82.5 5782,INF204 e MATRICULE2(82.49 45) seqncia: M11 M 2 M22 M 2 M21 M31 M1 M3 Esta e execuo leva a uma perda de atualiza o pois o valor fina de al NMA ATR para o curso INF2 2045 reflete apenas a matrcula de 82.578 , e no a dos e a 82 dois alunos. Is se deve ao fato d M3 incr sto e de rementar e reescrev o valor lido ver r por M1, e no o valor corrente d NMATR. Isto , M 1 e M12 lem amb o de M1 bas o valor inicial de NMATR p e para o curso INF204 ; M31 e M 2 ambas incrementam 45 M3 este valor; mas M31 escreve so obre o valor criado por M32, em luga de ar incre ement-lo. or e cer e tambm le eva (O leito deve se convenc de que o ltimo exemplo t perd de cons da sistncia do banco). o Isto co ompleta a nossa disc cusso sobre anoma alias de sincroniza A o. Se 8.1.2 in o ntroduzir uma class de exec se cues con ncorrentes, chamada de as seria alizveis, o onde estes problemas no ocor s rrem.

8.1.2 M Modelage do Sis em stema


O estudo de c controle de concorrncia ser feito as e ssumindo-s o se mesmo modelo de SGBD distrib budo e de transa e es usado nos cap tulos ante eriores. Es seo recorda os aspect sta tos do mo odelo rele evantes pa a ara discu usso sobre controle de conco e orrncia. A nve lgico, o banco de dado des el o os scrito por um esqu uema conc ceitual glob consist bal tindo de um conjunto de objeto lgicos. A nvel f o os sico, o ba anco des scrito por uma srie de esque e emas inter rnos, um para cada n a onde est arm e mazenado; cada esq quema int terno cons siste de u conjunt de um to objetos fsicos Os ma s. apeamento do esq os quema conceitual g global para os a esqu uemas int ternos de efinem a forma de distribuio do banco e a d
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na5

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

corre espondnc entre o cia objetos fsi icos e obje etos lgico Estes mapeame os. entos pode ero dete erminar qu certos conjuntos de obje ue s etos fsico armaze os enem cpias dos mesmos dados. Os o objetos lg gicos so manipulad dos atrav de s comandos da LMD e os objetos fs sicos atrav de ae element s es tares. A exec cuo de u uma transa ao con ntrolada pe gerente de transa elo e aes (GT) do n on foi sub ) nde bmetida. A nvel lgi ico, a exec cuo de uma transao proc cessa-se da seguinte forma: a e
COME O-DE-TRAN NSAO: o GT ao in nterceptar este comando cria uma

rea de trabalho para a transao; a coman ndos da LM consultas puras acessam objetos lg MD: gicos do banco de d dados traz zendo-os para a rea de tr rabalho, s j l n se no estive erem. Atua alizaes sobre os objetos l lgicos s mantidas na prpria rea de o a traba alho, no s tornando visveis d imediat a outras transae se de to es; FIM-DE-TRANSA AO: inv voca o prot tocolo bifs sico para m modificar todas t as c cpias de todos os objetos lgicos afetados por atualiza es execut tadas pela transao Os valor dos obj o. res jetos lgico so obtidos da re de traba os ea alho. Supore emos que em cad n participando do proce e da essamento da o trans sao h u uma rea d trabalho da transa de o ao. Todas as oper raes a nvel lg gico so sempre t traduzidas em seq ncias de operae a nvel fsico. Mai precisam e es is mente, uma execu de o um g grupo de transaes gera, em cada n onde o b s m banco est armazen nado, uma seqncia de aes elementa a a s ares, que suporemos serem de dois tipos s s e s: R(X) de que era ores dos o objetos fsicos cujo nome n ao d leitura q recupe os valo est no conjun nto X para a rea de trabalho local da tra a e ansao qu gerou a ao; ue W(X) ao d atualiza de ao que e escreve os novos va s alores dos objetos fs sicos co em X no banc de dados local. Assim, a execu o de um comando da LMD (que um opera m o ma o a nvel lgico) p poder gerar vrias aes do tipo R(X) para rec o ) cuperar ob bjetos fsico que ainda no e os esto na rea de tr rabalho da transa Porm, um a o. comando da L LMD nunca gerar aes elem a mentares do tipo W(X pois o banco o X)
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na6

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

de d dados no alterad de ime o do ediato. Ape enas quan ndo o pro otocolo bif sico ating a segunda fase, aes ele gir ementares do tipo W W(X) sero geradas para o efetivar altera es nos b bancos de dados loca ais. H duas suposi es impo ortantes pa contro de concorrncia a se ara ole ressaltar aqui: ntrole de concorrncia ser feito a n vel dos o objetos fs sicos. 1. con Portanto, um mecanism de con mo ntrole de concorrncia dever disciplin a nar inter rcalao da aes e as elementare de difer es rentes tran nsaes em cada n. m 2. A s semntica das tran nsaes no ser levada em conta pelos n m p mec canismos d controle de conco de e orrncia. Como conseq ncia, o c controle de concorr d rncia dev ver depe ender apen das se nas eqncias de opera es de le eitura/atualizao so obre os ob bjetos fsico armaz os zenados n nos vrios bancos de dado locais, ou seja, das s os seq ncias de opera e es R(X) e W(X) executadas contra os bancos de e dado locais. Uma exec os cuo conc corrente E de um c conjunto T de transa aes pode ento, ser abstra e, ada por u conjun L= { L1 ,..., Ln } onde Li a um nto }, seq ncia de aes ele ementares R(X) ou W(X) executadas c contra o banco de d dados do n i que fo oram gera adas em E. O conjunto L ch E hamado de um e esca alonamento global para T e a seqncia Li chamada do e o escalonam mento local ao n i p l para T. Usa aremos Ri(X) ou Wi(X) para in ( ndicar ae elementares es R(X) ou W(X) executada a favor da transa Ti em um escalo ) as o onamento local. l Freq qentemen escreve nte eremos Ri (x1 ,..., xk ) em lugar de Ri ( { x1 ,..., xk } ), e semelhanteme ente para a aes de a atualizao o. Como exemplos destes conceitos, consider um ban s re nco de dados distr ribudo arm mazenado em dois ns. Os esquemas internos s e so modelados por dois conju untos de o objetos fsi icos, D1 = { x1 ,y1 } e D2 = { x2 }, onde x1 e x2 arma azenam c pias dos m mesmos da ados. Um es scalonamento global para duas transae T1 e T2 neste contexto s es pode ser eria L = { L1, L2 }, ond de L1 = R1(y1) R2(x1) W2(x1) W1(x1) L2 = R1(x2) W1(x2) W2(x2) Ou se eja, L1 representa a seguinte seqncia de ae element a es tares exec cutadas no primeiro n o n:
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na7

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

T1 l o objeto fsico y1 T2 l o objeto fsico x1 T2 escr reve no ob bjeto fsico x1 T1 escr reve no ob bjeto fsico x1 Para o segundo n, L2 repr resenta a seguinte se s eqncia: T1 l o objeto fsico x2 T1 escr reve no ob bjeto fsico x2 T1 escr reve no ob bjeto fsico x1 Tanto a teoria d corre quanto o estudo do comp de o portamento dos o mto odos de c controle d concorr de rncia ser basead o dos em pr ropriedade de es esca alonamento globais. os .

8.1.3 C Critrios de Corre eo


Esta s seo define os crit trios de correo q c que guiar a discu o usso sobr controle de conco re e orrncia. S Sero cons siderados critrios p pertencent tes a trs classes d distintas: c critrios para transa aes, crit trios gen nricos pa ara o siste ema e crit rios espe ecficos pa os mtodos de c ara controle de concorrncia. e Os crit trios para transae so simples: es T1. Cada t transao, quando executada sozinha, se s empre term mina; T2. Cada t transao, quando e , executada sozinha, p preserva c consistncia do banc de dado Estas suposies afirmam apenas q o usu especi co os; que rio ificou corre etamente c cada transao. Os crit trios gen ricos do sistema por sua vez s r sero os se eguintes: G1. tema deve funciona corretam e ar mente par qualque conjunto de ra er o O sist trans saes ace essando qualquer ba anco de da ados; G2.
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na8

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

A resp posta do sistema d deve ser independe ente do s significado das trans saes e dos valore dos prp es prios dados armazen s nados. A prim meira suposio jus stifica-se com base no fato de estarmos e inter ressados em construir SGBD DDs de us genric e no em siste so co, o emas distr ribudos pa aplica ara es especficas. Lo ogo, no razovel supor qu as ue trans saes s conheci o idas "a pr riori", ou que o siste q ema seja d dependent de te um particular conjunto de transa aes ace essando u particu um ular banco de o dado J a segunda suposio sugere que os m os. o mtodos d controle de de e conc corrncia devam tra abalhar ap penas com base n m nos nomes dos ob bjetos fsico lidos e atualizado conform coment os os, me tado no fin da se anterior nal o r. Esta d discusso nos coloc em posio de definir intuitivament os ca te critrios de co orreo impostos aos mtodos de control de concorrncia: s le C1. transao submetida ao sistem deve ev a ma ventualmen termina nte ar. Cada t C2. a mente, sem interfer m ncia Cada transao deve ser executada atomicam das outras tran nsaes; O prim meiro crit rio clar e resum a idia de que o mtodo de ro me a o cont trole de co oncorrncia dever p a prover mei para re ios esolver pro oblemas, como c bloqueios mtuos, que p possam im mpedir o trmino norm das tra mal ansaes. J o segu undo crit rio, o m mais impo ortante de todos, requer uma discu e usso porm menorizada para e a esclarecer o que significa "execuo oatmica sem inter rferncia". Este ser o assunto da prxim seo. ma

8.2 TE EORIA DA SERIAL A LIZAO


A teor da se ria erializao se prop a cap e pturar de forma pre ecisa quan ndo, em u uma execu uo conc corrente de um grup de tran po nsaes, cada uma delas executad atomica a da amente se interfe em erncia. Ex xecues com esta proprieda ade so ch hamadas d serializveis. O o de objetivo de esta seo ser dar u uma defini io precis da no de exec sa o cuo serializvel, q esse que encial ao e entendime ento da c correo d dos mtod dos de co ontrole de concorr e ncia discu utidos nas sees se s eguintes deste captu ulo. Intuitiv vamente, uma exe ecuo co oncorrente serial lizvel se for e computacional lmente equivalente a uma ex xecuo se erial das t transaes ou s, seja, a uma execu a o em que as transa es so process sadas
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagin na9

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

seq encialmen nte, uma aps a outra, em alguma ordem. Para form m mular prec cisamente este conc ceito intuit tivo nec cessrio d definir dois conceito o s os: que so execues se eriais e q quando du uas execu ues so consider o radas computacional lmente equ uivalentes. .

8.2.1 E Execue Seriais es s


Em te ermos simples, uma execuo serial se as tr a o ransaes so exec cutadas se eqencialm mente. Ou seja, uma execuo E de T modelada por a o a um escalonam mento glob L serial se e somente se bal s e 1. para cada esc calonament local d L, para cada pa de to de a ar transa es Ti e T j em T, o todas as opera de Ti precedem todas ou a es t as ope eraes de T j, ou vic e ce-versa; 2. para c cada par d transa de es Ti e Tj, se as op peraes de Ti d preced dem as op peraes d Tj em um escalona de m amento loc de L, ento cal e o mesm verda para to mo ade odos os ou utros escal lonamento locais de L. os e Diremo ainda que L um escalonam os mento seria neste ca al aso. Como exemplo consid o, dere um banco de dado os distrib budo arma azenado e dois n em ns cujos esquemas internos so mode s elados por dois conjuntos de o objetos fsic cos, D1 = { x1 ,y1 } e D2 = { x2 }. Suponha que x1 e x2 armazene cpias dos mes em s smos dado Um escalonamen serial s os. nto seria : de S = { S1, S2 }, ond S1 = R1(y1) W1(x1) R2(x1) W2(x1) S2 = R1(x2) W1(x2) W2(x2) Como exemplos de escalonamentos no seriais teramos s: N = { N1, N2 }, onde N1 = R1(y1) R2(x1) W2(x1) W1(x1) N2 = R1(x2) W1(x2) W2(x2) e N' = { N1', N2' }, o onde
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a10

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

N1' = R1(y1) R2(x1) W2(x1) W1(x1) N2' = W2(x2) R1(x2) W1(x2) x O prim meiro exem mplo viola a primeira condi para es a o scaloname entos seria enquan o segundo exemplo viola a segunda c ais, nto condio. O m todo de controle de conco orrncia t trivial, que s permite exec cues se eriais, obviamente correto dentro dos critrios estabelec e d s cidos ante eriormente. No h dvidas de que cada transao execu . s e utada atom micamente sem inter rferncia de outras se este m s todo se eguido. Tamb deve e m estar claro que em uma exec o cuo seria S anom al malias de sincroniza ao no ocorrem. Por supo osio, ca ada transa ao pres serva cons sistncia e termina se executada sozin nha. Logo, se o es stado inicia do al banc for con co nsistente, o estado do banco aps a e execuo da :f/i/- sima trans sao em S tamb ser c m m consistente Assim, se o est e. tado inicia do al banc for con co nsistente, o estado f final tamb o ser o que s m , significa qu S ue pres serva cons sistncia. Pela mes sma razo nenhum transa o, ma ao l dados inconsistentes em S pois o faz d um estado consis de stente. Fin nalmente, como c cada transao proces a o ssada aps o trmino da anterior, obviam s o mente nenh huma atua alizao p perdida em S. m

8.2.2 E Equivaln ncia de E Execues


Passemos agor para o problema de defin o que significa duas ra a nir exec cues se erem com mputaciona almente equivalente e es. Intuitiv vamente, duas exec cues E e E' d de um m mesmo conjunto T de tra c ansaes so computacional lmente equivalentes se e som s mente se as seguin ntes condi ies m tas, supond que E e E' come do eam no m mesmo es stado do banco forem satisfeit de d dados: 1. E e E' produze o mesm estado final do ba em mo anco de da ados; 2. cada transa em T l os mesmo dados e E e E'. a o os em Mais precisame ente, seja T um conjunto d transa c de es e E um exec cuo de T modelad por um escalonam da mento glob L. Sejam R(X) e W(Y) bal m duas aes el s lementares em algum escalon s namento lo ocal Li de L. Seja x um objeto fsico armazenado em um n i tal qu x ue Diremos qu R(X) l x de W(Y em Li se W(Y) pre ue Y) e ecede R(X em X) X Y. D no enhuma op perao W( entre W(Y) e R(X em Li tal que x W(Z) W X) Li e n h ne
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a11

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Z. Seja y a X. Dire emos que R(X) l o valor inici de y em Li se R(X no l y de ial m (X) nenh hum W(Y). Similarme . ente, seja z Y. Dire emos que W(Y) cria o valo final de z em Li se W(Y) a ltima operao de or e a atua alizao em Li tal que z m e Y. Est tas duas ltimas no oes pode eriam ser reduzidas primeir se s ra imag ginssemo uma tra os ansao in nicial que "cria" o es " stado inicia de E, e uma al trans sao final que "l" o estado final produz zido por E. Sejam E e E' d duas exec cues para um con njunto T d transa de es. Seja L= { L1 ,..., Ln } e L' = { L'1 ,..., L'n } es am scaloname entos globais modelando E e E'. Diremos que E e E' so e equivalent se e so tes omente, para todo j [1,n]: m mas aes de cada 1. Lj e Lj' contm as mesm aes elementares, e as a trans sao oco orrem na m mesma orde relativa em amba em a as. 2. para cada objeto fsico x para cad R(X) em Lj tal que x a x, da m e s nte z X, R(X l o valo inicial de x em Lj se e somen se o faz em Lj' ; X) or e 3. para cada objeto fsico x para cad W(Y) em Lj tal que x a x, da Y, W(Y cria o va final d x Y) alor de em Lj s e somen se o fa em Lj' ; se nte az 4. para cada R(X em Lj, pa cada W(Y) em Ljj, para cada x a X) ara W a X Y, R(X l x de W X) W(Y) em Lj se e somente s o faz em Lj'. se m Direm mos ainda que L e L' so esca alonamento equivalen os ntes. Intuitiv vamente, esta def finio ga arante qu ue cada transao proc cessada da mesma f a forma em ambas as execue pois as operae de s es es leitura lem o mesmo valores Alm di os os s. isto, o est tado final do banco de o
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a12

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

dado o me os esmo, pois o valor f s final de ca ada objeto fsico foi produzido pela mesma opera de atualizao em ambas as execu o a es.

8.2.3 E Execue Seriali es izveis


Seja E uma exec cuo para um conju a unto T de t transaes modelada por s a um e escalonam mento L. E serializ vel se e somente s for equivalente a uma se exec cuo seria Diremos tambm que L um escalon al. namento se erializvel. Portan nto, o crit trio C2 d Seo 8.1.1.3 pode ser precisam da o mente refor rmulado co omo: C2'. toda ex xecuo de um conju unto de tra ansaes T dever ser serializ vel. Um m todo de c controle de concorr e ncia dever ento p permitir apenas exec cues ser rializveis das transa aes. Com isto o m mtodo est tar garantindo que nenhuma anomalia de sincronizao ap parecer. A justificativa sim mples: em execues seriais tais anom malias no ocorrem como as execu m; ues alizveis s so comp putacionalm mente equ uivalentes s exec cues se eriais, seria elas herdam, ento, es proprie sta edade. Se o leitor preferir n e no analis sar a ques sto em t termos de anomalia de sinc e as cronizao basta argumentar que o, r exec cues ser riais so "n naturalmen correta do pon de vista da exec nte as" nto a cuo das transa es. Porta anto, gerando ape enas exe ecues q que lhes so equivalentes, a proprieda de cor ade rreo mantida. m O rest desta se to eo apresenta uma srie de exemplos envolven a s ndo o ceito de serializa o. Cons sidere inic cialmente um banco de dados conc cent tralizado c cujo esque ema interno modelado por u conjun de ob o um nto bjetos fsico D = { x, y }. C os Considere duas transaes, T1 e T2, cu ujas execu ues seq enciais ge eram, resp pectivamen as seqncias de aes ele nte, e ementares s: L1 = R1(X) W1(X) L2 = R2(y) W2(X). . H ape enas dois p possveis e escalonam mentos seri iais neste c caso: S12 = R1(X) W1(X R2(y) W2(X) X) S21 = R2(y) W2(X R1(X) W1(X). X) Exemp plo. Alm de S12 e S21, que so obvia amente se erializveis os s, segu uintes esca alonament tambm so seria tos m alizveis: E1 = R1(X) R2(y) W1(X) W2( (X)
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a13

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

E2 = R2(y) R1(X) W1(X) W2( (X). Ambos so equivalentes a S12 pois como R2(y) l o v s s, valor inicia de al y em S12, pod m demos com mutar esta ao com W1(x) ob a m btendo E1, e depois com R1 (x obtendo E2. O le x), eitor deve se conven ncer que e estes so os dois n nicos esca alonamento serializ os veis alm de S12 e S21. m Como um segun exemplo, conside novam ndo ere mente um b banco de dados distr ribudo ar rmazenado em do o ois ns cujos es squemas internos so mod delados po dois con or njuntos de objetos f e sicos, D1 = { x1, y1 } e D2 = { x2 }. Suponha que x1 e x2 armazenam cpias dos s mesmos dados Um exemplo de um escalona s. m amento se erializvel s seria L= {L1, 2}, onde ,L L1 = R2(x1) R1(y1) W2(x1) W1(x1) L2 = W2(x2) R1(x2) W1(x2) que equivalen ao esc nte calonamen serial e que T2 execu nte em utada completamente antes de T1 ser pro e e ocessada. Como exemplos de escalonamentos no serializveis ter ramos e N = {N1,N2}, onde N1 = R1(y1) R2(x1) W1(x1) W2(x1) N2 = R1(x2) W1(x2) W2(x2) e N' = {N1',N2'}, ond N de N1' = R2(x1) W2(x1) R1(y1) W1(x1) x N2' = W2(x2) R1(x2) W1(x2) x No p primeiro e exemplo, N no seriali izvel po ois o prprio esca alonamento local N1 j no o torna eq o quivalente a algum e escalonam mento seria No p al. possvel, in ntuitivamen trazer R2(x1) par junto de W2(x1) em N1 nte, ra e m sem alterar a computa ao expr ressa por N1. O segundo e exemplo, N', N inter ressante p pois N1' e N2' so por si s seriais, mas a transa o as aes apar recem na ordem troc cada em c cada um. Alm disto no p o, possvel al lterar a or rdem das aes sem alterar a computa m ao final. Este exe emplo ilust o tra
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a14

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

fato de que serializa no pode ser detetada localmente mesmo que o e: todo os esca os alonamento locais s os sejam serializveis, o escalon namento global g pode no o s er ser. A caracteriza de exe o ecues serializve dada pela defin s eis nio ante erior captura corretamente o c conceito de atomicid e dade das t transaes em s um ambiente concorren nte, mas a ainda no leva a m o mtodos d controle de de e conc corrncia. Na verda ade po ossvel pr rovar que apenas testar se um e esca alonamento serializ o zvel , pr rovavelmente, computacionalm mente intra atvel (mai precisam is mente, NP-Completo).

8.2.4 U Uma Con ndio Su uficiente para Seria p alizao


Nesta seo se er aprese entada um condi ma o suficie ente (mas no nece essria) pa garantir serializa ara ao. Esta condio ser usada nas se a o ees segu uintes para provar a correo d mtodos de contro de conc a de s ole corrncia. Seja T um conju unto de tra ansaes e L um escalonamen global para nto T. Seja Lk um escalonam mento loca de L. Duas aes elementa al s ares Oi e Oj de Lk co onflitam se e somen se elas agem sobre um me e nte s esmo objeto fsico e uma delas uma o operao d atualiza de o. Opera aes conflitantes s importa o antes pois, se a su ordem relativa for altera ua ada em Lk, o resu ultado fina da al exec cuo poder ser modificado. Considere por exem e, mplo, as o operaes R(X) e W W(X). Supo onha que Lk seja d forma '... R(X) ... W(X) . da ...'. Logo R(X) obviamente n l o valo de x o or X que foi criado por W(X). Se a ordem das ope m eraes for trocada em Lk r para '... W(X) ... R(X) ...' e entre W a W(X) e R(X no hou X) uver uma o outra oper rao de a atualizao para xX R(X) passar ago a ler o valor criado por W(X), o X, ora W poss sivelmente (mas no necessariamente) alterando o estado final do banco e o de d dados. Um cenrio semelhant pode naturalmente ser cria m te n ado para duas oper raes de atualiza Definiremos aind que Oi precede c o. da com conflit Oj to em L (denota por Oi < Oj) se e somente se Oi oco Lk ado e orre antes de Oj em Lk e Oi e Oj conflit tam. Quan ndo mais d uma re de elao de precednc por co cia onflito estiv em jogo subscrito sero u ver o, os usados par distingu ra -las. De po osse desta relao entre a a es eleme entares, diremos qu Ti ue prec cede por co onflito T j e L (deno em otado por Ti < T j) se e soment se existir um T e te esca alonamento local Lk de L e op o peraes Oi e Oj em Lk tais qu Oi e Oj so O m ue j oper raes de Ti e Tj res spectivame ente e Oi < Oj. A rela ao < ser chamad de r da rela de pre o ecedncia por conflit para T induzida po L. Nova to or amente quando mais de uma d s destas rela aes estiv verem em jogo, subs j scritos ser usados para o distin ngu-las.
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a15

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Podem mos, ento, mostrar o seguinte: : TEOREMA 1: S Seja T = { T1 ,..., Tm } um conj junto de transaes e E s uma execuo de T mo a o odelada po um esca or alonament global L = { L1 ,... n }. to .,L Se a relao de precedncia po conflito para T induzida p or por L for uma rela o de ord dem parcial, ento E serializvel. Demos strao Provar remos que para to e, odo conjunto T de transa es, para toda exec cuo E d T mode de elada por u escalonamento g um global L, se a rela de o prec cedncia p conflito para T induzida por L for uma relao de or por o rdem parc cial, ento E seriali izvel. A p prova ser por indu sobre a cardinalidade o de T T. BASE: Suponha que T tenha apenas uma transao. Ento o resultado : s segu trivialme ue ente. PASS DE INDUO: Suponha q o resultado vale para SO S que todo conjunto de transaes com cardinalid o dade meno do que n. Seja T um or conjunto de transaes com ca ardinalidad n e E uma ex de xecuo de T d mod delada por um escal lonamento global L. Suponha que a re o elao <L sobre s T ind duzida por L seja um relao de ordem parcial. r ma Seja Ti uma transao em T tal que para nenh huma trans sao T j te emos que Tj <L Ti. Co onstrua um execu F de T, modelada por um e ma o , a escalonam mento F, o onde Ti inicialmente execu utada seq encialmente e dep pois as outras trans saes em T so ex m xecutadas concorren ntemente e exatament como em E. te Assim, cada escaloname ento local Mk de F obtido traz zendo-se t todas as aes a elem mentares d Ti no escanolam de mento local Lk de L para a esquerda (e resp peitando a sua ordem relativa) Por cons m ). struo, a relao <L coincide com com a relao <M. Alm disto, como no existe Tj ta que Tj <L Ti, no existe o m e al e uma ao elementar Oj de algum transa Tj em T e uma a a ma o T, ao eleme entar Oi de Ti em Lk tais que Oj <L Oi. Ou seja, nenhuma ao ele e a ementar Oj que prec cede algum ao e ma elementar Oi de Ti em Lk confli com Oi Assim, E' e E m ita E so equivalent tes. Constr agora G retirando as aes elementa rua s ares de Ti de F. Seja N o a esca alonamento global representa o ando G. Teremos ento qu G uma ue exec cuo do c conjunto de transaes U = T - { Ti }, que tem cardin e nalidade menor m do q que n. Alm disto, a relao <N um su ubconjunto da rela <L pois por o o s, cons struo, G uma subseqnc de E. Logo, <N tambm acclica. Pela cia hiptese de ind duo, pod demos ento concluir que G serializve el.

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a16

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Seja SG uma execuo serial equivalente a G. C o e e Construa uma exec cuo seria SF das transae em T pr al es rocessando Ti primeiro e depo as o ois outra transa as es em T na mesma ordem que em SG Por con a G. nstruo e pelo fato de SG e G serem e equivalent tes, SF e F sero en nto equiv valentes. Mas E M e F eram equivalentes. Logo, SF e E so equivalente o que prova que E e es, e seria alizvel. Para v ver que a condio apresen o ntada no teorema a anterior n o nece essria, c considere o seguint escalon te namento e um ba em anco de dados cent tralizado: L = R1(x) W2(x) W1(x) W3(x x) Como T1 < T2 < T1, a re elao de precednc por co cia onflito par as ra trans saes ind duzida por L no uma rela r ao de o ordem par rcial. Mas, por , outro lado, L equivalen ao seguinte escalonamento serial: o nte o S = R1(x) W1(x) W2(x) W3(x x) pois os valores d x atualizados por T1 e T2 no contribuem nem para s de r a ex xecuo de T3, nem para o estado final do banco de dados j que W3(x) m o escr reve sobre eles. Os m todos de controle de concorr ncia desc critos nas sees qu se ue segu uem garan ntiro que a relao < semp uma re pre elao de ordem pa arcial para as transa a aes em processam mento e, assim, que todas as e a execues so s seria alizveis.

8.3 MTODOS BASEAD DOS EM BLOQUEIO - PAR B OS RTE I


Esta s seo disc cute o uso de bloque eios para controle de concorr ncia em um ambie ente centr ralizado. Inicialmente os prob e blemas de gerncia de e a bloqueios e tra atamento d bloqueios mtuos so abordados. Em seguida um de s a, mto odo de us de blo so oqueios pa ara atingir apenas execues serializ r s veis, cham mado de b bloqueio em duas fa ases, ap presentado Por fim, a corre do o. o mto prov odo vada.

8.3.1 P Protocolo de Bloq o queio de Objetos O


Nesta seo um protocolo de bloque eio/libera de obje o etos disc cutido bem como as questes de tipos de bloqueio e gra m s s s anularidad dos ob de bjetos bloqueados.

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a17

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Consid deremos inicialmente o caso mais sim mples em que todo os os objetos a sere bloqueados so de uma mesma classe (pgin fsicas por em m nas s, exem mplo). Sup ponha aind que s h um mo de bloqueio, ou seja, que cada da odo objeto s pode estar em dois estad e dos: bloque eado permite acesso a objeto a ao apenas pel transa que detm o bloqu la o ueio; livre no pe ermite aces ao objeto por nenhuma transao. sso Neste caso necessr rio introdu uzir apenas duas novas aes a elem mentares a nosso re ao epertrio (que co ontm at o moment apenas R(X) e W(X to (X)): B(x) bloque o objeto cujo nom x; eie o me L(X) libere t todos os o objetos cujo nomes esto em X os e X; Note q que B(x) afeta ape enas um nico obje eto, difere entemente das outra aes elementar as res. Esta o opo torn o tratam na mento de b bloqueios mais simp ples, confo orme verem mos. Para a acomodar estas nov vas aes elementa s ares, uma execuo de a um c conjunto d transa de es ser r representa agora p ada pela seq ncia de aes a elem mentares R R(X), W(X) B(x) ou L ), L(X) proce essadas co ontra o ba anco de dados cent tralizado. Esta se eqncia continuar a ser cham mada de um esca alonamento o. Estas aes so passadas para o gerente de bloqueios que mantm o s g e s, uma tabela de bloqueios modelad como um coleo de triplas (x,T,F) on a e s, da ma o s nde:

Xon nome de um objeto Ton nome da tr ransao q corrent que temente bl loqueia x F u uma fila de espera para x contendo os nomes de todas as c s trans saes que esperam a libera de x m o
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a18

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

Supore emos que as filas de espera seguem a p e poltica est trita primei iro-acheg gar-primeir ro-a-sair. E Esta poltica poderia ser alte a erada, ado otando-se filas com prioridad de, por e exemplo. Porm, qualquer p q poltica ad dotada de ever gara antir que uma transa ao no fi eternam ica mente na f de esp fila pera. A no o de um objeto estar bloq m queado ou livre implemen u ntada atrav vs de um protocol de bloq m lo queio e libe erao de objetos d definido co omo ( indic a fila vazia): ca 1) Inici ialmente a tabela de objetos bloqueados est vazia a. 2) Ao receber so olicitao p para bloqu uear o obje x para a transa T eto o atrav vs da a o B(x), p pesquise a tabela de bloqueio procura e os ando uma tripla cujo primeiro e elemento s seja x: a) se n nenhuma tripla for en ncontrada (ou seja, s x est liv ( se vre), bloqu ueie x para T, acresc a centando a tripla (x,T ) tabela T, a. b) caso contrrio acrescen T ao fin da fila d espera para x na tripla o o, nte nal de enco ontrada. solicitao da transa ao T atravs da a ao L(X) para 3) Ao receber s liber os obje rar etos em X, para cada x a X, pes squise a tabela de bloqueios procurand uma tripla cujos dois do prim meiros elem mentos seja x, T: am a) se nenhuma tripla for e encontrada ignore a liberao de x. b) caso a, o cont trrio, seja (x,T,F) a t tripla encontrada: i) se a fila F estiv vazia, r ver retire a trip da tabela, liberand x. pla do ii) se a fila F no estiver v o vazia, ou seja, se for da forma T'.F', pas o s r a sse cont trole de x para T substituindo a tripla (x,T,F) na tabela de bloqueio por (x,T'',F'). T', a os Diz-se que uma execuo (e o escalonamen que a represent a o nto ta) legal se e som mente se obedece a protocolo de bloqueio/libera ao ao de ob bjetos e um ao e ma elementar de uma t transao Ti que ac cessa um objeto x s proc cessada de epois que x for bloqu ueado para Ti. De ag gora em d diante, quando nos referirmos a um esc s calonamen com bloqueios, e nto estaremos implicitam mente assu umindo que legal. e O pro otocolo bsico de bloqueio o/liberao pode s ser melho orado incorporando-s modalid se dades (ou modos) diferentes d bloquei Uma opo de io.
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a19

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

seria adotar duas mo a odalidades de bloqu ueio, part tilhado e exclusivo. Isto significa que agora um objeto poder es m star em t trs estados: bloqueado parti ilhadamente: permit acesso ao objet por tod te to das as tr ransaes que bloqueiam o objeto partilhadament te; bloque eado exclu usivamente permite acesso ao objeto apenas pela e: e o trans sao que o bloqueia exclusiv e vamente; livre: n permite acesso a objeto por nenhum transa no e ao p ma o; Uma forma m mais prec cisa de definir a compatibilidade das mod dalidades de bloque seria a eio atravs de uma ma e atriz de co ompatibilid dades indic cando quando duas transaes podem bloquear o mesmo d b dado e quando no o podem f fazer: partilh p partilh h d exclusi i d SIM S NO N exclu usi NO O NO O

A justificativa para as m modalidades de bloq s queio acim definidas ma simp ples. Duas ou mais transae podero ler o ob s s es bjeto x sim multaneamente, sem perigo de conflito, bloqueando-o em modo partilhado (entrada 'SIM na e m M' matr de com riz mpatibilidad des). Por outro lado, se uma transa atualiza X, a o conf flitar com qualquer outra transao que acesse x Logo dever bloq e x. quear x em modo ex m xclusivo, n no permiti indo que nenhuma o n outra trans sao bloq queie x em qualquer modo (en m r ntradas 'N na mat de com O' triz mpatibilidad des). Cabe o observar q a matr de com que riz mpatibilidad se refe a ae de des ere es trans saes dif ferentes, e no se aplica a aes de uma mes a sma transa ao. Assim, se um transa j man ma o ntm um objeto x bl o loqueado na modalidade parti ilhada e de esejar bloq que-lo na modalida exclus a ade siva, poder faz-lo se for r s a n nica transa que no momento mantm x bloquead o o o do. O prot tocolo de bloqueio/liberao dever ento incorp d porar a po oltica expr ressa pelas modalida s ades de bloqueio. As modifica s es, por s serem sim mples, so omitidas n neste texto. Um se egundo me elhoramen pode ainda ser incorporado ao proto nto a ocolo de b bloqueio/lib berao c criando-se uma hierarquia de objetos. Suponha e . amos que, em lug gar de o objetos de uma nica clas e sse, os o objetos sejam orga anizados s sob forma de uma fl loresta. Se um obje x for u ancestr de e eto um ral y, d diremos qu x cobr y. Por exemplo, considere objetos de trs tipos: ue re e t
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a20

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

segm mentos, p ginas e palavras. Um segm mento ser pai de t todas as suas pginas e cada pgina s ser pai de todas as suas palav e vras. Dentro deste esquema, um transa o ma o pode bloquear u objeto x se um nenh hum dos objetos q que x cob bre estiver bloqueado. Uma transao ao o bloquear/libera um ob ar bjeto x, implicitame ente estar bloque r eando/liberando todo os objeto que x cobre. Por exem os mplo, um segment poder ser to bloqueado se nenhuma de suas pginas e nenhuma das palavras de suas a pginas estive erem bloqueadas. A just tificativa p para este tipo de bloqueio est na economia que prop porciona e termos de mem em s mria ocup pada e tem mpo adicional gasto na o ger ncia da tabela de bloqueio e os. Por exemplo, e e em lugar de bloqu uear, digamos, 90% das 1000 pginas de um segm % mento, um ma transao bloquearia o segmento inteiro. Sem o uso de bloqueios em ob s bjetos hiera arquizados seriam necessrias 900 entra s s adas na ta abela de b bloqueios. Com bloqueios em objetos hierarquiz m zados, ap penas um entrada cumprir ma a ria a mesma tarefa (embora 100 pginas fosse implicita a em amente blo oqueadas sem essidade). nece Com is encerra sto a-se a disc cusso preliminar sob bloque bre eios.

8.3.2 T Tratamen de Blo nto oqueios Mtuos M 8.3.2.1 Caracte erizao de Bloqueios Mtuos
O uso de bloq o queios, se em preocu upaes a adicionais, poder levar trans saes a no term minarem. Mais pre ecisamente poss e, svel que em dete erminado ponto da execuo concorr rente crie e-se uma seqncia de a trans saes Ti 0 ,Ti 1 ,..., Ti m-1, Ti 0 t que Ti j espera po Ti j+1 (soma mdulo m). tal or o Dest forma, nenhuma destas tra ta ansaes terminar e tem-se uma situao de b bloqueio m mtuo. A se eqncia chamada de seqn ncia de imp passe. Bloque eios mtuo so caracterizado definindo-se o dig os os grafo de es spera G=(N N,A) para o estado c corrente da tabela de bloqueios TB da seguinte form a e s ma: N o conjunto de tran o nsaes que ocorre em na tab bela TB tanto bloqueando ob bjetos quan nas fila de espe nto as era; A o conjunto d arcos ( Ti, Tj ) tais que h u de s uma tripla ( j ,F) em TB (x,T m tal que Ti ocorr em F (o seja, Ti e re ou espera por Tj liberar o objeto x).

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a21

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

fcil observar que bloqu ueios mtu no oc uos correm no ponto em que m G fo construdo se e s oi somente se G for ac e cclico. Ca aso contr rio, cada ciclo de G represen uma s nta seqncia de impass se. As du uas forma bsicas para tratar o p as t problema de bloqu ueios mtu uos, dete o/resolu uo e pr reveno, sero dis scutidas n nas subse ees segu uintes.

8.3.2.2 Detec / Resoluo de Bloqueios Mtuos 2 o B


O trata amento de bloqueios mtuos por detec e s o / reso oluo con nsiste em d deixar as transae processa es arem norm malmente e periodic e, camente, in niciar um p processo in ndependen P para detectar / resolver b nte bloqueios m mtuos. Para detetar a existnc cia de bloqueios m mtuos, o process P so simp plesmente constroi o grafo de e espera G, testando s G acc se clico ou no.

Para resolver b bloqueios mtuos, o process P age da seguinte so e form Se h ciclos em G, transa ma. aes so selecionadas de tal forma qu ao l ue sere retirada de G o novo gra se torn acclico. Usualme em as afo ne ente para cada ciclo de G, selecionada a trans o sao que consumiu menos r e u recursos at o a mom mento. Ca ada transa ao selec cionada reiniciada liberand primeiro os a, do o objetos que bl loqueava. Cuidado d deve ser to omado, no entanto, para que uma o mesma transa ao no seja reinic ciada repe etidamente o que a impediria de e, even ntualmente terminar Uma t e r. cnica para se evi itar esta situao seria reiniciar, no a transao que cons o sumiu men recursos, mas a transao que nos o submetida por ltimo. Assim o sistema garantiria que a tr a a ransao mais foi s antig sempre termina. ga

8.3.2.3 Preven de Blo 3 o oqueios Mtuos M


A form mais simples de evitar bloq ma queios m tuos cons siste em lib berar um o objeto sem mpre que a transao pedir nov bloqueio. Este m o vo mtodo, em mbora usad em ce do ertos caso tota os, almente insatisfatrio do pont de vista de o to cont trole de concorrn ncia pois permite a cria de ex o xecues no seria alizveis. Uma o outra forma de preve bloque a enir eios mtuo consiste em exigir que os e r cada transao bloqueie todos os o a o e objetos que ir acess atravs de uma nica sar s ao indivisve que ex o el, xecutada a antes da tr ransao a acessar o p primeiro ob bjeto. A n nica vantag gem deste esquema a sua aparente simplicidad Porm ele e a de. m, exige que todo os obje os etos que uma transa ao ir ac cessar seja conhec am cidos
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a22

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

inicia almente, o que nem sempre possv m e vel, e que quase s e sempre leva a bloquear mais objetos d que o n s do necessrio Alm dis o. sto, este e esquema exige e para sua imple a ementao que o pro o otocolo de bloqueio/liberao s seja modificado para permitir o bloqueio de vrios objetos ao mesmo tempo par uma me a ra esma trans sao (em lugar de apenas um de ca m e ada vez, como ant teriormente A e). mod dificao necessria no fc de implementar e poder levar mesm a cil mo prob blemas de bloqueio m mtuo. (O l leitor dever tentar m modificar o protocolo para perc ceber este fato. Foi j justamente por este problema que decid e dimos por uma ao elementa que bloq o ar queasse ap penas um objeto). o Um te erceiro m todo, sati isfatrio do ponto d vista d controle de de de e conc corrncia, seria o se eguinte. Qu uando uma transa Ti pede para bloq a o quear um o objeto x, que est presentemen bloque nte eado para T um test executado. Tj, te Se T e Tj pass Ti sarem pelo teste, Ti poder en o nto ser ad dicionada fila de es spera de x Caso con x. ntrrio Ti o T j so cancelada Se a tra ou as. ansao T que solic o Ti cita bloqueio sem mpre a esc colhida, o m mtodo chamado d no-pre c de eemptivo.. Se a trans sao Tj que detm o bloqueio sempre a escolhida, o mto cham o e odo mado de p preemptivo. te do g os s O test escolhid dever sempre garantir que bloqueio mtuos no iro ser criado ao adicionar Ti fila de espera de x. Em termo do graf de os . os fo espe era, isto significa que a adio do arco (Ti,Tj) ao g e o ( grafo no ir criar ci iclos. H v vrios teste possve com esta propried es eis dade. O mais simple seria sem es mpre reiniciar Ti ao solicitar o bloqueio, que geraria um desperd o cio grande de e ursos. Dois testes m s mais razoveis, bas seados em priorida m ades dadas s recu trans saes, se eriam :ol at tomic. Ver rso no-p preemptiva: deixe Ti esperar po T j or se e somente se T j tiver prioridade menor do que Ti; c r e o caso contr cancele Ti. rio Vers preemptiva: deixe Ti esper por T j se e some so rar s ente se T j tiver prioridade maio do que T caso co or Ti; ontrrio can ncele T j. Estes testes ga arantem a ausncia de bloqueios mtuos. De fato, a cons sidere a ve erso no- preemptiv Se houvesse um ciclo no gr va. rafo de esp pera, have eria uma t transao com prior ridade ma aior do que ela mes e sma (pois uma trans sao s e espera por outra com prioridad menor) Para o c r m de ). caso da ve erso pree emptiva, o raciocnio o mesm exceto que uma transao s espera por mo, o a outra com prio a oridade maior. No en ntanto, co omo no h restri es sobre a forma de associar e a prior ridades s transae o teste no garan que um transao termine ela es, nte ma e: pode ser con er ntinuamente cancela ada. Um es squema qu evitaria este problema ue seria definir a prioridad de um transa a de ma o como a data/ho em qu a ora ue trans sao foi submetida A trans a. sao com menor d m data/hora conside erada
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a23

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

como a de ma aior priorid dade ou a transao mais velha do sist o tema. Supondo que duas trans saes n so sub o bmetidas no mesmo instante, c cada transao rece eber uma prioridade nica. e Este e esquema, acoplado com qua alquer um dos test m tes anteriores, gara ante que toda transao sempre term mina. De fato, amb bos os te estes gara antem que a transa e o mais velha (de mais alta prioridad no sistema a de) sempre termin e que toda transao, em um espao finito de tempo se na m o, torna a trans ar sao mais velha at tiva no sist tema (pois as mais velhas sem s mpre vo terminando). Tcnic cas preem mptivas re equerem um cuida ado adicio onal. Cas a so trans sao j te enha sido confirmad ou seja caso um deciso j foi tom da, a, ma o mada para instalar a modifi a as oes produ uzidas pela transa no banc de dado a a o co os, trans sao no poder ser cance o elada. Para evitar este prob blema, dev ve-se gara antir que, a atingir e ao esta fase, a transa detenha todos os bloqueios que o a s s prec cisa. Assim no esp m, perar por nenhuma outra transao, o q implica em que a que no partic cipa de nenhuma seqncia de impasse e, portanto, ir term e e minar norm malmente.

8.3.3 P Protocolo de Bloq o queio em Duas Fas ses


Consid dere agora o proble a ema de usa bloqueio para cr um m ar os riar todo de c controle de concorr e ncia corr reto, ou seja, que garanta q s que, para toda exec cuo conc corrente E permitida pelo mto a odo 1) toda as trans as saes inic ciadas em E terminam m; 2) E serializve el. aso eios, viola es da primeira con ndio resu ultam No ca do uso de bloque da c criao de bloqueio mtuos ou do cancelamento repetido da me e os s c esma trans sao, o q j foi d que discutido na seo anterior. Considerare a emos, portanto, este problema como r a resolvido, concentra ando a at teno no problema de o a seria alizao. O uso de bloque eios por si s no suficiente para ating serializa gir ao. Por exemplo, c considere o seguinte protocolo: e 1) bloq queie cada objeto antes de ace a ess-lo; 2) liber cada ob re bjeto imediatamente aps acess-lo. a Este p protocolo obviame ente incor rreto pois permitiria a criao de o rcalao d das aes das trans saes. Pa transfo ara ormar qualquer qualquer inter
Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a24

GovernoFederal Ministrioda M aEducao InstitutoF FederaldeEd ducao,CinciaeTecno ologiadoPar raIFPA Univ versidadeAb bertadoBrasil Disciplina:Banc codeDadosII

esca alonamento sem blo o oqueios em um escalonamen satisfa nto azendo a este proto ocolo, bas envolve cada a sta er o de lei itura ou at tualizao Oi( x1 ,..., xk ) entre as aes Bi(x1) ,..., Bi(xk) e Li( x1 ,..., xk ) . e s Aprese entaremos nesta seo um exemplo de um protocolo baseado s e e em bloqueios que gara ante serializao, cu corre prov uja o vada na seo segu uinte. O p protocolo chama-se bloqueio em duas fases e definido da s segu uinte forma a: 1) Cad transao dever bloquear cada obje antes d acess da eto de -lo e liber todos o objetos que bloque at ter rar os eou rminar; 2) Uma vez que uma tran e nsao lib berar um o objeto, no mais po o oder bloquear outro objetos da em dia os ante. O nom deste p me protocolo a advm do fato de qu para ca ue, ada transa ao, h u uma primeira fase em que os objeto que a transao precisa so os o grad dualmente bloqueado e uma segunda fase em que todos o objetos so os f os s grad dualmente liberados. O ponto d escalon do namento e que se d a liber em rao do p primeiro obj bjeto da transao c chamado de ponto d bloqueio da transa d de o ao. Adotan ndo a representa ao de uma e execuo atravs de esca alonamento com as aes R os R(X), W(X) B(x) e L X), L(X), um e escalonam mento mod delando um execu ma o que s satisfaz ao protocolo de bloq o queio em duas fases seria: L = B1(x) R1(x) B2(y) R2(y)W1(x L1(x) B2(x) L2(y) W2(x) L2(x) x) O esca alonamento abaixo, p sua ve viola o p por ez, protocolo d bloqueio em de s duas fases: M = B1(x) R1(x) B2(y) R2(y) L1(x) B2(x L2(y) W2( L2(x) B1(x) W1(x) L1(x) ) x) (x) Note q que, em M a transao T1 libera x aps R1( M, (x), voltand do bloque-lo ant tes de W1 1(x), o que constitui uma violao da condio 2 do proto ocolo. Note ainda que L seria e alizvel, ma no F. as Como ltimo ex xemplo, c considere o seguint escalon te namento (sem bloqueios e lib beraes): N = R1(x) W2(x) W1(x) W3(x x) Este escaloname ento serializvel po ser equiv or valente a S = R1(x) W1(x) W2(x) W3(x x)

Facilitador:Prof.Msc.Marcos sViniciusSad dalaBarreto Pagina a25