Transações e Controle de
Concorrência
Redundância de
Arquivos e Tolerância a
Falhas
Prof. Dr. Norian Marranghello
Grupo 15
Cláudia Macedo Amorim
Tamer Albuquerque Pereira
Transações e Controle de
Concorrência
•Revisão de Conceitos
•Transações Atômicas
•Transações Distribuídas
•Propriedades das Transações
•Protocolos de Efetivação
• Serviços de Transações
•Serviços de Transações usando Transações Distribuídas
Transações e Controle de
Concorrência
• Serialização
•Controle de Concorrência
• Controle de Concorrência para transações que possuem
operações endereçadas em um único servidor
•Controle de Concorrência para transações distribuídas
Revisão de Conceitos:
• Transação atômica: ou é completamente realizada ou nenhuma de
suas operações é efetivada.
• Transação Distribuída: transação atômica que requer operações
em diversos servidores
= objeto
= transação T
Servidor X
Servidor Y
Cliente
Servidor Z
Revisão de Conceitos:
• Propriedades das Transações:
- Atomicidade;
- Consistência;
- Isolamento;
- Durabilidade.
• Protocolos de Efetivação
Two -Phase Commit Protocol
Serviços de Transação
• Definição: são serviços que disciplinam as transações provendo o
two-phase commit entre os objetos
Transações que possuem operações endereçadas em um único
servidor;
Transações Distribuídas
Serviços de Transação
Transações em um único servidor
• Coordenador :
•gerencia e cria cada transação
•Dá a cada transação um identificador (TID)
Figure 12.2 Transactional service operations.
OpenTransaction Trans;
starts a new transaction and delivers a
unique TID Trans. This identifier will be used
in the other operations in the transaction.
CloseTransaction(Trans) (Commit,
Abort)
ends a transaction: a Commit returned value
indicates that the transaction has committed;
an Abort returned value indicates that it has
aborted.
AbortTransaction(Trans)
Serviços de Transação
Transações Distribuídas
• Identificadores de transações para transações distribuídas devem
ser únicos dentro de um sistema distribuído.
• O coordenador que abriu a transação se torna o coordenador para a
transação distribuída e, até o final é responsável por efetiva-la ou
aborta-la
• . Cada um dos servidores que administram um objeto acessado pela
transação é chamado de participante
• Cada participante é responsável pela manutenção da rota de todos
os objetos recuperáveis no servidor envolvido na transação
•Os participantes são responsáveis pela cooperação com o
coordenador em prover o protocolo de efetivação.
•Durante o progresso da transação, o coordenador armazena uma
lista de referências dos participantes e os participantes armazenam
uma referência do coordenador.
Serviços de Transação
Transações Distribuídas
• O serviço de transações irá armazenar mais um método, o
método join, que é usado quando um novo participante se unir à
transação:
join (Trans, reference to participant)
•O coordenador armazena o novo participante à sua lista de
participantes. O fato do coordenador conhecer todos os participantes
e cada participante conhecer o coordenador torna-os capazes para
coletar as informações que serão necessárias na hora da efetivação.
• Obs:é possível para um participante chamar o método
abortTransaction no coordenador se por alguma razão ele não for
capaz de continuar com a transação.
Serviços de Transação
Transações Distribuídas
Exemplo:
coordenador
Participante X
join
A
openTransaction
closeTransaction
join
Participante Y
T
join
T = OpenTransaction
a.withdraw(4);
c.deposit(4);
b.withdraw(3);
d.deposit(3);
closeTransaction
cliente b.whithdraw(T,3)
B
Participante Z
C
D
Serialização
• A serialização assegura que se duas ou mais transações estiverem
rodando ao mesmo tempo, para cada uma delas e para os outros
processos , o resultado aparece como se todas elas rodassem
seqüencialmente em alguma ordem pré-definida dependente do
sistema.
Serialização
BEGIN_TRA NSA CTION
BEGIN_TRA NSA CTION
BEGIN_TRA NSA CTION
X = 0;
X = 0;
X = 0;
X = X+1;
X = X+2;
X = X+3;
END_TRANSACTION
END_TRA NSA CTION
END_TRANSACTION
(a)
(b)
(c)
Tempo 
Escalonamento 1 X = 0;
X = X+1;
X = 0;
X = X+2;
X = 0;
X = X+3; Legal
Escalonamento 2 X = 0;
X = 0;
X = X+1;
X = X+2;
X = 0;
X = X+3; Legal
Escalonamento 3 X = 0;
X = 0;
X = X+1;
X = 0; ;
X = X+2;
X = X+3; Ilegal
Controle de Concorrência
Transações em um único servidor
• Protocolos de Bloqueio
• Protocolo de Concorrência Otimista
• Protocolo de Timestamp
Controle de Concorrência
Transações em um único servidor
•Protocolos de Bloqueio
• bloqueio exclusivo - o servidor tenta bloquear qualquer objeto
que esteja prestes a ser usado por alguma operação da transação
do cliente. Se um cliente requisita acesso a um objeto que já
esteja bloqueado devido a outra transação de cliente , a
requisição é suspensa e o cliente deve esperar até que o objeto
seja desbloqueado.
bloqueio em duas fases
Primeira fase
Segunda fase
• alguns leitores / único escritor - várias transações
concorrentes lendo um objeto, ou uma única transação
escrevendo um objeto, mas não ambas . Dois tipos de bloqueio
são usados: bloqueio de leitura e bloqueio de escrita.
Controle de Concorrência
Transações em um único servidor
•
Protocolo de Concorrência Otimista
probabilidade de duas transações de clientes acessarem o
mesmo objeto  pequena
Controle de Concorrência
Transações em um único servidor
Protocolo de Timestamp
Rule Tc
1. write
Ti
read
2.
write
write
Tc must not write an object that has been written by any Ti where Ti >Tc
this requires that Tc > write timestamp of the committed object.
3.
read
write
Tc must not read an object that has been written by any Ti whereTi >Tc
this requires that Tc > write timestamp of the committed object.
Tc must not write an object that has been read by any Ti where Ti >Tc
this requires that Tc ≥ the maximum read timestamp of the object.
Controle de Concorrência
Transações em um único servidor
Protocolo de Timestamp
(a) T3
Before
T2
After
T2
(b) T3 write
write
Before
T1
Key:
T2
Ti
Committed
T3
After
T1
T2
T3
Ti
Time
Time
Tentative
(c)
T3 write
(d) T3 write
Before
T1
T4
After
T1
T3
T4
Time
Before
T4
After
T4
Transaction
aborts
Time
object produced
by transaction Ti
(with write timestamp Ti
T1<T2<T3<T4
Controle de Concorrência
Transações em um único servidor
Protocolo de Timestamp
(b) T3 read
(a) T3 read
T2
read
proceeds
Selected
T2
Time
T2
read
proceeds
Selected
Ti
Time
read waits
Selected
T4
Time
Committed
Ti
(d) T3 read
(c) T3 read
T1
T4
Key:
Tentative
Transaction
aborts
Time
object produced
by transaction Ti
(with write timestamp Ti)
T1 < T2 < T3 < T4
Controle de Concorrência
Transações Distribuídas
Cada servidor gerencia um conjunto de objetos e é responsável por
garantir que estes objetos permanecerão consistentes quando
acessados por transações concorrentes. Portanto, cada servidor é
responsável por aplicar controle de concorrência em seus próprios
objetos
• Protocolo de Bloqueio
•bloqueios em um objeto são mantidos localmente (no mesmo
servidor)
•o gerenciador não pode liberar bloqueios até saber que a
transação tenha sido efetivada ou abortada em todos os
servidores envolvidos nesta transação
Protocolo de Bloqueio - Transações Distribuídas
T
Write(A)
Read(B)
em X
U
locks A
Write(B)
em Y
locks B
Read(A)
em X espera T
em Y espera U
Protocolo Otimista
Transações Distribuídas
• Uma transação distribuída é validada por uma coleção de servidores
independentes, cada um dos quais valida transações que acessam
seus próprios objetos.
Protocolo Timestamps
Trasações Distribuídas
• é necessário que cada coordenador emita globalmente timestamps
únicos
• Um timestamp globalmente único de uma transação é emitido para o
cliente pelo primeiro coordenador acessado por uma transação
• . O timestamp de transação é passado ao coordenador através de
cada servidor que possui objetos que efetuam uma operação na
transação.
• os coordenadores devem concordar em como ordenar seus
timestamps.
Replicação de Arquivos e
Tolerância a Falhas
• Replicação
• Algoritmos de controle de réplicas
• Propagação de atualizações
• Algoritmo de votação por quorum
• Motivação para aplicação de Tolerância a falhas
• Validação de técnicas de tolerância a falhas
Replicação
• Motivos para o uso da replicação:
• Aumento da confiabilidade
• A queda de um servidor não pode derrubar um sistema
• A carga de trabalho é divida por vários servidores
Replicação(2)
• Confiabilidade-> Obtida através de backups
• Disponibilidade:
• Lema: “o espetáculo deve continuar”
• Dois problemas devem ser tratados: Falhas no servidor e
particionamento de redes e operação desconectada
Replicação(3)
• Alta confiabilidade e disponibilidade são requisitos essenciais para
sistemas críticos;
Exemplos de sistemas críticos:
- Centrais nucleares
- Controle de tráfego aéreo
- Bolsas de valores
Replicação(4)
• Desempenho: o fato de ter todos os arquivos em um único servidor
vai-se transformar seguramente em um gargalo para o desempenho;
• Consistência: operações com um grupo de objetos produzem
resultados que condizem com a especificação para esses objetos.
• Transparência: Clientes não devem estar cientes que existem
múltiplas cópias físicas de dados.
Algoritmo de Controle de
Réplicas
• Algoritmos baseados em cópias primárias
• Algoritmos baseados em cópias ativas
• Algoritmos baseado em gossip
Algoritmos baseados em
cópias primárias(1)
• Modelos que existem apenas um gerenciador de réplicas primário
• Podem ter um ou mais gerenciadores de réplicas secundários
• Caso o primário falha outro é provido a primário
Algoritmos baseados em
cópias primárias(2)
- Pedido;
- Coordenação
- Execução
- Acordo
- Resposta
Primary
C
FE
RM
RM
Backup
C
FE
RM
Backup
Algoritmos baseados em
cópias primárias(3)
• Este modelo pode ser usado onde o gerenciador de réplicas primário
se comporta em um meio não determinístico;
• Desvantagens:
Fornece enorme overheads
Fraca consistência
• Vantagens:
Alta disponibilidade
Bom desempenho
Algoritmos baseados em
cópias ativas(1)
• Gerenciadores de réplicas são máquinas de estados e são
organizados em grupos;
• Gerenciadores processam pedidos independentemente e
identicamente;
• Se houver crash em um gerenciador há impacto no desempenho;
Algoritmos baseados
cópias ativas(2)
- Pedido;
- Coordenação
- Execução
- Acordo
- Resposta
RM
C
FE
RM
RM
FE
C
Algoritmos baseados
cópias ativas(2)
• Vantagem: Garante consistência
• Desvantagem: Não garante linearlização.
Propagação de atualizações
por gossip(1)
• A arquitetura gossip provê dois tipos básicos de operações:
• Queries que são operações apenas de leitura
• Updates que modificam mas não lêem os dados
Propagação de atualizações
por gossip(2)
Service
- Pedido;
RM
- Resposta ao update
- Coordenação
RM
gossip
RM
- Execução
- Resposta à query
- Acordo
Query,
prev
Val,new Update,
prev
FE
Update id
FE
Query Val
Update
Clients
Propagação de atualizações
por gossip(3)
• O tempo de demora para que todos os gerenciadores de réplicas
receba uma dada atualização depende de 3 fatores:
• A freqüência e duração das partições de rede
• A freqüência com o qual os servidores de réplicas enviam
mensagens gossip
• A política de escolha de um parceiro com o qual serão
trocadas as mensagens gossip
Algoritmo de votação por
Quorum(1)
• É um esquema de replicação de arquivos onde o número de votos é
atribuído a cada cópia física de um único arquivo em um gerenciador
de réplicas;
• Cada voto pode ser considerado como um peso a mais no desejo do
uso de uma cópia particular;
• Cada operação de leitura deve obter primeiro uma leitura do quorum
de R votos antes de poder efetuar a leitura, o mesmo ocorre com a
escrita;
Algoritmo de votação por
Quorum(2)
• O algoritmo de votação de quorum garante a consistência de
arquivos;
• Garante também que quaisquer pares, consistindo de quorum de
leitura e escrita ou dois quora de escrita, devem conter cópias
comuns;
• Portanto, não é possível realizar operações conflitantes na mesma
cópia mas em partições diferentes;
Motivação para aplicação
de tolerância a falhas(1)
• Garante alta confiabilidade e disponibilidade;
• Necessária em aplicações com restrições de tempo;
• Necessária em sistemas críticos;
Motivação para aplicação
de tolerância a falhas(2)
• Como resolver falhas!?
Através dos algoritmos de replicação de arquivos!!. Estes algoritmos
resolvem principalmente a inconsistência de arquivos sob escrita
concorrente
Validação de técnicas de
tolerância a falhas(1)
Como saber se as técnicas implementadas resulta realmente em
aumento de confiabilidade??
Através da injeção de falhas no sistema(simulação). A principal função
da injeção de falhas é a validação.
A injeção de falhas pode ser vista, então, como um procedimento de
teste da eficácia de técnicas de tolerância a falhas.
Validação de técnicas de
tolerância a falhas(2)
• Vantagens:
Baixo custo;
Baixa complexidade;
Baixo esforço de desenvolvimento;
• Desvantagens:
A execução do software responsável pela injeção de falhas
afeta as características de temporização do sistema,
prejudicando a execução de funções críticas no tempo
Download

06 de junho