sistemas(distribuídos(...

24
Transações Distribuídas Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Sistemas Distribuídos 13 Transações Distribuídas

Upload: others

Post on 25-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

n  Transações Distribuídas

Profa Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Sistemas  Distribuídos    

13  Transações  Distribuídas  

Page 2: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

2 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Uma  transação  define  uma  sequência  de  operações.  � Objetivo:  permitir  integridade  e  consistência  dos  dados.  � Uma   transação   é   vista   como   um   programa   sequencial,  mesmo   que   possa   executar   concorrentemente   com  outros  processos.  

2

Introdução  

Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Page 3: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

3 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Uma  transação  é  dita  distribuída  quando  ativa  operações  em  diferentes  servidores.    � Um  servidor  assume  o  papel  de  coordenador;  � Outros  servidores  são  chamados  participantes;  � Um   protocolo   permitirá   que   os   servidores   se  comuniquem   para   decidirem   em   conjunto   se   uma  transação  pode  ser  efetivada  ou  se  precisa  ser  cancelada.  

� Uma  transação  distribuída  pode  ser  plana  ou  aninhada.  

3

Introdução  

Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Page 4: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

4 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

�  Atômica  �  “Tudo  ou  nada”  

�  Consistente  � O   estado   do   sistema   após   uma   transação   ser   completada  deve  manter-­‐se  consistente.  

�  Isolada  � Uma   transação   deve   poder   executar   sem   interferência   de  outras.  

� Durável  �  Dados   alterados   durante   uma   transação   devem   ser  guardados  em  meio  de  armazenamento  persistente.  

4

Propriedades  ACID  

Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Page 5: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

5 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� A  transação  é  vista  como  uma  ação  única.  � Determina  que  todas  as  operações  de  uma  transação  sejam  concluídas  com  êxito  ou,...  

�  ...  se  ela  falhar  ou  for  cancelada,  nenhum  resultado  obtido  dentro  da   transação  até  o   instante  da  ocorrência  da   falha  será  efetivado.  

Atomicidade  

Page 6: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

6 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Garante   a   consistência   dos   dados   após   a   transação   ser  confirmada  ou  abortada.  

� A   preservação   da   consistência   significa   que   se   uma  transação   iniciar   em   um   estado   do   sistema   consistente,  quando  ela  terminar,  o  estado  continuará  consistente.    

Consistência  

Page 7: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

7 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Controla  a  execução  concorrente.    � Cada   transação   deve   ser   executada   sem   interferência   de  outras  transações  � Resultados   intermediários   não   devem   ser   visíveis   por  outras  transações.  

Isolamento  

Page 8: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

8 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� O  efeito  de  uma  transação  que  termina  com  sucesso,  deve  ser  persistente.    

� Todos   os   dados   e   transações   pendentes   devem   ser  armazenados   em   meio   de   armazenamento   estável  (permanente)  de  modo  que  possa  ser  recuperado  quando  o  servidor  for  reiniciado.  

Durabilidade  

Page 9: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

9 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Estados  de  uma  Transação  

A"va  

Efe"vação  Provisória  

Falha   Abortada  

Efe"vada  Aguarda  conclusão  após  a  úlCma  operação  

Em  execução    

Termina  corretamente  

Page 10: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

10 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Todo   o   trabalho   é   feito   no  mesmo   nível   entre   o   início   e   o  término  de  uma  transação.  

� A   transação   acessa   os   objetos  dos  servidores  em  sequência.  

� Não   é   possível   efetivar   ou  cancelar  partes  dela.  

10 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

cliente

servidores Transações  Planas  

[CDK 07]

Page 11: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

11 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� A   transação   de   nível  superior   pode   abrir  s ub t r an s a ç õ e s   e  assim  por  diante.  

�  Subtransações   no  mesmo   nível   podem  ser   executadas   de  modo  concorrente.  

11

Transações  Aninhadas  

Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

[CDK 07]

Page 12: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

12 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

�  Subtransações   podem   ser   efetivadas   ou   canceladas  independentemente.  � Nas  transações  planas,  uma  falha  causaria  o  reinício  da  transação  inteira.  

� Uma  transação  só  pode  ser  efetivada  ou  cancelada  depois  que   suas   descendentes   tiverem   sido   concluídas   com  sucesso  ou  não.  

12

Transações  Aninhadas  

Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Page 13: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

13 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Quando  uma   transação   ascendente   é   cancelada,   todas   as  suas   subtransações   são   canceladas   mesmo   que   tenham  sido  efetivadas  provisoriamente.  

� Por   exemplo,   se   T2   é   cancelada,   então   T21   e   T211   também  devem   ser   canceladas,   mesmo   que   possam   ter   sido  efetivadas  provisoriamente.  

� Quando   uma   subtransação   é   cancelada,   a   transação  ascendente  pode  decidir  se  vai  ser  cancelada  ou  não.    � No   exemplo,   T   decide   ser   efetivada,   embora   T2   tenha  sido  cancelada.  

13

Transações  Aninhadas  

Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Page 14: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

14 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

 Transações  Aninhadas  

T: Transação de nível superior

T1 = abreSubTransação

abreSubTransação T1

abreSubTransação efetiv. provis. efetiv. provis.

T11

efetiv. provis. efetiv. provis.

T12

abreSubTransação abortar

abreSubTransação efetiv. provis.

T21

T2 efetivar

efetiv. provis.

T211

T2 = abreSubTransação

[CDK 07]

Page 15: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

15 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Quando  a  transação  de  nível  superior  é  efetivada,  todas  as  subtransações   que   foram   efetivadas   provisoriamente  também   serão   efetivadas,   desde   que   nenhuma   de   suas  ascendentes  tenha  sido  cancelada.  

� No  exemplo,  a  efetivação  de  T  permite  que  T1,  T11,  T12  sejam  efetivadas.  

� Mas   T21   e   T211,   não   podem   ser   efetivadas   pois   sua  ascendente  T2  foi  cancelada.  

� Nota:   os   efeitos   de   uma   subtransação   não   são  permanentes   até   que   a   transação   de   nível   superior   seja  efetivada.  

15

Transações  Aninhadas  

Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Page 16: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

16 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Protocolo  de  EfeCvação  de  Duas  Fases  

� Garante   que   todos   os   participantes   e   o   coordenador   de  uma  transação  distribuída  possam  confirmar  ou  abortar  a  transação.  

� Coordenador   registra   uma   lista   de   referências   dos  participantes   e   cada   participante   tem  uma   referência   do  coordenador.  

� Ao  abrir  uma  transação  o  coordenador  retorna  ao  cliente  o  identificador  da  transação  (TID).  � TID  devem  ser  exclusivos  dentro  de  um  SD.  

Page 17: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

17 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Primeira  fase:  Fase  de  Votação  �  Coordenador  abre  a  votação;  �  Coordenador  pergunta  para  cada  participante  se  a  transação  pode  ser  efetivada;  

�  Cada  participante  responde  com  seu  voto  à  sim  ou  não.    �  Antes   de   votar   “sim”,   o   participante   se   prepara   para  efetivar,  salvando  em  meio  de  armazenamento  permanente  todos  os  objetos  alterados  e  seu  status  “preparado”.  

�  Se  votar  “não”,  o  participante  cancelará  imediatamente.  � Travas  mantidas  são  liberadas.  

Protocolo  de  EfeCvação  de  Duas  Fases  

Page 18: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

18 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

�  Segunda  fase:  Fase  de  Decisão  �  Reune  os  votos  dos  participantes  (incluindo  o  seu  próprio);  �  Se   todos   os   participantes   aceitam:   transação   pode   ser  efetivada;  

�  Se   um   deles   votar   pelo   cancelamento,   a   transação   srá  abortada.  

�  Coordenador  comunica  a  decisão  a  todos  os  participantes.  

Protocolo  de  EfeCvação  de  Duas  Fases  

Page 19: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

19 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

�  Interface  dos  Participantes  � desejaEfetivar(trans) à sim/não �  efetivar(trans); �  abortar(trans).  

�  Interface  do  Coordenador  � efetivacaoOk(trans,  participante)‏;  � obterDecisão(trans)  � Após   ter   votado   “sim”,   mas   ainda   não   ter   recebido   uma  resposta  (efetivar/abortar),  o  participante  solicita  a  decisão  ao  coordenador.  

Protocolo  de  EfeCvação  de  Duas  Fases  

Page 20: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

20 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

Protocolo  de  EfeCvação  de  Duas  Fases  Coordenador   Participantes  

desejaEfetivar(trans)  

sim/não  

efetivar(trans)/abortar(trans)  

efetivacaoOk  

Fase  Votação

 Fa

se  D

ecisão

 

Page 21: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

21 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Outras  operações  do  Coordenador:  � abreTransação();  

�  Retorna ao cliente um TID trans globalmente exclusivo.  � abreSubTransação(trans) ;‏  

�  Abre  uma  nova  subtransação  cuja  ascendente  é  trans  e  retorna  um  TID  exclusivo.  

�  unir(trans, referencia_participante);  � obtemStatus(trans) ;‏  

�  Status:  efetivada,  cancelada  ou  provisória/preparada.  �  terminaTransação(trans) ;‏  � abortaTransação(trans)‏.  

Protocolo  de  EfeCvação  de  Duas  Fases  

Page 22: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

22 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Transações  Aninhadas  � Fase  1    

� Transações  reportam  seus  status.  �  Subtransações   informam   seus   status   e   de   seus  descendentes.  

� Fase  2    � Funciona   da   mesma   maneira   que   o   protocolo   para  transações  planas.  

Protocolo  de  EfeCvação  de  Duas  Fases  

Page 23: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

23 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Coordenadores  se  comunicam  em  vários  níveis.  � Coordenador   ascendente   envia   um   desejaEfetivar(trans,

subTrans) para   a   subtransação   imediata   e   assim   por  diante.  � Trans  à  ID  da  transação  superior.  

� Cada   participante   reúne   as   respostas   de   seus  descendentes  antes  de  passá-­‐las  para  seu  ascendente.  

Protocolo  de  EfeCvação  em  Transações  Aninhadas  

Page 24: Sistemas(Distribuídos( 13(Transações(Distribuídas(dainf.ct.utfpr.edu.br/~maurofonseca/lib/exe/fetch... · Transações Distribuídas Profa Ana Cristina B. Kochem Vendramin DAINF

24 Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR

� Coulouris,   George;   Dollimore,   Jean;   Kindberg,   Tim.  Distributed   Systems  Concepts   and  Design.   Third   Edition.  Addison-­‐Wesley  2001.  

� Coulouris,   George;   Dollimore,   Jean;   Kindberg,   Tim;  tradução   João  Tortello.  Sistemas  Distribuídos:   conceitos  e  projeto.  4.  ed.  Bookman  2007.  

� Tanenbaum,  A.S.  Distributed  Operating  Systems.  Prentice-­‐Hall  International,  1995.  

24

Referências  Bibliográficas  

Profa. Ana Cristina B. Kochem Vendramin. DAINF/UTFPR