Controle de Concorrência em Transações Álvaro Vinícius de Souza Coêlho

Slides:



Advertisements
Apresentações semelhantes
Checkpoint SGBD com alta demanda de transações Checkpoint
Advertisements

Técnicas de Controle de Concorrência
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
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Controle de Concorrência Serializabilidade
Sistema de recuperação
WebDesign Redes de Computadores Aula 07
Aula 3 Requisitos dos SGBD
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:
Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks
Motor de Armazenamento
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
Memórias Transacionais
Capítulo 7: Deadlocks.
Processamento de Transação
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
Deadlock Marcos José Santana Regina Helena Carlucci Santana
Introdução a Mecanismos de controle de concorrência
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Linguagem de Banco de Dados - SQL
RECUPERAÇÃO APÓS FALHA
Pense bem, pense grande. Pense BIG.
Desde 1985 venho dizendo às empresas que não basta que seus vendedores conheçam bem os seus produtos e serviços. Com muitos concorrentes, qualidade semelhante.
Gerenciamento de Transações - Introdução
Administração da Produção
Sistemas Operacionais
Usuário de SGBD Á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.
Transações Prof: Galina
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Prof. Alexandre Monteiro Recife
Controle de concorrência
Capítulo 7: Deadlocks.
SGBD Distribuído Lílian Simão Oliveira.
Testes de Software AULA 02 Eduardo Silvestri
Transações Concorrentes
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
Troca de Mensagens Programação concorrente
Bloqueios de Atualização
Falhas.
Protocolo de Bloqueios
Projeto Claro Teste Fevereiro Claro Teste Objetivo: Atrair clientes da concorrência. Conceito: Com o Claro Teste, todo interessado em conhecer os.
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.
O problema da desconexão em BD móveis Equipe: Antonio Jaime M. de Almeida Bruno de Brito Leite.
Controle de Concorrência
DELETE, UPDATE, COMMIT, ROLLBACK
Banco de Dados Capítulo 6: Arquitetura de SGBD Controle de Concorrência UFCG/DSC Prof. Cláudio Baptista.
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.
Banco de Dados Álvaro Vinícius de Souza Coêlho
Deadlocks Impasses Vinícius Pádua.
UCSal – Bacharelado em Informática
APRESENTAÇÃO PORTAL CITI CONTA CORRENTE
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.
Grafcet & Partilha de Recursos MIEEC | Automação | 2007/08 Grafcet & Partilha de recursos José António Faria & Armando Sousa.
Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari.
Transcrição da apresentação:

Controle de Concorrência em Transações Álvaro Vinícius de Souza Coêlho

Controle de Concorrência Na prática várias transações estão acessando, alterando, incluindo e excluindo dados ao mesmo tempo Isso pode gerar uma série de anomalias

Uma transaçao T1 faz uma venda de 10 unidades de um certo item Uma transação T2 idem Neste dado momento o saldo disponível em estoque é de 15 unidades Controle de Concorrência

T1 lê o saldo T1.Quant = 15 T2 lê o saldo T2.Quant = 15 Controle de Concorrência

Tanto para T1 quanto para T2 a operação é permitida Mas uma das duas vai esbarrar no subsistema de integridade! (check saldo >= 0) Outras anomalias podem ocorrer de maneira semelhante (leituras incorretas, perdas de atualizações, etc.) Controle de Concorrência

Bloqueio As transações bloqueiam os dados que vão alterar À medida que se faz um COMMIT ou um ROLLBACK os dados são desbloqueados Dados só podem ser bloqueados por uma transação se não já estiverem bloqueados por outra Controle de Concorrência

Porque o desbloqueio ocorre em COMMIT ou ROLLBACK? Para garantir a integridade Controle de Concorrência

Bloqueio em duas fases Para se garantir que realmente não haverão anomalias, o bloqueio deverá ser feito em duas fases. –As transações bloqueiam os dados –As transações desbloqueiam os dados As transações não bloqueiam os dados após haver algum desbloqueio Controle de Concorrência

Bloqueio Perpétuo (DeadLock) Casos excepcionais Um conjunto de transações pode ficar em espera eterna Controle de Concorrência

Exemplo: –Uma transação T1 de venda bloqueará a tabela Cliente e em seguida a tabela Estoque –Uma transação T2 de compra bloqueará a tabela Estoque e em seguida a tabela Contas –Uma transação T3 de cobrança bloqueará a tabela Contas e em seguida a tabela Cliente Controle de Concorrência

T1 inicia, e bloqueia a tabela Cliente T2 inicia, e bloqueia a tabela Estoque T3 inicia, e bloqueia a tabela Contas T1 está esperando pela tabela Estoque T2 está esperando pela tabela Contas T3 está esperando pela tabela Cliente DeadLock Controle de Concorrência

Como resolver? Duas estratégias: –Detectar o DeadLock –Prevenir o DeadLock Controle de Concorrência

Detectar o DeadLock –Periodicamente (na menor fração de tempo possível sem comprometer a performance) verificar dependências entre transações, formando um grafo T1 T3 T2 Controle de Concorrência

Detectar o DeadLock –Caso o grafo forme um Ciclo, há a verificação de um DeadLock –Neste caso, uma transação é escolhida para ser desfeita e refeita (undo e redo) A mais antiga A mais recente A que bloqueou mais recursos –A escolha varia de fabricante para fabricante Controle de Concorrência

Prevenir o DeadLock –Para cada tentativa de bloqueio, o SGBD constrói o grafo de dependência a priori –Caso o bloqueio venha a causar DeadLock, ele é atrasado por alguns instantes, e nova tentativa é feita. Controle de Concorrência

Melhor Prevenir ou Detectar (remediar)? De modo geral a prevenção demanda mais esforço –Construção de gráficos de dependência a cada tentativa de bloqueio A prevenção pode por uma transação de castigo por muito tempo - Solucionável (prioridade) Controle de Concorrência

Melhor Prevenir ou Detectar (remediar)? A Detecção –Simples, mas resolver um DeadLock é caro pois transações com muitas operações podem precisar ser desfeitas ou refeitas Pode matar uma mesma transação muitas vezes - Solucionável (troca de estratégia de escolha) Controle de Concorrência

De modo geral a regra é a seguinte: Prevenir é melhor se há muitas ocorrências de DeadLock –Evita o custo de desfazê-los Detectar é melhor se há poucas ocorrências de DeadLock –Evita o custo excessivo de construção de grafos Controle de Concorrência

FIM! Dada a Premissa: Dar presentes é melhor que Receber, eu faço o sacrifício Groucho Marx Controle de Concorrência Manet