• Nenhum resultado encontrado

Controle de concorrência com transações multiníveis.

N/A
N/A
Protected

Academic year: 2021

Share "Controle de concorrência com transações multiníveis."

Copied!
120
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DA PARAIBA CENTRO DE CIENCIAS E TECNOLOGIA CURSO DE MESTRADO EM INFORMATICA

CONTROLE DE C O N C O R R E N C I A

COM

TRA.NSACOES M U L T I N I V E I S

CAMPINA GRANDE ABRIL - 1 9 9 1

(2)

CLAUDIO DE SOUZA BAPTISTA

CONTROLE DE CONCORRENCIA COM TRANSAQOES MULTINIVEIS

D i s s e r t a g a o a p r e s e n t a d a ao Curso de Mestrado em I n f o r m a t i c a da U n i v e r s i d a d e F e d e r a l da P a r a i b a , em cumprimento as e x i g e n c i a s p a r a obtenQao do Grau de M e s t r e .

AREA DE CONCENTRAQAO: CIENCIA DA COMPUTAQAO

STEPHANE PIERRE TURC O r i e n t a d o r

CAMPINA GRANDE ABRIL - 1991

(3)
(4)

C O N T R O L E D E C Q N C Q R R E N C I R C O M T R R N S P f 0 E 5 M U L T I N I V E 1 5 C L R U D I O D E 5 0 U Z R B R P T I S T R D I 5 5 E R T R C R 0 R P R O V R D H EM 0 4 . 0 4 . 1 9 9 1 5 T E P H R N E P I E R R E T U R C , D r . O r i e n t a d o r M R R C U 5 C O S T A 5 R M P R I O , M . S c C o m p o n e n t e da B a n c a C I R R N O I O C H D r . C o m p o n e n t e da B a n c a C a m p i n a G r a n d e , 0 4 d e a b r i l d e 1 9 9 1

(5)

Quero e x t e r n a r meus s i n c e r o s a g r a d e c i m e n t o s

a Deus, p e l a f o r c a e s p i r i t u a l ,

aos meus P a i s , Jose C l a u d i o e V a l d a , p o r nao medirem e s f o r c o s em e s t i m u l a r minha formacao,

ao meu o r i e n t a d o r , Dr. Stephane T u r o , p e l a m a n e i r a p r o f i s s i o n a l , p a c i e n t e , i n c e n t i v a d o r a e , s o b r e t u d o , amiga com a q u a l me a c o l h e u d u r a n t e a e l a b o r a c a o d e s t e t r a b a l h o ,

aos meus amigos e f a m i l i a r e s , que sempre e s t i v e r a m ao meu l a d o na h o r a s t r i s t e s e a l e g r e s .

(6)

O c o n t r o l e de c o n c o r r e n c i a em Bancos de Dados tern r e c e b i d o m u i t a a t e n c a o nos u l t i m o s anos, no s e n t i d o de o f e r e c e r s i s t e m a s cada vez mais e f i c i e n t e s e c o n f i a v e i s . As novas a p l i c a c o e s (CAD, CASE, I n f o r m a c a o de E s c r i t 6 r i o s ) tern r e q u e r i d o novas t e c n i c a s p a r a o c o n t r o l e de c o n c o r r e n c i a .

E s t a d i s s e r t a c a o e n f o c a o c o n t r o l e de c o n c o r r e n c i a m u l t i n i v e l , que tern s i d o d i f u n d i d o nos s i s t e m a s o r i e n t a d o s a o b j e t o s , s i s t e m a s d i s t r i b u i d o s e a p l i c a c o e s n a o - c o n v e n c i o n a i s , em que fazemos um c o m p a r a t i v o das v a n t a g e n s d e s t a abordagem com r e l a c a o a abordagem c o n v e n c i o n a l , m o s t r a n d o o i n t e r e s s e r e a l e p r a t i c o da u t i l i z a c a o d e s t a nova abordagem.

Ademais, apresentamos um p r o t o c o l o de b l o q u e i o s em duas f a s e s m u l t i n i v e l no q u a l propomos algumas h i p 6 t e s e s que se c o n s t i t u e m na c o n t r i b u i c a o m a i o r d e s t e t r a b a l h o .

(7)

Sumario

1. INTRODUQAO 1

2. CONTROLE DE CONCORRENCIA PARA

BANCOS DE DADOS CONVENCIONAIS 8

2.1 I n t r o d u c a o 8 2.2 0 Modelo de Transacao 9 2.3 Schedules 11 2.4 S e r i a l i z a b i l i d a d e 13 2.5 P r o t o c o l o de B l o q u e i o em Duas Fases 18 2.5.1 D e a d l o c k s 22 2.5.1.1 Prevencao de D e a d l o c k s 23 2.5.1.2 Deteccao e Resolucao de D e a d l o c k s 25 2.6 Ordenacao p o r Timestamp 27 2.7 Uma T ec ni c a O t i m i s t a 33 2.8 P r o t o c o l o de T e s t e do G r a f o de S e r i a l i z a c a o - SGT ....38 2.9 Conclus&o 40

3. CONTROLE DE CONCORRENCIA SOBRE

OBJETOS TIPADOS 41 3.1 I n t r o d u c a o 4 1 3.2 C o m u t a t i v i d a d e 42 3.3 U t i l i z a c a o da C o m u t a t i v i d a d e em O b j e t o s T i p a d o s Complexos 58 3.4 0 B l o q u e i o de T i p o E s p e c i f i c o 62 3.5 Conclusao 67

(8)

4. CONTROLE DE CONCORRENCIA MULTINIVEL 68 4.1 I n t r o d u c a o 68 4.2 0 Modelo de Transacao M u l t i n i v e l 70 4.2.1 S c h e d u l e s 75 4.3 G r a f o de P r e c e d e n c i a 76 4.4 C o r r e c a o da Abordagem M u l t i n i v e l 78 4.5 Exemplos 80 4.6 ConclusSo 89

5. PROTOCOLO DE BLOQUEIO EM DUAS FASES

PARA TRANSACOES MULTINIVEIS 90

5.1 I n t r o d u c a o 90 5.2 H i p 6 t e s e s do Modelo 9 1 5.3 0 P r o t o c o l o de B l o q u e i o em Duas Fases M u l t i n i v e l - B2FM 94 5.4 Exemplos 100 5.5 Conclusao 107 6. CONCLUSAO 108 7. REFERENCIAS BIBLIOGRAFICAS 110

(9)

1. INTRODUCAO

Um Banco de Dados e uma c o l e c a o f i n i t a de i t e n s de dado os q u a i s possuem v a l o r e s que formam o e s t a d o do Banco de Dados. Para t e r acesso a esses i t e n s de dado, u t i l i z a m o s t r a n s a c 6 e s , que sao a i n t e r f a c e e n t r e os u s u a r i o s e o s i s t e m a de Banco de Dados.

I n t u i t i v a m e n t e , podemos d i z e r que uma t r a n s a c S o e uma s e q u e n c i a de acoes que i n t e r a g e m com um Banco de Dados, podendo, ou nSo, a l t e r a r o e s t a d o do mesmo.

Assumiremos que uma t r a n s a c a o , quando e x e c u t a d a s o z i n h a e i n t e g r a l m e n t e a p a r t i r de um e s t a d o i n i c i a l c o n s i s t e n t e do Banco de Dados, i s t o e, que e s t a de a c o r d o com as r e g r a s de i n t e g r i d a d e do s i s t e m a ( r e g r a s que v i s a m p r e s e r v a r a c o n s i s t e n c i a do s i s t e m a de a c o r d o com a s e m a n t i c a da a p l i c a c a o ) , deve p r o d u z i r um e s t a d o f i n a l tambem c o n s i s t e n t e . Ou s e j a , uma t r a n s a c S o deve obedecer as r e s t r i c o e s de i n t e g r i d a d e i m p o s t a s p e l o s i s t e m a . Assumiremos tambem que uma t r a n s a c S o , quando e x e c u t a d a , sempre t e r m i n a , s e j a p o r i n t e r m e d i o de um a b o r t o , que e x p l i c a r e m o s mais t a r d e , ou a t r a v e s da execucao da t r a n s a c a o p o r c o m p l e t o .

No e n t a n t o , um Sistema G e r e n c i a d o r de Banco de Dados, s u p o r t a n d o a execucao s i m u l t a n e a de v a r i a s t r a n s a c o e s , deve g a r a n t i r um acesso c o n c o r r e n t e aos dados p a r a que se t e n h a uma melhor p e r f o r m a n c e no a t e n d i m e n t o as s o l i c i t a c o e s das v a r i a s a p l i c a c o e s . Para que i s t o o c o r r a , f a z - s e n e c e s s a r i a a

(10)

de Dados num e s t a d o i n c o n s i s t e n t e , mesmo se cada t r a n s a c a o , quando e x e c u t a d a i s o l a d a m e n t e , ou s e j a , sem i n t e r c a l a c S o , p r o d u z a um e s t a d o c o n s i s t e n t e .

Desta f o r m a , o Sistema G e r e n c i a d o r de Banco de Dados n e c e s s i t a de mecanismos de c o n t r o l e de c o n c o r r e n c i a que assegurem uma execucao c o n c o r r e n t e das t r a n s a c o e s , e v i t a n d o que e e t a s produzam um e s t a d o i n c o n s i s t e n t e . Caso t a i s mecanismos nSo assegurem um e s t a d o c o n s i s t e n t e , poderemos t e r as chamadas a n o m a l i a s de s i n c r o n i z a c a o .

E x e m p l i f i c a r e m o s d o i s t i p o s de a n o m a l i a s : a t u a l i z a c S e s p e r d i d a s e acesso a dados i n c o n s i s t e n t e s [ B e r n s t e i n 8 1 ] .

Exemplo 1.1 A t u a l i z a c S e s p e r d i d a s :

Suponhamos um Banco de Dados p a r a a p l i c a c o e s b a n c a r i a s onde temos as execucoes das s e g u i n t e s t r a n s a c o e s :

T i : Ts Read( temp, C o n t a l ) Add ( temp, 100 ) W r i t e ( temp, C o n t a l ) Read ( temp, C o n t a l ) Add ( temp, 200 ) W r i t e ( temp, C o n t a l ) I s t o e, ambas as t r a n s a c o e s , T i e T 2 , fazem um d e p 6 s i t o s i m u l t a n e a m e n t e numa mesma c o n t a b a n c a r i a ( C o n t a l ) . Sem o c o n t r o l e de c o n c o r r e n c i a , as t r a n s a c S e s podem s e r i n t e r c a l a d a s de qua1quer m a n e i r a .

Suponhamos que a s e g u i n t e s e q u e n c i a s e j a e x e c u t a d a :

S = R e a d i ( t e m p , C o n t a l ) ; R e a d 2 ( t e m p , C o n t a l ) ; A d d i ( t e m p , 1 0 0 ) ; A d d s ( t e m p , 2 0 0 ) ; W r i t e i ( t e m p , C o n t a l ) ; W r i t e s ( t e m p , C o n t a l )

(11)

Suponhamos que o v a l o r do s a l d o i n i c i a l da C o n t a l s e j a 500.

P o r t a n t o , s e g u i n d o a s e q u en cia de execucao acima temos : T i l e

500, Tz l e 500, T i a d i c i o n a 100, l o g o a v a r i a v e l temp de T i f i c a com o v a l o r 600: d e p o i s T2 a d i c i o n a 200 a sua v a r i a v e l temp, que f i c a com o v a l o r 700. Por u l t i m o , T i g r a v a na c o n t a c o r r e n t e C o n t a l o v a l o r de sua v a r i a v e l temp que e 600, em s e g u i d a T2 g r a v a no mesmo i t e m de dado C o n t a l , o seu v a l o r de temp que e 700. Logo, c o n c l u i m o s que a a t u a l i z a c a o de T i f o i p e r d i d a , p o i s d o i s c l i e n t e s d e p o s i t a r a m um t o t a l de 300 e s6 f o r a m c r e d i t a d o s 200.

D

Exenvplo 1.2 L e i t u r a s a dados i n c o n s i s t e n t e s :

Suponhamos o mesmo Banco de dados do Exemplo 1.1 e as s e g u i n t e s t r a n s a c S e s , que sao s u b m e t i d a s a execucao s i m u l t a n e a m e n t e :

T i : T2 :

R e a d ( t e m p i , C o n t a l ) Read( t e m p i , C o n t a l ) S u b ( t e m p i , 100 ) Read( temp2, Conta2 ) W r i t e ( t e m p i , C o n t a l ) D i s p l a y ( t e m p i , temp2) Read( temp2,Conta2 ) Add( temp2, 100 ) W r i t e ( temp2, Conta2 ) Suponhamos a s e g u i n t e s e q u S n c i a de execucSo : S = R e a d i ( t e m p i , C o n t a l ) ; S u b i ( t e m p i , 1 0 0 ) W r i t e i ( t e m p i , C o n t a l ) ; R e a d 2 ( t e m p i , C o n t a l ) ; R e a d 2 ( t e m p 2 , C o n t a 2 ) D i s p l a y 2 ( t e m p i , t e m p 2 ) ; R e a d i ( t e m p 2 , C o n t a 2 ) ; A d d i ( t e m p 2 , 1 0 0 ) W r i t e i ( t e m p 2 , C o n t a 2 ) .

(12)

Em o u t r a s p a l a v r a s , T i f a z uma t r a n s f e r e n c i a de f u n d o s da C o n t a l p a r a Conta2 e Tz f a z uma c o n s u l t a aos e a l d o s de C o n t a l e Conta2.

Suponhamos que os s a l d o s i n i c i a i s da C o n t a l e Conta2 sejam 500 cada um. Ao e x e c u t a r m o s a s e q u e n c i a S acima, temos que T i l e o v a l o r 500 da C o n t a l , s u b t r a i 100 d e s t e v a l o r , n e s t e momento Tz l e o v a l o r da C o n t a l , que tern o v a l o r 400 d e v i d o ao saque de T i , e Conta2, que a i n d a tern o v a l o r 500, e m o s t r a - o s ao u s u a r i o , em s e g u i d a , T i f a z o d e p o s i t o do v a l o r 100 na Conta2, que passa a t e r o v a l o r 600.

Podemos n o t a r que, ao f i n a l da execucao, o e s t a d o do Banco de Dados e c o n s i s t e n t e , p o i s a t r a n s f e r e n c i a f o i f e i t a c o r r e t a m e n t e ( C o n t a l = 400 e Conta2 = 6 0 0 ) . E n t r e t a n t o , Tz t e v e acesso a dados i n c o n s i s t e n t e s , p o i s p a r a Tz desapareceram 100. I s t o o c o r r e u porque Tz nSo v i u t o d o s os dados m o d i f i c a d o s p o r T i . ffi Para p r o v e r e s t a c o n s i s t e n c i a c i t a d a a n t e r i o r m e n t e , p r e c i s a m o s a d o t a r um c r i t e r i o de c o r r e c a o que i n d i q u e se uma execucao c o n c o r r e n t e e c o r r e t a . E s t e c r i t e r i o s e r a a s e r i a l i z a b i l i d a d e (do i n g l e s s e r i a l i z a b i l i t y ) que s e r a e s t u d a d a no c a p i t u l o 2.

Nos Bancos de Dados C o n v e n c i o n a i s , c u j o s modelos de dados sao o modelo r e l a c i o n a l , o de r e d e s e o h i e r a r q u i c o [ U l l m a n 8 3 ] , v a r i o s metodos p a r a c o n t r o l e de c o n c o r r e n c i a f o r a m p r o p o s t o s nos u l t i m o s anos [ B e r n s t e i n 8 1 , 8 7 ] .

(13)

E n t r e t a n t o , apesar de esses metodos g a r a n t i r e m execucoes c o n c o r r e n t e s s e r i a l i z a v e i s , e l e s nSo e x p l o r a m ao maximo o p a r a l e l i s m o , p o i s sao metodos que atuam s o b r e modelos de dados p o b r e s semanticamente.

Ademais, os modelos de dados c o n v e n c i o n a i s n&o atendem aos r e q u i s i t e s das novas a p l i c a c o e s , denominadas de a p l i c a c o e s n S o - c o n v e n c i o n a i s , t a i s como : I n f o r m a c S o de E s c r i t 6 r i o s , P r o j e t o s A s s i s t i d o s p o r Computador (CAD), ConcepcSo de C i r c u i t o s I n t e g r a d o s , e t c . , p o i s e s t e s requerem i n t e r f a c e s mais a m i g a v e i s , t r a n s a c o e s de l o n g a d u r a c a o , a b s t r a c a o de dados, v e r s o e s , deducao l o g i c a , nocSo de tempo, r e s t r i c S e s de i n t e g r i d a d e , e n t r e o u t r o s .

Desta f o r m a , r e q u e r - s e novos modelos de dados, p o r exemplo o modelo o r i e n t a d o a o b j e t o s [ A t k i n s o n 8 9 ] , em que novas t e c n i c a s , i n c l u s i v e de c o n t r o l e de c o n c o r r e n c i a , sao n e c e s s a r i e s .

Esses novos modelos de dados i n c o r p o r a m t i p o s a b s t r a t o s de dados. Com i s s o , essa abordagem consegue, a t r a v e s da e x p l o r a c a o da s e m a n t i c a d e s t e s t i p o s , u t i l i z a n d o a c o m u t a t i v i d a d e das operacoes e a b s t r a c a o de e s t a d o , um aumento s i g n i f i c a t i v e na p e r f o r m a n c e do c o n t r o l e de c o n c o r r e n c i a [Schwarz 84a, 8 4 b ] .

Alem do ganho de p a r a l e l i s m o com o p e r a c o e s t i p a d a s , podemos aumentar a i n d a mais a c o n c o r r e n c i a s e , ao i n v e s de c o n s i d e r a r m o s as operacoes t i p a d a s como i n d i v i s i v e i s , p e r m i t i r m o s que h a j a c o n c o r r e n c i a e n t r e as suboperacoes que implementam uma operacao t i p a d a . E v i d e n t e m e n t e , a c o e r e n c i a deve s e r m a n t i d a e, p o r t a n t o , deve h a v e r s i n c r o n i z a c g o e n t r e as s u b o p e r a c o e s . D e s t a

(14)

t r a n s a c S e s m u l t i n i v e i s [Weikum 87, B e e r i 88, Moss 8 2 ] .

E s t a abordagem m u l t i n i v e l e x p l o r a o p a r a l e l i s m o i n t e r n o das t r a n s a c o e s , que s&o formadas com operacoes t i p a d a s . Cada s u b t r a n s a c g o e uma u n i d a d e a t o m i c a , podendo em caso de f a l h a s e r r e c u p e r a d a e r e e x e c u t a d a sem comprometer a t r a n s a c a o como um t o d o . Assim, e s t a s t r a n s a c o e s m u l t i n i v e i s sao i n d i c a d a s p a r a modelos de dados o r i e n t a d o s a o b j e t o s , s i s t e m a s d i s t . r i b u i d o s e a p l i c a c o e s n & o - c o n v e n c i o n a i s .

E s t a d i s s e r t a c a o tern como o b j e t i v o i n i c i a l a p r e s e n t a r um e s t u d o s o b r e o c o n t r o l e de c o n c o r r e n c i a nos Bancos de Dados C o n v e n c i o n a i s , a p r e s e n t a n d o a t e o r i a e os d i v e r s o s mecanismos e x i s t e n t e s . A p a r t i r d a l , estudamos a abordagem m u l t i n i v e l , e n f a t i z a n d o sempre as v a n t a g e n s d e s t a abordagem com r e l a c & o aos metodos c o n v e n c i o n a i s . Como o b j e t i v o f i n a l e c o n t r i b u i c a o d e s t e t r a b a l h o , apresentamos um p r o t o c o l o de b l o q u e i o em duas f a s e s p a r a t r a n s a c S e s m u l t i n i v e i s . Neste p r o t o c o l o , i n c l u i m o s o e s t u d o de algumas h i p 6 t e s e s que a i n d a nao f o r a m abordadas p e l o s p e s q u i s a d o r e s da a r e a [Weikum 87, Moss 85, B a d r i n a t h 9 0 ] .

0 i n t e r e s s e de p r o p o r novas h i p o t e s e s v i s a a p r i m o r a r o modelo de t r a n s a c o e s m u l t i n i v e i s , no s e n t i d o de p r o v e r um m e l h o r a t e n d i m e n t o aos novos r e q u i s i t o s das a p l i c a c o e s nSo-c o n v e n nSo-c i o n a i s , preonSo-cupando-se nSo-com p e r f o r m a n nSo-c e e nSo-c o n f i a b i l i d a d e . Para i s s o , e s t a s h i p o t e s e s v i s a m d e i x a r o modelo de t r a n s a c S e s menos r e s t r i t i v o .

A o r g a n i z a c a o do r e s t a n t e d e s t a d i s s e r t a c a o da-se da s e g u i n t e forma : o c a p i t u l o 2 a p r e s e n t a um e s t u d o do e s t a d o da

(15)

a r t e do c o n t r o l e de c o n c o r r e n c i a noe Bancos de Dados C o n v e n c i o n a i s ; o c a p i t u l o 3 aborda o c o n t r o l e de c o n c o r r e n c i a sobre operacoes t i p a d a s , enfocando a c o m u t a t i v i d a d e ; o c a p i t u l o 4 e n f o c a a abordagem m u l t i n i v e l ; o c a p i t u l o 5 a p r e s e n t a o p r o t o c o l o de b l o q u e i o s em duas f a s e s m u l t i n i v e l ; p o r u l t i m o , o c a p i t u l o 6 f a z as c o n c l u s S e s do t r a b a l h o e sugere as p o s s i v e i s p e s q u i s a s que poderSo d a r c o n t i n u i d a d e a e s t a d i s s e r t a c a o .

(16)

2. CONTROLE DE CONCORRENCIA PARA BANCOS DE DADOS CONVENCIONAIS

2.1 I n t r o d u c a o

Neste c a p i t u l o , abordaremos o c o n t r o l e de c o n c o r r e n c i a noe Bancos de Dados C o n v e n c i o n a i s . A c o n s o l i d a c a o dos s i s t e m a s de Bancos de Dados C o n v e n c i o n a i s , c u j o s modelos s&o o h i e r a r q u i c o o de r e d e s e o r e l a c i o n a l [ O i l m a n 8 3 ] v i a b i l i z o u a r e a l i z a c a o de d i v e r s o s e s t u d o s no s e n t i d o de m e l h o r a r o c o n t r o l e de c o n c o r r e n c i a e n t r e t r a n s a c o e s . Por exemplo, B e r n s t e i n a p r e s e n t a v a r i o s metodos de c o n t r o l e de c o n c o r r e n c i a p a r a e s t a abordagem c o n v e n c i o n a l . [ B e r n s t e i n 8 1 ] 0 o b j e t i v o d e s t e c a p i t u l o e, i n i c i a l m e n t e , a p r e s e n t a r a t e o r i a do c o n t r o l e de c o n c o r r e n c i a p a r a a abordagem c o n v e n c i o n a l , e a i se e n c o n t r a m a d e f i n i c a o do modelo de t r a n s a c a o , s c h e d u l e ( i s t o e, uma execucao c o n c o r r e n t e de v a r i a s t r a n s a c o e s ) e a t e o r i a da s e r i a l i z a b i l i d a d e . Em s e g u i d a , expomos as p r i n c i p a l s t e c n i c a s u t i l i z a d a s p a r a p r o v e r um c o n t r o l e de c o n c o r r e n c i a n e s t a abordagem. A o r g a n i z a c a o d e s t e c a p i t u l o e s t a d i s p o s t a da s e g u i n t e forma : a secao 2.2 e n f o c a o modelo de t r a n s a c a o u t i l i z a d o , a secSo 2.3 a p r e s e n t a a d e f i n i c a o de um s c h e d u l e , a secao 2.4 aborda a t e o r i a da s e r i a l i z a b i l i d a d e , a secao 2.5 a p r e s e n t a o p r o t o c o l o de b l o q u e i o s em duas f a s e s [Eswaran 7 6 ] , a secfio 2.6 o mecanismo de t i m e s t a m p [ B e r n s t e i n 87, K o r t h 89, C e r i 8 4 ] , a sec8o 2.7 a p r e s e n t a o mecanismo o t i m i s t a [Kung 8 1 ] , a sec&o 2.8 a p r e s e n t a o p r o t o c o l o baseado no t e s t e do g r a f o de s e r i a l i z a c a o

(17)

[ B e r n s t e i n 87, S u g i h a r a 8 7 ] e, p o r u l t i m o , a secao 2.9 f a z uma b r e v e c o n c l u s & o da t e o r i a a p r e s e n t a d a no p r e s e n t e c a p i t u l o .

2.2 O Modelo de T r a n s a c a o

Enfocamos n e s t a secao o modelo de t r a n s a c a o a d o t a d o . Consideremos um d o m i n i o D = { x, y, z, ... } composto do c o n j u n t o f i n i t o de i t e n s de dado ( o b j e t o s ) . E n t a o , as o p e r a c o e s s o b r e os o b j e t o s p e r m i t i d o s no modelo com x 6 D e i 6 N, sao :

R i ( x ) : e a operacSo de l e i t u r a do o b j e t o x p e l a t r a n s a c a o i ; W±(x) : e a operacSo de gravacSo do o b j e t o x p e l a t r a n s a c a o i ; C i : e a c o n f i r m a c a o (Commit) da t r a n s a c a o i , ou s e j a , quando a t r a n s a c a o i e e x e c u t a d a t o t a l m e n t e ; A± : e o a b o r t o ( A b o r t ) da t r a n s a c a o i , ou s e j a , quando a execucao da t r a n s a c S o i 6 i n t e r r o m p i d a a n t e s de t o d a s as o p e r a c o e s t e r e m s i d o p r o c e s s a d a s p e l o s i s t e m a .

A n t e s de darmos a d e f i n i c & o do nosso modelo de t r a n s a c a o , apresentamos o c o n c e i t o de c o n f l i t o que s e r a de grande u t i l i d a d e . Duas operacoes estSo em c o n f l i t o se e l a s operam s o b r e um mesmo i t e m de dado, digamos x, e p e l o menos uma d e l a s 6 uma operacSo de gravacSo, i s t o e W ( x ) .

0 modelo de t r a n s a c S o e baseado em g r a v a c o e s i m e d i a t a s , i s t o e, uma operacSo de w r i t e a t u a d i r e t a m e n t e no Banco de Dados, ao i n v e s de gravacSes d e f e r i d a s onde uma operacao de w r i t e 6

(18)

armazenada em uma area p r i v a d a ( b u f f e r ) e so d e p o i s e t r a n s f e r i d a p a r a o Banco de Dados. Para um m a i o r a p r o f u n d a m e n t o n e s t e a s s u n t o , T u r c f a z uma comparacao e n t r e modelo com g r a v a c o e s i m e d i a t a s e modelo com g r a v a c o e s d e f e r i d a s . [ T u r c 9 0 ]

Podemos entSo d e f i n i r uma t r a n s a c a o T±, i G N como um p a r (OPi, < i ) [ H a d z i l a c o s 8 8 ] , onde :

1. OPi CT { R±(x), W i ( x ) , C i , A± } com x 6 D

2. <± e uma ordem p a r c i a l sobre 0P±

3. Q u a i s q u e r duas o p e r a c o e s de OPi em c o n f l i t o sSo o r d e n a d a s p o r <±, i s t o e, se a, b 6 OPi estSo em c o n f l i t o , entSo ou a < i b ou b < i a.

4. A± 6 OPi se, e somente se C i £ 0P±, i s t o e, uma t r a n s a c a o ou a b o r t a ou c o n f i r m a .

5. Se a G { A±, C± } entSo V b G OPi - { a } => b <± a; i s t o 6, o a b o r t o A± ou c o n f i r m a c S o C i sSo sempre a u l t i m a operacSo de uma t r a n s a c a o . Em o u t r a s p a l a v r a s , uma t r a n s a c a o t e r m i n a ou com um Commit ou com um A b o r t .

Uma t r a n s a c S o deve obedecer as s e g u i n t e s p r o p r i e d a d e s [ H a e r d e r 8 3 ] :

P I . ATOMICIDADE => Uma t r a n s a c a o e a t o m i c a se e x e c u t a t u d o ou nada, ou s e j a , se h o u v e r um Commit, entSo t o d o s os w r i t e s devem s e r p r o c e s s a d o s completamente e seus r e s u l t a d o s podem s e r r e t o r n a d o s ao u s u a r i o ; p o r o u t r o l a d o , se f o r a b o r t a d a , ent&o t o d o s os w r i t e s f e i t o s a t e o a b o r t o devem s e r d e s f e i t o s como ee a

(19)

t r a n s a c S o nSo t i v e s s e s i d o e x e c u t a d a .

P2. CONSISTENCIA => Uma t r a n s a c S o deve eempre obedecer Ss r e g r a s de i n t e g r i d a d e p a r a , quando e x e c u t a d a s o z i n h a e p o r c o m p l e t e nunca d e i x a r o Banco de Dados num e s t a d o i n c o n s i s t e n t e .

P3. ISQLAQAO => Eventos o c o r r i d o s d e n t r o de uma t r a n s a c S o devem s e r e s c o n d i d o s das demais t r a n s a c o e s e x e c u t a d a e c o n c o r r e n t e m e n t e , a t 6 que a p r i m e i r a c o n f i r m e .

P4. DURABILIDADE => Tambem chamada de p e r s i s t e n c i a . Quando uma t r a n s a c S o c o n f i r m a , suas a t u a l i z a c S e s nSo podem s e r d e s f e i t a s a nSo s e r p o r o u t r a t r a n s a c S o c o n f i r m a d a , e uma vez a b o r t a d a seus e f e i t o s nao podem r e a p a r e c e r .

2.3 Schedules

Tambem c o n h e c i d o na l i t e r a t u r e de Banco de Dados como H i s t o r i a s [ B e r n s t e i n 8 7 ] ou Logs [ H a d z i l a c o s 8 8 ] , um Schedule S e um c o n j u n t o p a r c i a l m e n t e ordenado de operacoes p e r t e n c e n t e s a um c o n j u n t o de t r a n s a c S e s .

Exemplo 2.1 : A execucao c o n c o r r e n t e das t r a n s a c S e s a b a i x o c o n s t i t u i um s c h e d u l e .

S = R i ( x ) ; R s ( y ) ; W i ( x ) ; C i ; W2( y ) ; C=

E

Entao podemos d e f i n i r um Schedule Completo S, s o b r e as t r a n s a c o e s T i , com l < i < N e N = niimero de t r a n s a c S e s de S,

(20)

como sendo uma ordem p a r c i a l (OPs, <s ) , onde :

1. OPs = U i§i 0P±; i s t o e, OPs 6 o c o n j u n t o de t o d a s as operacSes OPi das t r a n s a c S e s .

2. <s ZD <±, 1 < i < N, i s t o e, e x i s t e uma c o m p a t i b i l i d a d e e n t r e a ordem do Schedule e a ordem das t r a n s a c o e s . Ou s e j a , a ordem do Schedule, <s, nSo v a i mudar a ordem e s t a t i c a e n t r e operacSes de uma t r a n s a c S e s , < i .

3. Todas as operacSes em c o n f l i t o em OPs sSo ordenadas p o r <s.

Um Schedule ( i n c o m p l e t o ) e um p r e f i x o de um Schedule c o m p l e t e r e p r e s e n t a n d o uma p o s s i v e l execucao i n c o m p l e t a de t r a n s a c o e s [ H a d z i l a c o s 8 8 ] .

A n e c e s s i d a d e do Schedule i n c o m p l e t o da-se porque um Schedule Completo contem t o d a s as t r a n s a c S e s completadae e m u i t a s vezes p r e c i s a m o s de um Schedule que a n a l i s e passos i n t e r m e d i a r i e s da execuc&o das t r a n s a c S e s , como se num d e t e r m i n a d o momento n6s parassemos a execucSo p a r a a n a l i s a r a ordem das operacSes. Em o u t r a s p a l a v r a s , o Schedule e s t a r e l a c i o n a d o com t r a n s a c S e s a t i v a s , que sSo a q u e l a s que a i n d a nem c o n f i r m a r a m nem a b o r t a r a m .

Formalmente, dizemos que uma t r a n s a c S o e a t i v a se e somente se C± £ OPs e A i J3 OPs. U t i l i z a m o s g r a f o s d i r e c i o n a d o s p a r a r e p r e s e n t a r g r a f i c a m e n t e o comportamento (ordem) de um Schedule, onde os a r c o s i n d i c a m a ordem d e f i n i d a p o r <s. Por

(21)

exemplo, R±(x) -> W j ( x ) , l e -se R±(x) p r e c e d e W j ( x ) ou W j ( x ) segue R i ( x ) .

Exemplo 2.2 : Sejam as t r a n s a c o e s : T i = R x ( x ) -> W i ( x ) -> C i

Tz = R2( y ) -> W2( x ) -> W2( y ) -> Ca

EntSo um Schedule Completo S s e r i a :

R i ( x ) -> W i ( x ) -> C i S =

1

R2( y ) -> W2( x ) -> W2( y ) -> C2 Um Schedule I n c o m p l e t o , ou p r e f i x o de S, S' s e r i a R i ( x ) -> W i ( x ) -> C i S' =

1

R2( y ) -> W2( x )

E x i s t e m tambem Schedules com ordem t o t a l das o p e r a c o e s t a i s como :

R i ( x ) -> R2( x ) -> W i ( x ) -> C i -> W2( y ) -> W2( x ) -> C2,

podendo~se s u p r i m i r os a r c o s p a r a t a i s Schedules :

R i ( x ) R2( x ) W i ( x ) C i Ws(y) W2( x ) C2

Denotamos tambem Com(S) como sendo um Schedule Completo sobre o c o n j u n t o de t r a n s a c o e s c o n f i r m a d a s num dado i n s t a n t e .

2.4 S e r i a l i z a b i l i d a d e

(22)

um c r i t e r i o de c o r r e c S o de Schedules que i n t e r c a l a m v a r i a s t r a n s a c o e s [ B e r n s t e i n 8 7 ] . A n t e s de d e f i n i r m o s o que e um Schedule S e r i a l i z a v e l , p r e c i s a m o s de dues o u t r a s d e f i n i c S e s : Schedule s e r i a l e e q u i v a l S n c i a de Schedules.

Um Schedule S 6 uma execucSo s e r i a l , ou e i m p l e s m e n t e s e r i a l , se as t r a n s a c o e s sao e x e c u t a d a s uma ap6s o u t r a . Formalmente, sejam : t r ( S ) o c o n j u n t o de t r a n s a c o e s que estSo em S, a e b' G OPi - { A i , C± } entSo

podemos d i z e r que um Schedule Completo S e s e r i a l se :

V T e T' 6 t r ( S ) V a G O P T , V b'G O P T - a <s b' ou V a G O P T V b' 6 O P T - b' <s a.

Desde que assumimos em nosso modelo de t r a n s a c S o que a p r o p r i e d a d e de c o n s i s t e n c i a e v a l i d a p a r a uma t r a n s a c S o quando e s t a e e x e c u t a d a i s o l a d a m e n t e , entSo um Schedule s e r i a l e c o n s i s t e n t e . Exemplo 2.3 Sejam as t r a n s a c S e s : T i = R i ( x ) -> W i ( x ) -> C i Tz = R z ( x ) -> Wz(y) -> Wz(x) -> Cz

EntSo e x i s t e m duas p o s s i v e i s execucSes s e r i a l s (permutacSo de N, onde N e o numero de t r a n s a c S e s ) :

S i = R i ( x ) W i ( x ) C i R z ( x ) Wz(y) Wz(x) Cz

(23)

i s t o e : S i = T i ; Tz Sz = Tz ; T i onde T i ; T j s i g n i f i c a que T i e e x e c u t a d o i n t e i r a m e n t e a n t e s de T j . H D e f i n i r e m o s a s e g u i r a e q u i v a l e n c i a de c o n f l i t o e n t r e Schedules.

Dizemos que um Schedule S i e computacionalmente e q u i v a l e n t e a um Schedule Sz, denotado p o r S i = Sz, se

1. I n i c i a m com o mesmo e s t a d o do Banco de Dados e r e s u l t a m no mesmo e s t a d o f i n a l ;

2. t r ( S i ) = t r ( S z ) => OP»i = OP«z, i s t o e, e l e s tern o mesmo c o n j u n t o de t r a n s a c o e s e, consequentemente, t&m o mesmo c o n j u n t o de o p e r a c o e s ;

3. V a i 6 T i e bz 6 Tz, onde ou a i ou b i 6 w ( x ) , i s t o e, a i c o n f l i t a com b z , e A i , Az 0 S, entSo a i < o i bz se e somente se a i <sz bz ou bz < s i a i se e somente se bz <sz a i , i s t o e, a ordem de operacoes em c o n f l i t o de t r a n s a c S e s nfio a b o r t a d a s e a mesma em S i e Sz.

Exemplo 2.4: Sejam Si,Sz e S 3 os seguintes Schedules :

> C i

> Cz R i ( x ) > R i ( y ) > W i ( x )

(24)

-R i ( x ) -> -R i ( y ) -> W i ( x ) -> C: S2 = R2( y ) -> W2 x ) -> W2( y ) -> C: R i ( x ) -> R i ( y ) -> W i ( x ) -> C: S 3 = R2( y ) -> W2( x ) -> W2( y ) -> Cz

E n t a o , S i s S2 mas S 3 nao e e q u i v a l e n t s a nenhum

Agora podemos d e f i n i r um Schedule S e r i a l i z a v e l . Um Schedule e s e r i a l i z a v e l se e c o m p u t a c i o n a l m e n t e e q u i v a l e n t e a um Schedule S e r i a l , i s t o e, p r o d u z o mesmo r e s u l t a d o e o mesmo e f e i t o no Banco de Dados, que uma execucao s e r i a l do c o n j u n t o de t r a n s a c o e s t r ( S ) [ B e r n s t e i n 8 7 ] . ExemPlQ 2.7 Sejam as t r a n s a c o e s : T i = R i ( x ) W i ( x ) C i Tz = R2( y ) W2( x ) Cz P o r t a n t o os d o i s Schedules s e r i a l s p o s s i v e i s sSo : 5 1 = T i ; Tz e 52 = Tz ; T i Os Schedules s e r i a l i z a v e i s sao : S i e S2, p o i s t o d o Schedule s e r i a l e s e r i a l i z a v e l ; 5 3 = R i ( x ) R2( y ) W i ( x ) Wz(x) C i C2 54 = R2( y ) R i ( x ) W i ( x ) Wz(x) C i C2

(25)

Uma o u t r a m a n e i r a de v e r i f i c a r m o s se um Schedule e s e r i a l i z a v e l e a t r a v e s do g r a f o o b t i d o a t r a v e s do S c h e d u l e , o q u a l chamamos de Grafo de S e r i a l i z a c a o p a r a o Schedule, denotado por G ( S ) . E s t e g r a f o e d i r i g i d o e e d e f i n i d o como G(S) = (Com(S), - > ) , onde Com(S) sao os nodos do g r a f o r e p r e s e n t a n d o o c o n j u n t o de t r a n s a c o e s que c o n f i r m a r a m em S, e -> s&o os a r c o s , onde se T i -> T j , entSo t o d a s as o p e r a c o e s de T i , que c o n f l i t a m com operacoes de T j , o c o r r e r a m a n t e s das r e s p e c t i v a s operacoes de T j . Exemplo 2.8: S e j a o s e g u i n t e Schedule S R i ( x ) -> W i ( x ) -> C i ( T i ) S = R z ( x T ^ > ^ z ( x ) -> Ws(y) -> Cz ( T z ) R3( y ) -> W3( y ) -> C3 ( T3) EntSo o g r a f o de s e r i a l i z a c a o p a r a S s e r i a : T i G(S) = Tz

Uma vez d e f i n i d o o g r a f o de s e r i a l i z a c S o , podemos d a r uma nova d e f i n i c a o do que s e j a um Schedule S e r i a l i z a v e l . Dizemos que um Schedule S e s e r i a l i z a v e l se e somente se o g r a f o de s e r i a l i z a c a o p a r a S, G ( S ) , e a c l c l i c o [ B e r n s t e i n 87, H a d z i l a c o s 88, K o r t h 89, Casanova 85, C e r i 8 4 ] .

(26)

2.5 P r o t o c o l o de B l o q u e i o em Duas Fases

0 P r o t o c o l o de B l o q u e i o em Duas Fases ou P r o t o c o l o 2PL (do i n g l e s Two Phase L o c k i n g ) f o i p r o p o s t o i n i c i a l m e n t e p o r Eswaran e u t i l i z a a t e c n i c a de b l o q u e i o s p a r a s i n c r o n i z a r o acesso a dados c o m p a r t 1 l h a d o s , fazendo e s t a e i n c r o n i z a c S o de acordo com a t e o r i a da s e r i a l i z a b i l i d a d e . [Eswaran 7 6 ]

Antes de descrevermos e s t e p r o t o c o l o f a l a r e m o s um pouco da t e c n i c a de b l o q u e i o s que e o fundamento d e s t e p r o t o c o l o . Um b l o q u e i o e s o l i c i t a d o p o r uma t r a n s a c S o , quando e s t a q u e r t e r acesso a um d e t e r m i n a d o i t e m de dado. Uma vez a t e n d i d o o p e d i d o de b l o q u e i o , i s t o s i g n i f i c a r a que nenhuma o u t r a t r a n s a c a o , com operacSo c o n f l i t a n t e com o o b j e t o b l o q u e a d o , p o d e r a t e r acesso a e s t e o b j e t o b l o q u e a d o , a t e que a t r a n s a c S o que detem o b l o q u e i o l i b e r e - o . E x i s t e m d o i s t i p o s de b l o q u e i o s : o b l o q u e i o c o m p a r t i l h a d o , tambem chamado r e a d l o c k , e o b l o q u e i o e x c l u s i v o , tambem c o n h e c i d o como w r i t e l o c k .

Os b l o q u e i o s c o m p a r t i l h a d o s sao a q u e l e s s o b r e o p e r a c o e s nSo c o n f l i t a n t e s . Por exemplo, se uma t r a n s a c S o f a z um r e a d l o c k num o b j e t o , o u t r a s t r a n s a c o e s podem f a z e r r e a d l o c k s no o b j e t o , p o i s nSo ha c o n f l i t o , uma vez que as t r a n s a c o e s est&o apenas c o n s u l t a n d o os o b j e t o s , sem m o d i f i c a - l o s . E s t e b l o q u e i o p r o p i c i a uma m a i o r c o n c o r r e n c i a ao s i s t e m a .

Por o u t r o l a d o , os b l o q u e i o s e x c l u s i v o s sSo s o l i c i t a d o s quando uma t r a n s a c a o quer m o d i f i c a r um o b j e t o do Banco de Dados, ou s e j a , s&o os w r i t e l o c k s . D a i , nenhuma o u t r a t r a n s a c S o pode t e r acesso ao o b j e t o enquanto a t r a n s a c S o que p o s s u i o b l o q u e i o nSo

(27)

l i b e r a r e s t e o b j e t o .

0 P r o t o c o l o 2PL, como o p r o p r i o nome j a d i z , c o n s i s t e de duas f a s e s : a p r i m e i r a f a s e chamada f a s e de c r e s c i m e n t o e a segunda f a s e denominada f a s e de l i b e r a c a o . D u r a n t e a f a s e de c r e s c i m e n t o a t r a n s a c a o obtem os b l o q u e i o s nos o b j e t o s que vSo s e r p o r e l a u t i l i z a d o s . Na f a s e de l i b e r a c a o a t r a n s a c a o t e n d e a l i b e r a r t o d o s os b l o q u e i o s s o b r e os o b j e t o s a medida que nSo v a i mais u t i l i z a - l o s . Podemos d e d u z i r que, uma vez l i b e r a d o um u n i c o b l o q u e i o de um o b j e t o , a t r a n s a c a o nSo pode mais t e n t a r b l o q u e a r q u a i s q u e r o b j e t o s [Casanova 85, K o r t h 8 9 ] .

Para p r o v a r a c o r r e c a o do P r o t o c o l o 2PL e s u f i c i e n t e provarmos que um Schedule p r o d u z i d o p o r e s t e p r o t o c o l o e s e r i a l i z a v e l . Ou s e j a , p e l o teorema da S e r i a l i z a b i l i d a d e [ B e r n s t e i n 8 7 ] , p r e c i s a m o s p r o v a r que o g r a f o G ( S ) , onde S e o Schedule, e a c i c l i c o . S e j a S um Schedule p r o d u z i d o p e l o 2PL S c h e d u l e r . Sejam L i ( x ) a operacao de s o l i c i t a c a o de b l o q u e i o do o b j e t o x p e l a t r a n s a c S o i ; O p i ( x ) uma operacao de r e a d ou w r i t e s o b r e o o b j e t o x p e l a t r a n s a c a o i ; e U±(x) a operacao de l i b e r a c a o do b l o q u e i o do o b j e t o x p e l a t r a n s a c a o i . EntSo temos as s e g u i n t e s p r o p r i e d a d e s :

P I . Se O p i ( x ) G Com(S), entSo L±(x) e U i ( x ) 6 Com(S) e L±(x) < O p i ( x ) < U i ( x ) ; i s t o e, uma t r a n s a c S o a n t e s de t e r acesso a um o b j e t o deve b l o q u e a - l o e, apos u s a - l o , deve l i b e r a - l o .

(28)

operacoes c o n f l i t a n t e s e n t a o ou U i ( x ) < L j ( x ) ou U j ( x ) < L±(x), i s t o e, e x i s t e uma ordem t o t a l e n t r e as operacSes em c o n f l i t o g a r a n t i n d o um acesso e x c l u s i v o ao o b j e t o .

P3. S e j a S um Schedule c o m p l e t o p r o d u z i d o p o r um 2PL S c h e d u l e r . Se q u a i s q u e r Op±(x) e O p i ( y ) G Com(S), entSo L±(x) < U i ( y ) , i s t o e, uma t r a n s a c a o deve s o l i c i t a r t o d o s os b l o q u e i o s a n t e s de comecar a l i b e r a r b l o q u e i o s .

Para provarmos a s e r i a l i z a b i l i d a d e de um Schedule p r o d u z i d o p o r um 2PL S c h e d u l e r , podemos s u p o r que o g r a f o G(S) tern um c i c l o , T I -> T2 -> ... -> Tn -> T I . P e l a p r o p r i e d a d e P3, T I deve s o l i c i t a r t o d o s os b l o q u e i o s a n t e s de comecar a l i b e r a

-l o s , porem se houver t a -l c i c -l o c r i a - s e uma c o n t r a d i c S o p o i s : L i ( x ) < U i ( x ) < L i ( y ) , p o r t a n t o e s t e c i c l o nao e p e r m i t i d o p e l o p r o t o c o l o . P o r t a n t o , como G(S) nao contem c i c l o s , p e l a segunda d e f i n i c & o de s e r i a l i z a b i l i d a d e temos que S e s e r i a l i z a v e l

[Casanova 8 5 ] .

0 p o n t o de t r a n s i c a o da f a s e de c r e s c i m e n t o p a r a f a s e de l i b e r a c a o e chamado ponto de bloqueio. E l e d e t e r m i n e a ordem de s e r i a l i z a c a o do Schedule. I s t o o c o r r e porque quando uma t r a n s a c a o T i a t i n g e seu p o n t o de b l o q u e i o , t o d a s as o u t r a s t r a n s a c o e s que n e c e s s i t e m dos o b j e t o s b l o q u e a d o s p o r T± devem e s p e r a r a t e que sejam l i b e r a d o s e s t e s o b j e t o s , f a z e n d o com que a t r a n s a c a o T i que c o n s e g u i u a t i n g i r seu p o n t o de b l o q u e i o p r i m e i r o s e j a p r e c e d e n t e na ordem de execucao. No g r a f o de s e r i a l i z a c & o , se e x i s t i r um a r c o de T± p a r a T j quer d i z e r que T± a t i n g i u seu p o n t o de b l o q u e i o a n t e s de T j .

(29)

Reeumindo, poderiamos d i z e r que se duas t r a n s a c o e s c o n f l i t a m , a q u e l a que a t i n g i r o p o n t o de b l o q u e i o p r i m e i r o t e r a p r e c e d e n c i a de execucao em r e l a c a o a o u t r a .

Dessa forma, o Schedule ordena as t r a n s a c o e s p e l o s seus r e s p e c t i v o s p o n t o s de b l o q u e i o , d e t e r m i n a n d o uma ordem t o t a l sobre as operacSes em c o n f l i t o .

Com o i n t u i t o de p r o v e r uma m a i o r c o n c o r r e n c i a pode-se u t i l i z a r as chamadas c o n v e r s o e s de b l o q u e i o , i s t o 6, uma t r a n s a c a o obtem um b l o q u e i o c o m p a r t i l h a d o sobre um o b j e t o e d e p o l s e l e v a esse b l o q u e i o p a r a o modo e x c l u s i v e ou v i c e - v e r s a , uma t r a n s a c S o p o s s u i um b l o q u e i o sobre um o b j e t o no modo e x c l u s i v e e d e p o i s a b a i x a e s t e b l o q u e i o p a r a o modo c o m p a r t i l h a d o . E i m p o r t a n t e n o t a r que e s t a s c o n v e r s S e s nao sao a r b i t r a r i a s , ou s e j a , a e l e v a c S o deve a c o n t e c e r na f a s e de c r e s c i m e n t o , enquanto que o abaixamento deve a c o n t e c e r apenas na f a s e de l i b e r a c S o .

Este m a i o r g r a u de p a r a l e l i s m o e p r o p i c i a d o porque uma t r a n s a c S o , ao i n v e s de b l o q u e a r um o b j e t o no modo e x c l u s i v o l o g o no i n i c i o de sua execucSo, f a z um b l o q u e i o c o m p a r t i l h a d o sobre o o b j e t o , p e r m i t i n d o que o u t r a s t r a n s a c S e s tenham acesso c o n c o r r e n t e ao o b j e t o b l o q u e a d o e, apenas quando a t r a n s a c a o q u i s e r m o d i f i c a r o o b j e t o b l o q u e a d o , e l a s o l i c i t a uma conversSo de b l o q u e i o p a r a o modo e x c l u s i v o .

0 grande problema d e s t e p r o t o c o l o de b l o q u e i o em duas f a s e s e que e l e e s u s c e p t i v e l a b l o q u e i o s mutuos, c o n h e c i d o s como d e a d l o c k s , que s i m p l e s m e n t e p a r a l i s a m a execucSo das t r a n s a c S e s

(30)

e n v o l v i d a s no d e a d l o c k , p o i s c r i a - s e um impasse d e v i d o as t r a n s a c S e s que f i c a m esperando p o r l i b e r a c o e s que nunca o c o r r e r & o . Alem d i s s o , um d e a d l o c k impSe um b l o q u e i o i n f i n i t o dos o b j e t o s que e s t a o b l o q u e a d o s p e l a s t r a n s a c o e s em d e a d l o c k , de forma que nenhuma o u t r a t r a n s a c a o pode t e r acesso a e s t e s o b j e t o s . Na p r o x i m a sec&o faremos um e s t u d o d e s t e p r o b l e m a .

2.5.1 Deadlocks

Um s i s t e m a e s t a em d e a d l o c k quando se tern, p e l o menos, uma sequSncia de t r a n s a c o e s , T i , T2,...,T», onde T± e s p e r a p o r uma l i b e r a c a o de T c i + i modi n ) , i = l , . . . , n ; de f o r m a que nenhuma das T i t e r m i n a r a sem que h a j a uma i n t e r f e r e n c i a do s c h e d u l e r p a r a r e s o l v e r o impasse. Exemplo 2.7 Sejam os s e g u i n t e s t r e c h o s de t r a n s a c o e s , c o n s i d e r a n d o b l o q u e i o s e x c l u s i v o s : T i = L i ( x ) L i ( y ) Tz = L z ( y ) L z ( x ) e s e j a o s e g u i n t e Schedule : S = L i ( x ) L z ( y ) L i ( y ) Lz(x), e n t a o o Schedule S p r o v o c o u um d e a d l o c k , p o i s a t r a n s a c a o T i b l o q u e i a o o b j e t o x e f i c a esperando p e l o b l o q u e i o do o b j e t o y que e s t a bloqueado p e l a t r a n s a c a o Tz, que, p o r sua v e z , e s t a esperando p e l o b l o q u e i o do o b j e t o x, que e s t a com a t r a n s a c a o T i , d a i c r i a n d o - s e o impasse. Devemos n o t a r que no Schedule acima as

(31)

operacSes de p e d i d o de b l o q u e i o L i ( y ) e Ls(y) nSo chegam a s e r e x e c u t a d a s e f i c a m esperando.

D

E x i s t e m duas t e c n i c a s p a r a l i d a r com d e a d l o c k s : uma que p r e v i n e os d e a d l o c k s , i s t o e, nSo os d e i x a o c o r r e r , e a o u t r a t e c n i c a que d e t e c t a quando um d e a d l o c k o c o r r e e s o l u c i o n a o impasse. A t e c n i c a de prevencao e mais u t i l i z a d a quando a i n c i d e n c i a de d e a d l o c k s e m u i t o g r a n d e , enquanto que a t e c n i c a de d e t e c g a o / r e s o l u c & o e adequada quando e s t a i n c i d e n c i a e pequena.

Ambas as t e c n i c a s imprimem um "overhead" de execucao ao mecanismo de c o n t r o l e de c o n c o r r e n c i a , o q u a l deve s e r o mlnimo p o s s i v e l .

2.5.1.1 Prevencao de Deadlocks

E x i s t e m v a r i a s t e c n i c a s p a r a se p r e v e n i r d e a d l o c k s , c i t a m o s algumas d e l a s :

B l o q u e a r t o d o s os o b j e t o s a serem usados, a n t e s de i n i c i a r a execucao, a t r a v e s de uma p r e - c o m p i l a c a o . Se nao se c o n s e g u i r t o d o s os b l o q u e i o s de que se n e c e s s i t a , e n t a o a t r a n s a c a o deve s e r r e p e t i d a . E s t a e a m a n e i r a mais s i m p l e s de i m p l e m e n t a r a prevencao de d e a d l o c k s porem, e x i s t e m d o i s p r o b l e m a s : o p r i m e i r o e o b a i x o p a r a l e l i s m o que e s t a t e c n i c a pode p r o v e r , p o i s mesmo que uma t r a n s a c S o u t i l i z e um o b j e t o p o r pouco tempo, e s t e e bloqueado d u r a n t e t o d a a execucao da t r a n s a c a o ( 2PL E s t r i t o ) . 0 o u t r o p r o b l e m a e mais s e r i o , p o i s

(32)

pode s e r que uma t r a n s a c a o f i q u e esperando i n d e f i n i d a m e n t e p o r um o b j e t o que e s t a sempre a l o c a d o .

. Um o u t r o metodo e impor uma ordenacao t o t a l de t o d o s os o b j e t o s e e x i g i r que as t r a n s a c o e s b l o q u e i e m o b j e t o s somente n e s t a ordem.

O u t r o s metodos u t i l i z a m preempcao e r e p e t i c a o de t r a n s a c o e s . Para i s s o , deve-se a t r i b u i r um t i m e s t a m p ( s e n h a ) u n i c o a cada t r a n s a c a o [ L a m p o r t 7 8 ] . Se uma t r a n s a c S o e r e p e t i d a , e l a permanece com seu t i m e s t a m p a n t e r i o r . E x i s t e m d o i s metodos que u t i l i z a m e s t a t e c n i c a [ B e r n s t e i n 8 7 ] :

1. w a i t - d i e ( e s p e r a - morre ) => E uma t e c n i c a nao-p r e e m nao-p t i v a , onde uma t r a n s a c a o T i e s nao-p e r a nao-p o r o u t r a T j que r e t e m o o b j e t o d e s e j a d o se T± t i v e r um t i m e s t a m p menor que o t i m e s t a m p de

T j , caso c o n t r a r i o T i e a b o r t a d a e d e p o i s r e p e t i d a com o mesmo

t i m e s t a m p .

Exenrplo 2.8 Sejam T i e T2 t r a n s a c o e s com t i m e s t a m p T S ( T i ) = 5 e T S ( T 2 ) = 10. Se T i q u i s e r um o b j e t o b l o q u e a d o p o r

T2, e n t a o como T S ( T i ) < T S ( T 2 ) , T i e s p e r a . Por o u t r o l a d o , se Tz

q u i s e r um o b j e t o bloqueado p o r T i ent&o, como T S ( T 2 ) > T S ( T i ) , T2 e r e p e t i d a com o mesmo t i m e s t a m p .

0

2. wound - w a i t ( f e r e - e s p e r a ) => E uma t e c n i c a p r e e m p t i v a onde se uma t r a n s a c a o T± q u i s e r um o b j e t o b l o q u e a d o p o r o u t r a t r a n s a c a o T j e o t i m e s t a m p (TS) de T± f o r m a i o r que o t i m e s t a m p de T j entSo T± e s p e r a p e l a l i b e r a c a o do o b j e t o , caso c o n t r a r i o , T j e r e p e t i d a , ou s e j a T j e ' " f e r i d a " p o r T i .

(33)

ExemplQ 2,9 Seja T i com T S ( T i ) = 5 e T2 com T S ( T2) = 10. Se T i q u i s e r um o b j e t o bloqueado p o r T2, como T S ( T i ) < T S ( T s ) , e n t a o o o b j e t o t e r a preempcao de T2 e T2 s e r a r e p e t i d a . Por o u t r o l a d o , se T2 q u i s e r um o b j e t o b l o q u e a d o p o r T i , como T S ( T2) > T S ( T i ) e n t a o T2 e s p e r a r a p e l a l i b e r a c a o do o b j e t o b l o q u e a d o p o r T i .

Um p r o b l e m a com esses metodos que u t i l i z a m o c o n c e i t o de p r e e m p c a o / r e p e t i g a o e que podem o c o r r e r algumas r e p e t i c S e s d e s n e c e s s a r i a s .

2.5.1.2 Detecc&o e ResolucSo de Deadlocks

Se o s i s t e m a p e r m i t i r a o c o r r e n c i a de d e a d l o c k s , deve p r o v e r um mecanismo p a r a d e t e c t a r e r e s o l v e r o impasse. Para i s s o , um a l g o r i t m o e e x e c u t a d o p e r i o d i c a m e n t e p a r a d e t e r m i n e r se o c o r r e u d e a d l o c k ; caso p o s i t i v e deve r e s o l v g - l o . Uma m a n e i r a b a s t a n t e r u s t i c a de i m p l a n t a r e s t e mecanismo e o timeout, i s t o e, o s c h e d u l e r d e t e r m i n e um tempo l i m i t e que uma t r a n s a c a o pode e s p e r a r p o r um b l o q u e i o . Se e s t e l i m i t e f o r e s g o t a d o , ent&o o s c h e d u l e r supoe que ha um d e a d l o c k e, p o r t a n t o , a b o r t a a t r a n s a c a o .

Este metodo pode i n c o r r e r num e r r o , p o i s e l e pode supor que uma t r a n s a c a o e s t a em d e a d l o c k e p o r t a n t o , a b o r t a - l a , quando na verdade e l a e s t a esperando p o r uma l i b e r a c a o do b l o q u e i o do o b j e t o de o u t r a t r a n s a c a o . 0 p r o b l e m a d e s t a t e c n i c a e e s p e c i f i c a r q u a l o tempo i d e a l p a r a o t i m e o u t .

(34)

O u t r a t e c n i c a p a r a d e t e c t a r o d e a d l o c k e quando o s c h e d u l e r c o n t r 6 i um g r a f o d i r i g i d o chamado g r a f o w a i t - f o r , que c o n s i s t e num p a r G = ( N, A ) onde N e o c o n j u n t o de nodos, que sfio t o d a s as t r a n s a c o e s , e A e o c o n j u n t o de a r c o s , onde cada a r c o e um p a r ordenado ( T i , T j ) , que i n d i c a que a t r a n s a c a o T± e s t a esperando que a t r a n s a c a o T j l i b e r e um o b j e t o de que T± p r e c i s e . 0 d e a d l o c k e d e t e c t a d o quando o g r a f o contem um c i c l o .

Exemplo 2.10 Sejam os s e g u i n t e s t r e c h o s de t r a n s a c S e s , c o n s i d e r a n d o b l o q u e i o s e x c l u s i v o s :

T i = L i ( x ) ; L i ( y ) ; ... Tz = L z ( y ) ; L z ( x ) ; ...

Supondo o s e g u i n t e Schedule de execucao :

S = L i ( x ) ; L z ( y ) ; L z ( x ) ; L i ( y ) ;

e n t f i o o g r a f o w a i t - f o r s e r i a :

G = T i -> Tz -> T i ,

havendo um c i c l o e consequentemente um d e a d l o c k . n

0 p r o b l e m a d e s t a t e c n i c a e saber com que f r e q u e n c i a deve-se a p l i c a r o a l g o r i t m o de d e t e c c a o do c i c l o no g r a f o . Ademais, nos s l t e m a s d i s t r i b u i d o s , a c o n s t r u c a o d e s t e g r a f o e m u i t o d i s p e n d i o s a .

Uma vez d e t e c t a d o o d e a d l o c k , o s c h e d u l e r deve r e s o l v e -l o . Para i s s o , deve-se e s c o -l h e r uma v i t i m a que quebre o impasse, r e p e t i n d o e s t a t r a n s a c & o . E i m p o r t a n t e s a l l e n t a r que, p o r

(35)

questOes de p e r f o r m a n c e , e m e l h o r r e p e t i r t r a n s a c S e s que i n c o r r e r & o no menor c u s t o . Apds d e c i d i r q u a l e a v i t i m a , deve-se d e t e r m i n a r se a r e p e t i c a o deve s e r t o t a l ( r e i n l c i o da execucSo da t r a n s a c a o ) ou se a r e p e t i c S o deve s e r apenas o s u f i c i e n t e p a r a q u e b r a r o impasse.

Alem d i s s o , deve-se p r e v e r que a e s c o l h a da v i t i m a nao r e c a i a sempre sobre uma mesma t r a n s a c S o , p o i s i n c o r r e r i a no r i s c o d e s t a t r a n s a c S o nunca s e r e x e c u t a d a , o que s e r i a i n a d m i s s i v e l . Para i s s o , pode-se c o l o c a r no c a l c u l o do c u s t o o numero de r e p e t i c S e s j a e f e t u a d a s p o r uma t r a n s a c S o [ B e r n s t e i n 8 7 ] .

2.6 OrdenacSo por TIMESTAMP

Uma o u t r a t e c n i c a e x i s t e n t e que tambem e u t i l i z a d a no c o n t r o l e de c o n c o r r e n c i a e a OrdenacSo por Timestamp que c o n s i s t e de um ordenamento p r e v i o , t o t a l e e s t r i t o , das t r a n s a c S e s de acordo com o v a l o r do t i m e s t a m p . I s t o e f e i t o p e l o Sistema G e r e n c i a d o r de Banco de Dados que a t r i b u i um t i m e s t a m p ( s e n h a ) u n i c o e f i x o no s i s t e m a p a r a cada t r a n s a c a o , no i n s t a n t e em que e s t a e c r i a d a .

Este numero pode s e r a t r i b u i d o de d i v e r s a s m a n e i r a s , e n t r e as q u a i s pode-se u t i l i z e r o p r 6 p r i o r e l o g i o do s i s t e m a p a r a marcar as t r a n s a c S e s ou um c o n t a d o r 1 6 g i c o g e r e n c i a d o p e l o Sistema G e r e n c i a d o r de Banco de Dados que e i n c r e m e n t a d o a cada t r a n s a c S o c r i a d a [ K o r t h 89, Lamport 7 8 ] .

(36)

E s t a t e c n i c a de ordenacao p o r t i m e s t a m p d e f i n e uma ordem t o t a l e n t r e as t r a n s a c o e s de forma que, se duas t r a n s a c o e s c o n f l i t a m , e n t a o e s t e c o n f l i t o e r e s o l v i d o p e l o t i m e s t a m p de cada t r a n s a c S o .

Denotaremos o t i m e s t a m p a t r i b u i d o a uma t r a n s a c S o T± q u a l q u e r p o r T S ( T i ) , que, como mencionamos a n t e r i o r m e n t e , c o n s i s t e de um numero u n i c o e f i x o no s i s t e m a .

P o r t a n t o , se t i v e r m o s duas t r a n s a c o e s d i s t i n t a s , i s t o e, T i ? T j , entSo ou T S ( T i ) < T S ( T j ) ou T S ( T i ) > T S ( T j ) , i s t o e, e x i s t e uma ordem e s t i p u l a d a p r e v i a m e n t e p e l o s i s t e m a nas execucoes das t r a n s a c o e s .

Basicamente, o p r o t o c o l o de ordenacao p o r t i m e s t a m p f u n c i o n a da s e g u i n t e m a n e i r a : p a r a cada o b j e t o 0 do Banco de Dados, o s i s t e m a mantem duas v a r i a v e i s ,

W_time8tamp(0) -> V a r i a v e l que armazena o v a l o r do t i m e s t a m p da u l t i m a t r a n s a c S o que m o d i f i c o u o o b j e t o 0.

H_timestamp(0) -> V a r i a v e l que armazena o v a l o r do t i m e s t a m p da u l t i m a t r a n s a c S o que l e u o o b j e t o 0. EntSo se uma t r a n s a c S o T± e e s c a l o n a d a e d e s e j a l e r o v a l o r de um d e t e r m i n a d o o b j e t o 0, o s i s t e m a procede da s e g u i n t e forma : 1. Se o t i m e s t a m p da t r a n s a c S o T±, que e s t a querendo l e r o o b j e t o 0, f o r menor que o v a l o r da v a r i a v e l W _ t i m e s t a m p ( 0 ) , em o u t r a s p a l a v r a s , T S ( T i ) < W _ t i m e s t a m p ( 0 ) , entSo a operacSo de l e i t u r a deve s e r r e j e i t a d a p o i s e s t a t r a n s a c S o T i "chegou

(37)

a t r a s a d a " . Desta f o r m a , a t r a n s a c S o T i deve s e r r e p e t i d a . 2. Se o t i m e s t a m p da t r a n s a c a o T i , que e s t a querendo l e r o o b j e t o 0, f o r m a i o r ou i g u a l ao v a l o r da v a r i a v e l W _ t i m e s t a m p ( 0 ) , i s t o e, T S ( T i ) > W _ t i m e s t a m p ( 0 ) , e n t a o a operacao de l e i t u r a do o b j e t o 0 e e x e c u t a d a e a v a r i a v e l R_.timestamp e a t u a l i z a d a p a r a o maximo e n t r e os v a l o r e s R _ t i m e s t a m p ( 0 ) e T S ( T i ) . Pensando em t e r m o s de a l g o r i t m o t e r i a m o s : n& TS(T±) < W_timestamp(0) exLtaQ R e p i t a T i i n l c i o READ(0); R _ t i m e s t a m p ( 0 ) := M A X ( R _ t i m e s t a m p ( 0 ) , T S ( T i ) )

onde MAX(x,y) e uma funcSo que r e t o r n a o m a i o r v a l o r e n t r e x e y.

Devemos o b s e r v e r que como uma operacao de l e i t u r a c o n f l i t a apenas com uma operacao de gravacSo, c o n f l i t o r e a d -w r i t e , fazemos a v e r i f i c a c a o apenas da v a r i a v e l W _ t i m e s t a m p ( 0 ) , p o i s a v a r i a v e l R _ t i m e s t a m p ( 0 ) nao p r e c i s e s e r v e r i f i c a d a .

Por o u t r o l a d o , suponhamos agora que uma t r a n s a c S o T i d e s e j e e f e t u a r uma gravacSo num o b j e t o 0, i s t o e w r i t e ( O ) , d a i temos o s e g u i n t e p r o c e d i m e n t o :

1. Se o t i m e s t a m p da t r a n s a c S o T i , T S ( T i ) , f o r menor do que o v a l o r da v a r i a v e l R _ t i m e s t a m p ( 0 ) , i s t o e, T S ( T i ) < R _ t i m e s t a m p ( 0 ) , entSo i s t o quer d i z e r que a a t u a l i z a c a o "chegou a t r a s a d a " . I s t o i m p l i c a r a na r e j e i c S o da operacSo de gravacSo

(38)

2. Se o t i m e s t a m p da t r a n s a c S o T i , T S ( T i ) , f o r menor do que o v a l o r da v a r i a v e l W _ t i m e s t a m p ( 0 ) , i s t o e, T S ( T i ) < W _ t i m e s t a m p ( 0 ) , e n t a o a operacSo de g r a v a c S o , w r i t e ( O ) , deve s e r

r e j e i t a d a p o i s e s t a o b s o l e t a . E n t r e t a n t o , e s t a operacSo de gravacSo pode s e r ignorada, segundo a Regra de gravacSo de Thomas

[Thomas 7 9 ] que d i z que quando t i v e r m o s T S ( T i ) < W_timestamp(0) e a operacSo e um W r i t e ( O ) , entSo ao i n v e s de r e j e i t a r m o s a operacSo de gravacSo devemos s i m p l e s m e n t e i g n o r a - l a , i s t o da uma o t i m i z a c a o ao s c h e d u l e r .

3. Caso c o n t r a r i o , i s t o e, T S ( T i ) > R _ t i m e s t a m p ( 0 ) e T S ( T i ) > W_timestamp(0) ent&o a operacSo de g r a v a c S o , w r i t e ( O ) , deve s e r e x e c u t a d a e a v a r i a v e l W_timestamp(0) r e c e b e o v a l o r de T S ( T i ) . Pensando em t e r m o s de a l g o r i t m o t e r i a m o s : ae. T S ( T i ) < R _ t i m e s t a m p ( 0 ) e j l i l Q REPITA T i fi^ T S ( T i ) ^ W_timestamp(0) W_timestamp(0) := TS(T±); WRITE(O);

Seja&o. { Regra de Thomas }

JLimae tlmss.

0 mesmo a l g o r i t m o de gravacSo sem c o n s i d e r a r a r e g r a de Thomas s e r i a : fie. T S ( T i ) < R _ t i m e s t a m p ( 0 ) ou T S ( T i ) < W_timestamp(0) enMQ REPITA T i fieMi} i n i c l Q WRITE(O); W_timestamp(0) := TS(T±) £lm limae.

(39)

deve-se c o n s i d e r a r as duas v a r i a v e i s R _ t i m e s t a m p ( 0 ) e W _ t i m e s t a m p ( 0 ) , p o s t o que uma operacSo de gravacao c o n f l i t a t a n t o com uma operacao de l e i t u r a , c o n f l i t o r e a d - w r i t e , q u a n t o de g r a v a c a o , c o n f l i t o w r i t e - w r i t e .

S a l i e n t a m o s tambem que quando uma t r a n s a c a o e r e p e t i d a , recebe um novo t i m e s t a m p quando do seu r e i n i c i o , o que a t o r n a i m p r o v a v e l de s e r r e p e t i d a i n d e f i n i d a m e n t e .

Exemplo 2.11 : Suponhamos as s e g u i n t e s t r a n s a c o e s : T i = R i ( x ) ; R i ( y ) ; W i ( x ) ; C i

T2 = R s ( y ) ; R2( x ) ; W2( y ) ; W2( x ) ; C2

e n t a o dado que T S ( T i ) < T S ( T2) , podemos t e r o s e g u i n t e escalonamento S :

S = R i ( x ) ; R i ( y ) ; R2( y ) ; R2( x ) ; W2( y ) ; W2( x ) ; Wi(x)\ C i ; Cz

onde a u l t i m a operacSo Wi(x) e i g n o r a d a . Porem o s e g u i n t e escalonamento S' nao e p o s s i v e l : S' = R i ( x ) ; R i ( y ) ; R2( y ) ; R2( x ) ; W i ( x ) ; W2( y ) ; W2( x ) ; C i ; Cz, p o i s n e s t e caso a operacao W i ( x ) s e r i a r e j e i t a d a e T i s e r i a r e p e t i d a v i s t o que T S ( T i ) < R _ t i m e s t a m p ( x ) = T S ( T z ) . S

Um problema p r o v e n i e n t e do metodo de ordenacao p o r Timestamp d e s c r i t o acima e que e l e e s u s c e p t i v e l a a b o r t o s em c a s c a t a conforme exemplo a s e g u i r .

(40)

Exemplo 2.12 : S e j a o s e g u i n t e s c h e d u l e S, com T S ( T z ) > T S ( T i ) :

S = R i ( x ) ; W i ( x ) ; R z ( x ) ; Cz

Como vemos, a t r a n s a c a o Tz 1§ um v a l o r e s c r i t o p o r T i sendo que a t r a n s a c a o Tz e c o n f i r m a d a , porem a t r a n s a c S o T i n&o o e. I s t o pode c a u s a r uma s i t u a c a o i r r e c u p e r a v e l caso a t r a n s a c a o T i venha a a b o r t a r .

n

A s o l u g a o p a r a e s t e p r o b l e m a 6 a OrdenacSo por Timestamp E s t r i t a , que c o n s i s t e em p e r m i t i r l e i t u r a s de o b j e t o s g r a v a d o s p o r o u t r a s t r a n s a c o e s apenas se e s t a s u l t i m a s f o r e m c o n f i r m a d a s . Desse modo, se uma t r a n s a c a o quer l e r um v a l o r que f o i e s c r i t o p o r o u t r a t r a n s a c a o , a p r i m e i r a deve e s p e r a r que a segunda t e r m i n e a t r a v e s de uma c o n f i r m a c a o ou de um a b o r t o .

Exemplo 2.13 : Seguindo o exemplo 2.12 d e v e r i a m o s t e r o s e g u i n t e Schedule :

S = R i ( x ) ; W i ( x ) ; C i ; R z ( x ) ; Cz ffi

V a l e s a l i e n t a r tambem que, se a t r a n s a c a o Tz do exemplo 2.12 ao i n v e s de e x e c u t a r uma operacao de R z ( x ) , e x e c u t a s s e um W z ( x ) , t o r n a r - s e - i a uma s i t u a c a o de complexa r e c u p e r a c & o , p o i s , caso a t r a n s a c a o T i a b o r t a s s e , d e v e r - s e - i a i g n o r a r a r e c u p e r a c & o p a r a T i uma vez que o o b j e t o x j a t e r i a s i d o , d e p o i s , a t u a l i z a d o p o r Tz.

(41)

d i f l c i l p a r a o mecanismo de recuperacSo saber q u a l o v a l o r que o o b j e t o x t i n h a a n t e s de s e r m o d i f i c a d o p e l a p r i m e i r a t r a n s a c a o . E s t a s i t u a c a o nao causa a b o r t o em c a s c a t a , porem r e q u e r um mecanismo de r e c u p e r a c a o b a s t a n t e complexo. Por i s s o , a l g u n s a u t o r e s requerem ordenacao p o r t i m e s t e m p e s t r i t a p a r a p r e c e d e n c i e s w r i t e - w r i t e . I s t o quer d i z e r que, uma g r a v a c a o de um o b j e t o que f o i gravado p o r o u t r a t r a n s a c a o so s e r a p e r m i t i d o , se e s t a u l t i m a f o r c o n f i r m a d a ou a b o r t a d a .

2-7 Uma T e c n i c a O t i m i s t a

Vimos que os p r o t o c o l o s mencionados a n t e r i o r m e n t e q u a i s sejam, B l o q u e i o em Duas Fases e Ordenacao p o r Timestamp, impSem um c e r t o "overhead" p a r a e s c a l o n a r as t r a n s a c o e s , o que c e r t a m e n t e l e v a a um a t r a s o m a i o r n e s t e escalonamento. 0 P r o t o c o l o de B l o q u e i o em Duas Fases f a z com que as t r a n s a c S e s f i q u e m esperando p e l a l i b e r a c a o dos o b j e t o s , enquanto que o p r o t o c o l o de Ordenacao p o r Timestamp f a z a r e j e i c a o de t r a n s a c S e s em c o n f l i t o que nao podem s e r e s c a l o n a d a s .

E s t a secao aborda uma nova t e c n i c a c o n h e c i d a p o r T e c n i c a O t i m i s t a [Kung 8 1 ] , que p a r t e da h i p 6 t e s e de que o c o n j u n t o de t r a n s a c S e s e formado em sua m a i o r i a p o r t r a n s a c S e s de c o n s u l t a , i s t o e, a q u e l a s que apenas leem os o b j e t o s do Banco de Dados, t o r n a n d o a t a x a de c o n f l i t o s m u i t o b a i x a .

Este novo metodo t e n t a d i m i n u i r o "overhead" causado p e l o s o u t r o s p r o t o c o l o s , a t r a v e s da execucao de t o d a s as

(42)

t r a n s a c o e s a t e o f i m , sendo que as p o s s i v e i s a t u a l i z a c o e s d e s t a s t r a n s a c o e s sao f e i t a s em v a r i a v e i s l o c a l e a t r a n s a c a o . A a t u a l i z acao do Banco de Dados se f a z quando a t r a n s a c a o passa p e l a f a s e de v a l i d a c a o : i s t o s i g n i f i c a d i z e r que, ap6s a v a l i d a c a o , as v a r i a v e i s l o c a i s sSo c o p i a d a s p a r a os r e s p e c t i v o s o b j e t o s do Banco de Dados.

Neste metodo o t i m i s t a , uma t r a n s a c a o c o n s i s t e de t r e s f a s e s [Kung 8 1 ] :

1. F a s e de L e i t u r a => e a f a s e em que a t r a n s a c a o e e x e c u t a d a p o r i n t e i r o , f a z e n d o as a t u a l i z a c o e s em c 6 p i a s l o c a i s , conforme mencionamos a n t e r i o r m e n t e . P o r t a n t o , nao ha a t u a l i z a c a o no Banco de Dados d u r a n t e e s t a f a s e .

2. F a s e de Validac&o => e a f a s e em que se v e r i f i c a se as c 6 p i a s l o c a i s podem s e r c o p i a d a s p a r a o Banco de Dados sem que h a j a p e r d a de c o n s i s t e n c i a . Caso a t r a n s a c a o s e j a v a l i d a d a ent&o e e x e c u t a d a a f a s e de g r a v a c a o d e s c r i t a a s e g u i r , caso c o n t r a r i o , a t r a n s a c & o e r e p e t i d a .

3. F a s e de Gravacao => Uma vez v a l i d a d a uma t r a n s a c S o d u r a n t e a f a s e de v a l i d a c a o , e n t a o as a t u a l i z a c o e s das c 6 p i a s l o c a i s no Banco de Dados s&o r e a l i z a d a s .

Detalhamos, a s e g u i r , a f a s e de v a l i d a c a o uma v e z que as o u t r a s duas f a s e s s&o p o r s i so a u t o - e x p l i c a t i v a s .

Cada t r a n s a c & o r e c e b e um t i m e s t a m p u n i c o quando a v a l i d a c a o o c o r r e , denotado p o r T S ( T i ) . U t i l i z a m o s um c o n t a d o r

(43)

g l o b a l , denotado p o r c t ( c o n t a d o r de t r a n s a c a o ) , p a r a a t r i b u i r m o s os t i m e s t a m p s , sendo que a cada a t r i b u i c S o de um v a l o r , e s t e c o n t a d o r e i n c r e m e n t a d o de uma u n i d a d e .

D u r a n t e a f a s e de l e i t u r a devemos g u a r d a r os c o n j u n t o s de i t e n s l i d o s e g r a v a d o s p e l a t r a n s a c a o que estamos v a l i d a n d o . Assim, cada t r a n s a c a o p o s s u i um ConjRead, que e um c o n j u n t o que

i n d i c a t o d o s os o b j e t o s que f o r a m l i d o s , e um C o n j W r i t e , que i n d i c a os o b j e t o s g r a v a d o s p e l a t r a n s a c S o .

Alem d i s s o , devemos g u a r d a r o v a l o r do c t quando a t r a n s a c a o i n i c i a sua f a s e de l e i t u r a , denotado p o r I n i c i o ( T j ) , como tambem o v a l o r do c t quando a t r a n s a c a o t e r m i n a sua f a s e de l e i t u r a , denotado p o r F i m ( T j ) .

A f i g u r e a b a i x o m o s t r a - n o s como s e r i a a e s t r u t u r a de uma t r a n s a c a o .

Fase de L e i t u r a Fase de V a l i d a c a o Fase de GravacSo

i i t ; i 1 1 1 I n i c i o ( T j ) F i m ( T j ) T S ( T j ) A c o r r e c S o d e s t e metodo b a s e i a - s e no f a t o de que o Schedule p r o d u z i d o d u r a n t e a f a s e de v a l i d a c a o deve s e r e q u i v a l e n t e a um Schedule s e r i a l ordenado p e l o s t i m e s t a m p s T S ( T i ) . A v a l i d a c a o de uma t r a n s a c S o T j e f e i t a com r e l a c & o a t o d a s as o u t r a s t r a n s a c o e s T± j a v a l i d a d a s , i s t o e, T S ( T i ) < T S ( T j ) . Assim, o metodo p r o i b e a formacao de p r e c e d e n c i e s no s e n t i d o T j -> T i , so a d m i t i n d o - a s no s e n t i d o i n v e r s e I s t o g a r a n t e a a u s e n c i a de c i c l o s e n t r e t r a n s a c o e s c o n f i r m a d a s .

(44)

Para i s s o , uma das s e g u i n t e s c o n d i c S e s [Kung 8 1 ] deve ser o b e d e c i d a p a r a v a l i d a c a o de uma t r a n s a c a o T j com r e l a c a o a t o d a t r a n s a c a o T± t a l que, TS(T±) < T S ( T j ) :

C I . T± c o m p l e t a sua f a s e de g r a v a c a o a n t e s de T j

comecar sua f a s e de l e i t u r a , ou s e j a , as t r a n s a c S e s sao e x e c u t a d a s s e r i a l m e n t e . Em o u t r a s p a l a v r a s , T S ( T i ) < I n l c i o ( T j ) . Na f i g u r e a s e g u i r , expomos a ocorr£ncia da c o n d i c a o C I . Condicao C I : T S ( T i ) < I n i c i o ( T j ) i i i i i i i i i i i i i i i i T i T j C2. 0 c o n j u n t o de i t e n s g r a v a d o s p o r T i n&o i n t e r s e c c i o n a o c o n j u n t o de dados l i d o s p o r T j e T i c o m p l e t a sua f a s e de g r a v a c a o a n t e s de T j comecar sua f a s e de g r a v a c a o , ou s e j a , I n i c i o ( T j ) < T S ( T i ) < F i m ( T j ) e o ConjWrite(T±) D C o n j R e a d ( T j ) = 0. A f i g u r a a b a i x o m o s t r a a o c o r r e n c i a da c o n d i c a o C2. Condicao C2 : I n i c i o ( T j ) < TS(T±) < F i m ( T j ) e C o n j W r i t e de T i n ConjRead T j = 0 T i i i i • i i i i A condiQ&o C2 e p a r a p r e v e n i r p r e c e d e n c i e s da f o r m a R j

(45)

-> Wi. As f a s e s de g r a v a c a o sao e x e c u t a d a s s e r i a l m e n t e , i s t o e, e x e c u t a d a s em e x c l u s a o mutua. I s t o tambem p r e v i n e a o c o r r e n c i a de p r e c e d e n c i e s da f o r m a Wj -> Wi. C3. 0 c o n j u n t o de i t e n s g r a v a d o s p o r T i nSo i n t e r s e c c i o n a o c o n j u n t o de dados l i d o s ou g r a v a d o s p o r T j , e T i c o m p l e t a sua f a s e de l e i t u r a a n t e s de T j c o m p l e t e r sua f a s e de l e i t u r a . Ou s e j a , F i m ( T i ) < F i m ( T j ) e C o n j W r i t e ( T i ) n ( C o n j W r i t e ( T j ) U C o n j R e a d ( T j ) ) = p. A f i g u r e a s e g u i r m o s t r a a c o n d i c a o C3. Condicfio C3 : F i m ( T i ) < F i m ( T j ) e C o n j W r i t e de T i fl ( C o n j W r i t e de T j U ConjRead de T j ) = 0. T i A c o n d i c a o C3 p r e v i n e p r e c e d e n c i e s da f o r m a Rj -> W± e Wj -> Wi, p e r m i t i n d o que h a j a p a r a l e l i s m o e n t r e as f a s e s de g r a v a c a o . Exemplo 2.14 S e j a o s e g u i n t e s c h e d u l e S com as t r a n s a c o e s T i e Tz, onde T S ( T i ) < TS(Tz) : S = R i ( x ) ; R z ( x ) ; p W2( x ) ; R2( y ) ; p W2( y ) ; R i ( y ) ; C i ; C2 onde pW(x) s i g n i f i c a um p r e - w r i t e na c o p i a l o c a l do o b j e t o x. Entfio a f a s e de v a l i d a c & o tern sucesso e o s c h e d u l e S 6

Referências

Documentos relacionados

2 What the wxXmlSerializer is Generally, the wxXS is a cross-platform software library written in C++ programming language based on wxWidgets [1] which offers a functionality needed

com seus parâmetros que são: o objeto dbocell que a transação está manipulando e o objeto do banco de dados dbo. Essas funções estão definidas no nó de declarações.. Como

Programmability is the “visible” skill to be acquired in an introductory unit in computer science. However, using a programming language is no more than a method for the programmer

This IDE is meant to support cross developments for embedded systems in C, the most used programming language in the embedded systems industry [1, p.18], to support dif- ferent

" Key ideas: " Heterogeneous execution model " CPU is the host, GPU is the device " Develop a C-like programming language for GPU " Unify all forms of GPU parallelism as

CafeOBJ is a succesor of the famous algebraic specification and programming language OBJ but adding several new primitive paradigms to the traditional OBJ language, such as

For this purpose, a model was defined using the design pattern called Interpreter [19] and the Java programming language for the implementation of the programming concepts..

View of the system during operation Computer Software The software to decide size and color of inspected apples was created with MS Visual C# programming language in the light of