Cap. 21 - Recuperação Pretende garantir a atomicidade e durabilidade das transações. Atomicidade => É responsabilidade do gerente de recuperação voltar.

Slides:



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

Integridade de Dados em Memórias Cache
Checkpoint SGBD com alta demanda de transações Checkpoint
Técnicas de Controle de Concorrência
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Controle de Concorrência Serializabilidade
Sistema de recuperação
Requisitos dos SGBD Recuperação/Tolerância a Falhas
Sistemas operacionais
Disciplina Banco de Dados II Técnicas de Controle de Concorrência
© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Recuperação de falha Msc, Marcelo Bezerra de Alcântara
© Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,
© 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
Transações Atômicas Distribuídas
Transações Atômicas Distribuídas
Gerenciamento de Disco e de Buffer - Resumo
Gerenciamento do Disco Gerenciamento do Buffer
Sumário 1 SQL Embutida 2 Processamento de Consultas
Memórias Transacionais
Coerência de Memórias Cache e Modelos de Consistência de Memória
Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento.
Processamento de Transação
Componentes Arquitetônicos de um Banco de Dados Oracle
Banco de Dados Oracle AESO.
Controle de Concorrência em Sistemas Distribuídos
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Fundamentos de Banco de Dados Prof. Alexander Roberto Valdameri
Listas Encadeadas.
RECUPERAÇÃO APÓS FALHA
Arquitectura de Computadores II
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Gerenciamento de Transações - Introdução
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
EQUIPE: SIDNEI, MAICKON, GUILHERME, FILIPE
Banco de Dados II Prof. Antônio Cordeiro.
Controle de Concorrência em Transações Álvaro Vinícius de Souza Coêlho
SGBD - Regra 1 Regra 1: Auto-Contenção- Um SGBD não contém apenas os dados em si, mas armazena completamente toda a descrição dos dados, seus relacionamentos.
Sistema Operacional Processos
Prof. Alessandro Gonçalves
Transações Prof: Galina
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Protocolos de Recuperação
Controle Distribuído da Concorrência
Exercícios SGBD - CESPE
Transações Atômicas Distribuídas Prof. Alcides Calsavara
Controle de concorrência
Prof. Alessandro Gonçalves
System R Recovery System Vitor Silva. Tópicos O System R System R Recovery System Shadows Log Protocolo Do, Undo, Redo CheckPoints Reinício do Sistema.
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
SISTEMAS DISTRIBUÍDOS Transações Atômicas
SISTEMAS OPERACIONAIS I
Bancos de Dados Estrutura e Funcionamento de um SGBD
Pablo Oliveira Antonino de Assis. Agenda  Objetivo.  Introdução.  Protocolos de Recuperação.  LOG’s.  Gerenciamento de LOG em MDS.  Recuperação.
Bloqueios de Atualização
Falhas.
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.
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Prof. André Luis M. Silva Hierarquia de Memória Prof. André Luis M. Silva
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.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Projeto e Implementação de Sistemas de Arquivos
Memória Cache.
Weyler N M Lopes © Especialização em Banco de Dados Página 1 BANCO DE DADOS AULA - 07.
Transcrição da apresentação:

Cap. 21 - Recuperação Pretende garantir a atomicidade e durabilidade das transações. Atomicidade => É responsabilidade do gerente de recuperação voltar o BD ao estado anterior ao início de uma transação que aborta ou é interrompida por uma falha do sistema. Durabilidade => É responsabilidade do GR garantir que dados modificados por transações que tiveram seus commit’s atendidos, sejam refletidos no BD mesmo em presença de falhas. Falhas: Transações incorretas (quebram consistência) => não são tratadas. Falhas em transações: aborts explícitos, underflow, overflow ... Erros de sistema: quedas de força, falhas no SO, no SGBD ... => Conteúdos da memória principal e do buffer pool são perdidos. O conteúdo do BD não. Falhas de meio magnético: corrupção no armazenamento estável => tratados via back-up.

Gerente de Recuperação Flush e Write Fetch Buffer pool Ger. Log Write Read Read Write Arquivo de LOG BD Log - Registro das operações (write, commit, abort) usado para recuperação Pode conter também informação sobre transações ativas, “commited” e abortadas. Operações sobre o Log: Undo/Redo => Idempotentes

A estrutura do Log : Cache de log O que é um item no log? Valor Ant Valor T2 Item Valor Ant Valor Tempo T3 Item Valor Ant Valor T1 Item Valor Ant Valor T3 Item Valor Ant Valor O que é um item no log? Pode-se colocar todo o bloco => perdulário Apenas a parte modificada (No bloco, offset, tamanho_item). O log cresce muito => Faz necessário arquivamento (archive) da parte mais antiga, e restauração da mesma em caso de falha. Cache de log Exige vinculação dos blocos do buffer pool com entradas do log. Write Ahead Logging (WAL): blocos do log escritos em disco antes dos blocos de dados.

Grav. em Disco a Partir do Cache Necessário Garantir persistência Liberar espaço de Buffer: estratégia LRU (Menos recentemente usado) e estratégia FIFO (First-in First-out) Abordagens Steal/No-steal: Abordagem no-steal impede gravação em disco de páginas antes do commit Pin-unpin: cotrole de páginas que podem ir para disco Steal exige menos memória para buffer Abordagens Force/No-force: Abordagem force obriga a gravação de todas as páginas alteradas em disco no momento do commit No-force diminui operações de E/S

Check Points Ponto registrado no log onde se tem garantia de que toda atualização anterior ao mesmo está refletida no BD. O restart não precisa ler todo o log. Permite apagar partes antigas do arquivo de log (liberando espaço). t tc tf T1 T2 T3 Transações T4 T5 Check Point Falha T1: Sem problemas (Commit antes de tc => já está no BD) T2, T4: Commit antes da Falha => devem ser refeitas (Redo) T3, T5: Falha antes do commit => devem ser desfeitas (Undo)

Estratégias de Recuperação Dependência do Controle de Concorrência Atualização postergada (no undo/redo) Os dados alterados por uma transação só podem ser refletidos no BD após o commit. Opções: Área temp. p/ itens alterados (“after_image”) Pin de páginas alteradas Exemplo c/ uso de área temporária e bloqueio estrito Write(T,item,valor): Log (T, item, valor) after_image(T,item)=valor Read(T,item): Se T já escreveu em item então retorna after_image(T,item) senão retorna fetch(item)

Recuperação: No Undo/ Redo (cont.) Commit(T): commit_L = commit_L È {T} copia after_image(T,*) para cache Abort(T): abort_L = abort_L È {T} Descarta after_image(T,*) Restart: Redone = Æ Varre o log do fim para o início para cada entrada L se (L.T Î commit_L e L.item Ï Redone) então copia L.valor para o cache Redone = Redone È {L.item} Vantagens Transações abortadas são simplesmente submetidas de novo Sem rollback por falhas Sem rollback em cascata Desvantagens Espaço adicional de memória Bloqueio estrito: menor concorrência

Recuperação: Undo/No Redo Atualização imedidata (undo / no redo) Toda vez que é necessária alteração num item, o(s) bloco(s) com aquele item são trazidos para memória modificados e atualizados no buffer pool. Quando há o Commit deve forçar a escrita em disco (Flush). Write(T,item,valor): active_L = active_L È {T} Log (T, item, before_image) Escreve valor no cache Read(T,item): retorna fetch(item)

Commit(T): Para cada item do cache escrito por T Flush(item) commit_L = commit_L È {T} active_L = active_L - {T} Abort(T): Para cada item do cache ou do BD escrito por T copia a before_image do item (contida no primeiro registro do log referente à modificação do item por T) para o cache abort_L = abort_L È {T} Restart: Varre o log do fim para o início para cada entrada L se (L.T Ï commit_L) então copia L.before_image p/o cache para cada T se (T Î active_L e T Î commit_L)

Recuperação:Undo/Redo Undo/Redo: Mais flexível: O controlador do buffer pool tem total liberdade para escrever os blocos p/o disco quando lhe convier. Write(T,item,valor): active_L = active_L È {T} Log (T, item, before_image, valor) Escreve valor no cache Read(T,item): retorna fetch(item) Commit(T): commit_L = commit_L È {T} active_L = active_L - {T} Abort(T): Para cada item do cache ou do BD escrito por T copia a T.before_image para o cache abort_L = abort_L È {T}

Recuperação: Undo/Redo Restart: Undone = Æ Redone = Æ Varre o log do fim para o início para cada entrada L se (L.item Ï Redone) então se L.T Î commit_L então copia L.valor p/o cache Redone = Redone È {L.item} senão copia L.before_image p/o cache para cada T se (T Î active_L e T Î commit_L) active_L = active_L - {T}

Recuperação: No Undo/No Redo Shadowing: Quando uma transação tem de modificar um item, o GR copia o bloco envolvido numa área livre do disco. Monousuário: dispensa log Copia-se (em disco) diretório no início da transação e mantém-se antigo (shadow) sem modific. Commit: descarta shadow Abort: descarta-se diret. corrente e novas páginas alocadas e diretório shadow volta a ser corrente

Recuperação: No Undo/No Redo Vantagem: simplicidade na recuperação Desvantagens: Complica a ordenação física dos dados. Reaproveitar espaço de páginas antigas: Coleta de lixo necessária Mudanças de diretório (corrente e shadow) precisam ser atômicas Obs: com transações concorrentes logs e checkpoints são necessários