Transações Atômicas Distribuídas

Slides:



Advertisements
Apresentações semelhantes
Coerência de Cache em Multiprocessadores
Advertisements

Checkpoint SGBD com alta demanda de transações Checkpoint
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara.
Recuperação Como garantir a integridade da informação, em caso de avarias de HW ou SW forma de suportar a reposição de um estado consistente da informação.
Bloqueios partilhados
Gestão de transacções noções básicas modelo simples modelo elaborado
1 Gabriel David FEUP - Rua dos Bragas, 4099 Porto Codex - PORTUGAL Tel Fax: URL:
Motor de Armazenamento
Sincronização em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]
Sistemas Distribuídos
Transações Atômicas Distribuídas
Cap Recuperação Pretende garantir a atomicidade e durabilidade das transações. Atomicidade => É responsabilidade do gerente de recuperação voltar.
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Sumário 1 SQL Embutida 2 Processamento de Consultas
Modelos de Transações para Ambiente de Computação Móvel
Processamento de Transação
Sincronização em SDs I Bruno M. Carvalho Sala: 3B2 Horário: 35T34.
Sincronização em SDs II Bruno M. Carvalho Sala: 3B2 Horário: 35T34.
Controle de Concorrência em Sistemas Distribuídos
Sistemas Distribuídos Sincronização e Coordenação
Fundamentals of Database Processing
Introdução a Mecanismos de controle de concorrência
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
Fundamentos de Banco de Dados Prof. Alexander Roberto Valdameri
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Sincronização e Comunicação entre Processos
Capítulo 5 – Tanenbaum Capítulo 10,11,12 e 13 - Coulouris
RECUPERAÇÃO APÓS FALHA
Profa. Priscila Facciolli
Gerenciamento de Transações - Introdução
SISTEMAS OPERACIONAIS
Estruturas de Dados com Jogos
Banco de Dados II Prof. Antônio Cordeiro.
Sistemas Distribuídos
Prof. Alessandro Gonçalves
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Introdução e Busca Cega
Sistemas Distribuídos
Protocolos de Recuperação
Fiabilidade de Sistemas Informáticos Acções Atómicas
Controle Distribuído da Concorrência
Exercícios SGBD - CESPE
Transações Atômicas Distribuídas Prof. Alcides Calsavara
Controle de concorrência
Controle de Concorrência Locks. Conceito de Transação Transações podem ser vistas como um grupo de operações combinadas em uma unidade lógica de trabalho.
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação Programa de Pós-Graduação.
Técnicas de Replicação
Transações Concorrentes
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
SCC Bancos de Dados e Suas Aplicações
SISTEMAS DISTRIBUÍDOS Transações Atômicas
Bloqueios de Atualização
Falhas.
Protocolo de Bloqueios
Google Wave (Arquitetura) Ademir Junior / Felipe Ferreira / Fernando Kakimoto.
Modos de Desconexão para BD’s Móveis Sandberg Marcel Santos Baseado no artigo “Disconnection Modes for Mobile Databases”, de Holliday, Agrawal e El Abbadi.
Controle de Concorrência
PostGres - Transacções
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Projeto e Implementação de Sistemas de Arquivos
Bruna Cavallero Martins Universidade Católica de Pelotas.
Weyler N M Lopes © Especialização em Banco de Dados Página 1 BANCO DE DADOS AULA - 07.
Transcrição da apresentação:

Transações Atômicas Distribuídas Módulo 6 [C12,C13,C14,T3.4] (110 p.)

Conteúdo Armazenamento em memória estável Primitivas de transação Propriedades de transações Transações encaixadas Implementação de transações Espaço de trabalho privado Log Protocolo de commit em duas fases Controle de concorrência Locking Controle otimista Timestamps Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Transações em SD Abstração em alto nível para ocultar: uso de semáforos para controle de concorrência prevenção de deadlocks recuperação de falhas Vantagem: programadores concentram-se nos algoritmos das aplicações. Sinônimos: atomic transaction, transaction, atomic action. Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Exemplo de transação Um cliente, em um PC ligado por modem, faz transferência de fundos de uma conta bancária para outra, em dois passos: (1) Saque(quantia, conta1) (2) Deposite(quantia, conta2) Se a ligação telefônica cair entre os passos (1) e (2) o dinheiro desaparece! Solução: passos (1) e (2) devem ocorrer como uma transação atômica (como se fosse um único passo); se a ligação telefônia cair entre os passos (1) e (2), os efeitos do passo (1) devem ser cancelados. Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Memória estável Informação armazenada em RAM é perdida se faltar energia ou se a máquina falhar. Informação armazenada em disco é perdida se a cabeça do disco falhar. Informação armazenada em memória estável sobrevive a tudo, exceto enchentes, terremotos, ... Implementação típica: disco replicado. Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Primitivas de transação BEGIN_TRANSACTION: marca o início da transação END_TRANSACTION: termina a transação e tenta fazer o commit ABORT_TRANSACTION: destrói a transação; restaura os valores anteriores (do início da transação) READ: lê dados de um objeto (por exemplo, um arquivo) WRITE: escreve dados em um objeto Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Exemplos de primitivas BEGIN_TRANSACTION reserve São Paulo - Salvador reserve Salvador - Brasília reserve Brasília - São Paulo END_TRANSACTION reserve Brasília - São Paulo => ABORT_TRANSACTION Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Propriedades de transações:ACID Atômica: para o mundo externo, a transação ocorre de forma indivisível. Consistente: a transação não viola invariantes de sistema. Isolada: transações concorrentes não interferem entre si (serializable). Durável: os efeitos de uma transação terminada com commit são permanentes. Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Isolamento ou serializabilidade BEGIN_TRANSACTION x = 0; x = x + 1; END_TRANSACTION BEGIN_TRANSACTION x = 0; x = x + 2; END_TRANSACTION BEGIN_TRANSACTION x = 0; x = x + 3; END_TRANSACTION Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Escalonamentos (schedules) Escalon. 1 Escalon. 2 Escalon. 3 x = 0; x = 0; x = 0; x = x + 1; x = 0; x = 0; x = 0; x = x + 1; x = x + 1; x = x + 2; x = x + 2; x = 0; x = 0; x = 0; x = x + 2; x = x + 3; x = x + 3; x = x + 3; Legal Legal Ilegal Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Transações encaixadas A transação top-level cria sub-transações que executam em paralelo, em processadores distintos: melhor desempenho e programação mais simples. Se uma transação top-level abortar, então todas as suas sub-transações também devem abortar. Uma sub-transação herda todos os objetos controlados pela transação top-level. Uma sub-transação faz cópia local de todos os objetos herdados e só repassa os novos valores destes objetos à transação top-level em caso de commit da sub-transação. Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Implementação de transações Métodos de controle sobre modificações: Espaço de trabalho privado Log Protocolo de commit em duas fases Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Espaço de trabalho privado Um processo que começa uma transação cria um espaço contendo cópias de todos os objetos manipulados pela transação. Se ocorrer commit, a transação repassa os novos valores dos objetos para os seus originais. Problema: alto custo! Otimização: shadow blocks Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Log Writeahead log ou intentions list Os objetos originais são modificados durante a transação Antes de cada modificação, um registro é escrito em um arquivo de log (em memória estável) Cada registro de log informa o valor anterior e o valor novo de um objeto, além de informar que transação fez a modificação no objeto Se ocorrer commit um registro apropriado é inserido no log Se ocorrer abort todas as operações efetuadas pela transação são desfeitas com base no log, começando pelo último registro (rollback) Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Log : exemplo x = 0; y = 0; BEGIN_TRANSACION x = x + 1; y = y + 2; END_TRANSACION Log x = 0/1 y = 0/2 x = 1/4 Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Protocolo de commit em duas fases A ação de commit deve ser “instantânea” e indivisível Pode ser necessária a cooperação de muitos processos, em máquinas distintas, cada qual com um conjunto de objetos envolvidos na transação Um processo é designado como o coordenador (normalmente o próprio cliente que inicia a transação) Os demais processos são designados como subordinados Toda ação é registrada em log, armazenado em memória estável, para o caso de falha durante a transação. Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

O protocolo Fase 1: O coordenador registra “prepare” em log e envia a mensagem “prepare” para os subordinados Um subordinado registra “ready” / “abort” em log e envia a mensagem “ready” / “abort” para o coordenador O coordenador coleta todos as mensagens “ready” Fase 2: O coordenador registra a decisão em log e envia mensagem “commit” / “abort” para os subordinados Um subordinado registra “commit” / “abort” em log, toma a ação correspondente e envia mensagem “finished” ao coordenador Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Controle de concorrência Locking Um gerente centralizado ou distribuído registra todos os locks e rejeita pedidos de lock em objetos já alocados a outros processos lock para escrita deve ser exclusivo, mas lock para leitura pode ser compartilhado Quanto menor a granularidade do lock maior a chance de paralelismo, mas também maior é a chance de deadlock Lock em duas fases: growing: todos os locks são adquiridos shrinking: todos os locks são liberados Strict two-phase locking: a fase shrinking ocorre “instantaneamente” (previne cascade aborts) Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Controle de concorrência (cont.) Controle otimista Os objetos são modificados sem preocupação com concorrência até o fim da transação Quando chegar o momento de commit, a transação verifica se outra transação modificou os mesmos objetos que ela tenha modificado Se não há conflito, então o commit é feito (repasse de objetos do espaço de trabalho privado), senão é feito um abort Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas

Controle de concorrência (cont.) Timestamps Cada transação recebe um timestamp único em seu início Cada objeto no sistema tem um read timestamp e um write timestamp, dizendo que transação fez a operação Se transações são “curtas” e “espaçadas” no tempo, normalmente, quando uma transação fizer acesso a um objeto, os timestamps do objeto serão mais velhos que o timestamp da transação. Caso contrário a transação está “atrasada” e deve ser abortada. Arquitetura de Sistemas Distribuídos - Módulo 5: Transações Atômicas Distribuídas