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
Post on 25-Jul-2020
3 Views
Preview:
Transcript
n Transações Distribuídas
Profa Ana Cristina B. Kochem Vendramin DAINF / UTFPR
Sistemas Distribuídos
13 Transações Distribuídas
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
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
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
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
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
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
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
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
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]
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]
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
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
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]
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
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.
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
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
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
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
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
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
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
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
top related