Bloqueios partilhados

Slides:



Advertisements
Apresentações semelhantes
Gerenciamento de Projetos
Advertisements

Coerência de Cache em Multiprocessadores
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)
CONTROLE DE CONCORRÊNCIA
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Controle de Concorrência Serializabilidade
Redes de computadores II
WebDesign Redes de Computadores Aula 07
Requisitos dos SGBD Recuperação/Tolerância a Falhas
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 – 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.
Pesquisa em profundidade
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:
1Req. Utilizador O utilizador tem a liberdade de escolher entre três níveis de dificuldade do sistema, escolhendo o que mais se adequa ao seu perfil: Principiante,
Deadlocks - Impasses 3.1. Recurso 3.2. Introdução aos deadlocks
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
Capítulo 7: Deadlocks.
Processamento de Transação
Controle de Concorrência em Sistemas Distribuídos
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
Introdução a Mecanismos de controle de concorrência
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Sincronização e Comunicação entre Processos
Linguagem de Banco de Dados - SQL
Critérios gerais de classificação da prova de Matemática A –Prova 635.
Critérios gerais de classificação da prova de Matemática B – Prova 735.
RECUPERAÇÃO APÓS FALHA
Sistemas Operacionais
Gerenciamento de Transações - Introdução
Monitores.
Um Esquema de Replicação para Suportar Conectividade Fraca em Sistemas de Informação Móveis * Gustavo Fortes Tondello PPGCC – UFSC – 2005 * Original: A.
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.
Transações Prof: Galina
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
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
Prof. Alexandre Monteiro Recife
Controle de concorrência
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Capítulo 7: Deadlocks.
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.
Transações Concorrentes
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
Falhas.
Sistemas Operacionais
Protocolo de Bloqueios
Controle de Concorrência
PostGres - Transacções
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.
Deadlocks Impasses Vinícius Pádua.
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.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais IESP - FATEC-PB Professor: Gustavo Wagner.
Grafcet & Partilha de Recursos MIEEC | Automação | 2007/08 Grafcet & Partilha de recursos José António Faria & Armando Sousa.
Transcrição da apresentação:

Bloqueios partilhados Elaborar o modelo para aumentar a concorrência distinguir transacções que não alteram a BD bloqueio partilhado (ou de leitura) RLOCK A pedido por transacções que só pretendam ler o item impede outra transacção de escrever pode haver mais transacções com RLOCK em A bloqueio exclusivo (ou de escrita) WLOCK A pedido por transacções que pretendam escrever o item idêntico ao do modelo simples: mais nenhum bloqueio é aceite transacção com RLOCK pode pedir um WLOCK UNLOCK desbloqueia ambos

Novo teste de seriabilidade Escalonamentos equivalentes produzem o mesmo valor para cada item cada bloqueio partilhado ocorre em ambos os escalonamentos em momentos em que o item tem o mesmo valor Teste de seriabilidade com bloqueios partilhados criar um grafo dirigido cujos nós são as transacções para cada passo Tk: RLOCK Am ou WLOCK Am, se existir a seguir um passo Tl: WLOCK Am, com k  l, desenhar um arco de Tk para Tl. para cada passo Tk: WLOCK Am, se a seguir a Tk desbloquear Am e antes de outro WLOCK Am existir um passo Tl: RLOCK Am, com k  l, desenhar um arco de Tk para Tl. escalonamento serializável se não houver ciclos no grafo ordenação topológica é um escalonamento série equivalente

Exemplo T1 T2 T4 T3 Não serializável WLOCK A RLOCK B UNLOCK A RLOCK A UNLOCK B WLOCK B T1 T2 T4 T3 Não serializável Bloqueio em duas fases garantiria escalonamento serializável

Recuperação de falhas Razões para ocorrerem falhas 1 falha na transacção (interrupção do utilizador; divisão por zero; tentativa de acesso a dados não autorizados) 2 deadlock: o escalonador aborta a transacção para libertar outras 3 transacção abortada para garantir a seriabilidade 4 erro de hardware ou de software provoca falha no SGBD falhas que envolvam destruição de memória permanente podem exigir recurso ao arquivo de dados (backup) pretende-se que o SGBD seja resistente aos outros tipos de falhas (quer nos casos de falha de só uma transacção, quer nos de falha do sistema)

Cometimento Transacção Ponto de cometimento Dados sujos FEUP/LEIC TSGBD Cometimento Transacção activa - ainda em processamento completa - já não é possível abortar pelas razões (1) a (3) terminada Ponto de cometimento momento em que todos os bloqueios estão obtidos e todo o processamento está efectuado esse momento é marcado por uma instrução COMMIT Dados sujos são dados escritos na BD antes de a transacção ter cometido outra transacção que leia tais dados arrisca-se a ficar com valores inconsistentes, no caso de a primeira abortar Gabriel David

Leitura de dados sujos Ocorrendo uma falha no passo (14) é preciso T1 T2 (1) LOCK A (2) READ A (3) A:= A-1 (4) WRITE A (5) LOCK B (6) UNLOCK A (7) LOCK A (8) READ A (9) A:= A*2 (10) READ B (11) WRITE A (12) COMMIT (13) UNLOCK A (14) B:=B/A Ocorrendo uma falha no passo (14) é preciso 1 - remover o bloqueio em B 2 - repor o valor de A anterior ao início de T1 (jornal) 3 - (uma vez que o valor de A lido por T2 está errado) desfazer todos os efeitos de T2 e voltar a corre-la 4 - se alguma transacção T3 tiver lido algum valor alterado por T2, também terá que ser desfeita, etc.

Bloqueio em duas fases estrito O fenómeno de ter que desfazer (rollback) várias transacções devido à falha de uma designa-se desfazer em cascata protocolo de bloqueio em duas fases estrito uma transacção não pode escrever na BD até atingir o ponto de cometimento não se liberta nenhum bloqueio até se acabar de escrever na BD a primeira condição é necessária se não se conseguir repor valores antigos de itens em caso de falha este protocolo evita a necessidade de suportar desfazer em cascata

Aspectos de desempenho Compromisso entre (1) obter a melhor taxa de execução (throughput) - número de transacções terminadas por unidade de tempo, para uma determinada mistura de transacções (2) conseguir que cada transacção individual termine sem excessivo atraso Para melhorar (1) minimizar o overhead do escalonador (bloqueios, sequenciação de transacções, detecção de encravamentos) minimizar o tempo gasto em transacções que acabam por abortar e a eliminar bloqueios que sobraram minimizar o tempo gasto a repor a BD em caso de desfazer em cascata (se o protocolo não for de duas fases estrito)

Início da transacção Já se viu como disciplinar o fim das transacções ponto de cometimento e o início? Depende dos casos. Protocolo agressivo escalonador simples e rápido mesmo que acabe por cair numa situação em que deva abortar espera-se que o tempo a resolver encravamentos seja menor que o que seria gasto a gerir os bloqueios Protocolo conservador evita-se fazer a primeira parte da transacção se não houver garantias de ela se possa completar

Protocolo conservador Transacção começa por pedir, no início, todos os bloqueios de que vai necessitar e ou são todos concedidos ou nenhum e vai para fila de espera problema: bloqueio activo (pode haver sempre uma transacção a bloquear um dos itens requeridos em cada momento) exemplo do cálculo do saldo global de uma agência bancária pode haver sempre um movimento a ser efectuado política FIFO pode “pendurar” transacções pequenas até a grande poder avançar é necessário ver se cada transacção está a pedir recursos que estejam bloqueados ou que virão a ser bloqueados por transacções mais antigas na fila de espera pedir os bloqueios a priori pode obrigar a bloquear demais bloquear toda uma tabela em vez de apenas os blocos que ao longo do processamento do índice se mostrarem relevantes

Protocolo agressivo Transacção pede bloqueio num item mesmo antes de o ler ou escrever primeiro RLOCK e depois, antes de escrever, WLOCK continua a desbloquear só depois de todos os bloqueios (2 fases) continua a desbloquear só depois de estar tudo escrito na BD (2 fases estrito) sujeito a encravamento por pedido cruzado de dois itens novo tipo de encravamento: duas transacções que detenham RLOCK no mesmo item e peçam ambas a respectiva promoção a bloqueios de escrita Como escolher? depende do padrão de bloqueios típico probabilidade de bloqueio simultâneo do mesmo item baixa  agressivo ocorrência frequente de bloqueios não disponíveis  conservador