Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea

Slides:



Advertisements
Apresentações semelhantes
Técnicas de Controle de Concorrência
Advertisements

Deadlocks Professora: Lúcia Drummond. Deadlocks Recursos: hardware ou informação Preemptivo Não preemptivo Uso do Recurso: 1. Pedido (Request ou Open)
Sistemas Operacionais Sincronismo e Comunicação entre processos
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Funcionalidades de um SGBD
Disciplina Banco de Dados II Técnicas de Controle de Concorrência
© 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,
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:
Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks
Escalonamento Linux.
Motor de Armazenamento
Transações Atômicas Distribuídas
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.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Conceitos de Programação Paralela - 2
Capítulo 7: Deadlocks.
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.
Recursos Recurso: objeto físico ou abstrato necessário para que uma tarefa seja executada exemplos: tempo de CPU, memória principal, dispositivos de E/S,
Controle de Concorrência em Sistemas Distribuídos
Fundamentals of Database Processing
Introdução a Mecanismos de controle de concorrência
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
RECUPERAÇÃO APÓS FALHA
Um Esquema de Replicação para Suportar Conectividade Fraca em Sistemas de Informação Móveis * Gustavo Fortes Tondello PPGCC – UFSC – 2005 * Original: A.
Sistemas Operacionais
Banco de Dados II Prof. Antônio Cordeiro.
Linguagem de Programação IV
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
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Sistemas de Gerenciamento de Bancos de Dados
Controle Distribuído da Concorrência
Exercícios SGBD - CESPE
Transações Atômicas Distribuídas Prof. Alcides Calsavara
Prof. Alexandre Monteiro Recife
Controle de concorrência
Capítulo 7: Deadlocks.
Curso Técnico em Mineração
Bruna Rafaella da Costa Moura Silvana dos Santos Lima
Técnicas de Replicação
SISTEMAS DISTRIBUÍDOS Transações Atômicas
Bancos de Dados Estrutura e Funcionamento de um SGBD
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Sistemas Operacionais
Protocolo de Bloqueios
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
Sistemas Operacionais
PostGres - Transacções
Prof. Alessandro Gonçalves
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Gerenciamento de Processos
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.
Controle distribuído de concorrência
Deadlocks Impasses Vinícius Pádua.
UCSal – Bacharelado em Informática
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
Deadlocks.
Sistemas Operacionais
Banco de Dados Parte 1 Profa. Ana Karina Barbosa Fevereiro/2008.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner
Weyler N M Lopes © Especialização em Banco de Dados Página 1 BANCO DE DADOS AULA - 07.
Transcrição da apresentação:

Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea Deadlocks e Manipulação de Impasses

Introdução – implementação de bloqueios A técnica de bloqueios permite que transações possam ser executadas concorrentemente sem condenar a consistência do BD. A técnica de bloqueios permite que transações possam ser executadas concorrentemente sem condenar a consistência do BD. Uma transação só pode alterar um item de dado após o seu pedido de bloqueio ser concedido pelo gerenciador de bloqueios. Este, pode ser implementado como um processo separado que mantém uma estrutura de dados chamada de tabela de bloqueios. Uma transação só pode alterar um item de dado após o seu pedido de bloqueio ser concedido pelo gerenciador de bloqueios. Este, pode ser implementado como um processo separado que mantém uma estrutura de dados chamada de tabela de bloqueios.

Implicações do processamento de transações concorrentes Através da técnica de bloqueio de duas fases 2PL, há uma garantia de que os escalonamentos sejam serializáveis, no entanto, não previne, por si só, a ocorrência de impasses e deadlocks. Através da técnica de bloqueio de duas fases 2PL, há uma garantia de que os escalonamentos sejam serializáveis, no entanto, não previne, por si só, a ocorrência de impasses e deadlocks. Em 2PL, todos os pedidos de bloqueio antecedem os pedidos de desbloqueio pelas transações. Em 2PL, todos os pedidos de bloqueio antecedem os pedidos de desbloqueio pelas transações. Desta forma, quando um bloqueio é negado, a transação fica esperando que o item de dado seja desbloqueado por outra transação, mas se isto não acontecer por qualquer motivo, tem-se um deadlock. Desta forma, quando um bloqueio é negado, a transação fica esperando que o item de dado seja desbloqueado por outra transação, mas se isto não acontecer por qualquer motivo, tem-se um deadlock.

A ocorrência do fato deadlock Em outras palavras, o sistema está em deadlock se existe um conjunto de transações tal que cada transação no conjunto está esperando por outra transação no conjunto. Em outras palavras, o sistema está em deadlock se existe um conjunto de transações tal que cada transação no conjunto está esperando por outra transação no conjunto. Protocolos de prevenção de deadlock garantem que o sistema nunca entrará em um estado de deadlock, algumas estratégias de prevenção são: Protocolos de prevenção de deadlock garantem que o sistema nunca entrará em um estado de deadlock, algumas estratégias de prevenção são:

Algumas estratégias de prevenção de deadlock Exigir que cada transação bloqueie todos os seus itens de dados antes de iniciar a execução. Exigir que cada transação bloqueie todos os seus itens de dados antes de iniciar a execução. Impor ordenação parcial de todos os itens de dados e exigir que uma transação possa bloquear itens de dados somente na ordem especificada pela ordem parcial (protocolo baseado em grafos). Bancos de dados fazem uso de técnicas de detecção de deadlocks e executam rollback para prevenir a consumação do problema. Exemplo: tabelas InnoDB no MySQL. Bancos de dados fazem uso de técnicas de detecção de deadlocks e executam rollback para prevenir a consumação do problema. Exemplo: tabelas InnoDB no MySQL.

Fatores que induzem a ocorrência de deadlocks Transações excessivamente longas; Transações excessivamente longas; Níveis de isolamento restritivos; Níveis de isolamento restritivos; Bases de dados não normalizadas; Bases de dados não normalizadas; Ausência ou excesso de índices; Ausência ou excesso de índices; Manipulação de dados por critérios diferentes; Manipulação de dados por critérios diferentes; etc... etc...

Implementação de Bloqueios Um Gerenciador de Bloqueios pode ser implementado como um processo separado, ao qual as transações enviam pedidos de bloqueios e desbloqueios. O gerenciador de bloqueios responde a um pedido de bloqueio enviando uma mensagem de concessão de bloqueio (ou uma mensagem pedindo à transação para executar rollback, em caso de um deadlock) A transação solicitante espera até que o seu pedido seja respondido. O gerenciador de bloqueios mantém uma estrutura de dados chamada tabela de bloqueios para registrar os bloqueios concecidos e os pedidos pendentes. A tabela de bloqueios normalmente é implementada como uma tabela hash em memória, indexada pelo nome do item de dados que está sendo bloqueado.

Manuseio de Deadlock O sistema está em deadlock se existe um conjunto de transações tal que cada transação no conjunto está esperando por outra transação no conjunto. Protocolos de Prevenção de Deadlock garantem que o sistema nunca entrará em um estado de deadlock. Algumas estratégias de prevenção são: Exigir que cada transação bloqueie todos os seus itens de dados antes de iniciar a execução (pré-declaração). Impor ordenação parcial de todos os itens de dados e exigir que uma transação possa bloquear itens de dados somente na ordem especificada pela ordem parcial (protocolo baseado em grafos).

Recuperação de Deadlocks Quando um deadlock é detectado: Quando um deadlock é detectado: Alguma transação terá que sofrer rollback (“fazer uma vítima”) para Alguma transação terá que sofrer rollback (“fazer uma vítima”) para quebrar o deadlock. Escolher como vítima a transação que irá incorrer em um custo mínimo. Rollback – determinar quanto da transação deve ser desfeito Rollback – determinar quanto da transação deve ser desfeito Rollback total: Abortar a transação e então reiniciá-la. Rollback total: Abortar a transação e então reiniciá-la. O mais eficiente é fazer o rollback da transação somente o necessário para quebrar o deadlock.