Escolar Documentos
Profissional Documentos
Cultura Documentos
Transacções em Sistemas
Distribuídos
Page 1
Departamento de Engenharia Informática
Page 2
Departamento de Engenharia Informática
Sistema Transaccional
Aplicações Aplicações
Iniciar Ler
Confirmar Escrever
Abortar
Sistema Transaccional
Sistema Operativo
Hardware
Page 3
Departamento de Engenharia Informática
Transação
• Uma transação é uma sequência de leituras e
escritas a objetos partilhados com outras
transações
Page 4
Departamento de Engenharia Informática
Page 5
Departamento de Engenharia Informática
Page 6
Departamento de Engenharia Informática
Page 7
Departamento de Engenharia Informática
Controlo de concorrência
• Solução pessimista (“pedir licença”)
– Pressupõe que os conflitos são frequentes e obriga à
prévia sincronização de todos os acessos.
Leitura Escrita
Trincos de Leitura/Escrita Leitura Compatível Conflito
Escrita Conflito Conflito
Page 8
Departamento de Engenharia Informática
Interblocagem
• A sincronização com trincos pode conduzir a
interblocagem obrigando a mecanismos para a
resolver:
– Prevenção (ex: ordem parcial sobre trincos, adquirir todos os
trincos pela mesma ordem, caso sejam conhecidos de
antemão)
• Problema: na maior parte das vezes não é possível, e origina
quebra de desempenho
– Detecção da interblocagem
• usando temporizador – método simples , pouco preciso, mas
adequado
• ou grafo com história de sincronização das transacções (indica
recursos protegidos por trincos e as transacções que esperam por
eles)
• e obrigando a abortar as transacções
Page 9
Departamento de Engenharia Informática
Interblocagem: exemplo
Isolamento (cont.)
• Solução pessimista (“pedir licença”)
– Pressupõe que os conflitos são frequentes e obriga à prévia
sincronização de todos os acessos.
Page 10
Departamento de Engenharia Informática
Solução optimista
Page 11
Departamento de Engenharia Informática
Actualização Directa
• A política de recuperação depende da forma como é actualizada a
cache.
• No momento da confirmação:
– Limpar a cache (cache flush) na altura da confirmação
– ou
– Manter os dados em cache
• No momento da escrita de dados
– Permitir a escrita de dados de transacções activas na memória
persistente.
– ou
– Manter os dados das transacções activas apenas em memória volátil
(gestão assíncrona)
• Necessário manter informação redundante no ficheiro de diário (log)
• A informação a manter depende destas decisões
Page 12
Departamento de Engenharia Informática
Actualização em Versões:
Páginas sombra (Shadow pages)
• Copia-se inicialmente a tabela de páginas de modo a poder
reconstituir a versão
• Se a transacção confirmar é necessário comutar atomicamente o
ficheiro no directório
• A dispersão de ficheiros pelo disco e a proliferação de versões são
limitações deste método.
Page 13
Departamento de Engenharia Informática
Gestão do Diário
• Aspectos a considerar
– Registos: físicos ou lógicos
– Robustez do diário a falhas dos discos
– Escrita síncrona/assíncrona dos registos
– Redução do espaço do ficheiro do diário através de
marcas de recuperação (checkpointing)
– Faltas durante a recuperação
Exemplo de Diário
Page 14
Departamento de Engenharia Informática
Page 15
Departamento de Engenharia Informática
Transacções Atómicas
Distribuídas
Page 16
Departamento de Engenharia Informática
Transacções distribuídas:
Modelo de Faltas
• Distribuição implica lidar com:
– Falta dos discos
– Falta das máquinas Faltas de Paragem
– Falta das comunicações
PapelopenTransaction
do Coordenador join participant
closeTransaction
A a.withdraw(4);
.
join
BranchX
T
participant
b.withdraw(T, 3);
Client B b.withdraw(3);
T = openTransaction
join BranchY
a.withdraw(4);
c.deposit(4); participant
b.withdraw(3);
d.deposit(3); C c.deposit(4);
closeTransaction
D d.deposit(3);
Note: the coordinator is in one of the servers, e.g. BranchX BranchZ
Page 17
Departamento de Engenharia Informática
Protocolo de confirmação em
duas fases
Two-Phase Commit (2PC)
Transacções distribuídas:
Problemas a considerar
• A tomada de decisão de abortar ou confirmar
uma transacção é o problema mais complexo a
resolver
Page 18
Departamento de Engenharia Informática
Coordinator Participant
Page 19
Departamento de Engenharia Informática
Interacção Cliente-Coordenador
API do Coordenador
openTransaction() -> trans;
starts a new transaction and delivers a unique TID trans. This
identifier will be used in the other operations in the transaction.
abortTransaction(trans);
aborts the transaction.
Operações no 2PC
canCommit?(trans)-> Yes / No
Call from coordinator to participant to ask whether it can commit a
transaction. Participant replies with its vote.
doCommit(trans)
Call from coordinator to participant to tell participant to commit its part of a
transaction.
doAbort(trans)
Call from coordinator to participant to tell participant to abort its part of a
transaction.
haveCommitted(trans, participant)
Call from participant to coordinator to confirm that it has committed the
transaction.
getDecision(trans) -> Yes / No
Call from participant to coordinator to ask for the decision on a transaction
after it has voted Yes but has still had no reply after some delay. Used to
recover from server crash or delayed messages.
Page 20
Departamento de Engenharia Informática
Transacções distribuídas:
2PC - diagramas de interacções
begin W diário preparar Espera
commit Envia mensagem
Espera Pronto?
W diário S
abort
Envia mensagem
diário Todas?
W diário
S ready
Envia mensagem
Um Não?
S W diário
commit
Envia mensagem
Espera
W diário
abort
Envia mensagem
diário
Abortar?
S
Espera W diário commit
W diário abort
Todas?
S
Logs do protocolo
Page 21
Departamento de Engenharia Informática
espera
Input: Recebe um ou mais NÃO Input: Recebe SIM de todos
Ou temporizador expira Output: Envia COMMIT a todos
Output: Envia ABORT a todos
abort commit
Page 22
Departamento de Engenharia Informática
Transacções distribuídas:
Tolerância a faltas no 2PC
• Não recepção de mensagens
– Detectadas com um temporizador no Coordenador ou nos
Participantes
• Timeout no Coordenador
– Estado Esperar
• Não pode confirmar unilateralmente a transacção
• Mas pode unilateralmente optar por abortar a transacção
– Se considerar que o atraso na resposta se deve a uma falta
– Estados Abortar e Confirmar
• O Coordenador não pode terminar a transacção
– Tem que receber a confirmação de todos os Participantes
• Pode repetir a mensagem global previamente enviada
Transacções distribuídas:
Tolerância a faltas no 2PC
Page 23
Departamento de Engenharia Informática
Transacções distribuídas:
Problemas do 2PC
• O protocolo é bloqueante:
– Obriga os Participantes a esperar pela recuperação
do Coordenador
– E vice-versa
• Não é possível fazer uma recuperação
totalmente independente
• Há alternativas não-bloqueantes
– Sob modelos de faltas mais restritivos
– Normalmente muito mais complexas (ex. 3PC)
Page 24
Departamento de Engenharia Informática
Transacções distribuídas
Arquitectura X/Open
Consórcio X/OPEN
• Esforço de normalização dos protocolos e
interfaces para interligação de sistemas de
informação heterogéneos
– DTP (Distributed Transaction Processing)
– Muito influenciado pela norma de facto que
constituiu a arquitectura SNA da IBM e a sua
interface LU 6.2
Page 25
Departamento de Engenharia Informática
Arquitectura X/Open
• Gestores de Recursos - RM (resource manager)
– Armazenam os dados
• Em BDs relacionais, sistemas de ficheiros com actualizações
atómicas, etc.
– Garantem localmente as propriedades das transacções
• Monitores Transaccionais - TM (transaction managers)
– Coordenadores dos RM
• Através da interface XA
– Execução dos protocolos de iniciação/terminação das
transacções
– Um em cada máquina (ou em cada grupo de máquinas)
Iniciar
Confirmar
TM
Abortar
Preparar
Associar Confirmar
Aplicação Abortar
Ler
Escrever
RM
Page 26
Departamento de Engenharia Informática
Transacções distribuídas:
X/Open (com distribuição)
TM TM
Aplicação SC SC
RM RM
Transacções distribuídas:
X/Open
• Uma aplicação inicia uma transacção
– Invoca o TM local que lhe atribui um identificador único
• A aplicação contacta em seguida os RMs
– Para efectuar as operações de leitura e escrita
– Usa o identificador da transacção
• Os RMs associam-se à transacção
– Quando um RM recebe a primeira operação relacionada com uma
transacção desconhecida contacta o TM local para se associar à
transacção
• A transacção termina
– Todos os TM envolvidos executam um protocolo de consenso
distribuído
Page 27
Departamento de Engenharia Informática
persistent
queue Monitor services
client
Authentication
scheduling load balancing program
library
client queues server class
Presentation services
data internal
dictionary Application Log Recovery resource
program manager manager managers
persistent
queue
external
database resource
manager
From “Transaction Processing” Gray&Reuter. Morgan Kaufmann 1993
XA
XA+
+
Communication
XA XA System /T
Resource Manager
Communications
(CRM)
XAP-TP
XAP-TP
Resource XA-Compliant
OSI-TP OSI-TP
Manager (RM) Resouce Manager
Page 28