Introdução a Mecanismos de controle de concorrência

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:
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,
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
Algoritmos para Operações de Conjuntos AULA 19 Profa. Sandra de Amo GBC053 – BCC
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
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
Modelos de Transações para Ambiente de Computação Móvel
Capítulo 7: Deadlocks.
Processamento de Transação
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
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
RECUPERAÇÃO APÓS FALHA
Threads sem Sincronização
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
Capítulo 7: Deadlocks.
Data Replication and Resiliency Trabalho realizado por: Rui Ferreira Nº Eng. Informática.
Transações Prof: Galina
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
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.
Bruna Rafaella da Costa Moura Silvana dos Santos Lima
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
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.
O problema da desconexão em BD móveis Equipe: Antonio Jaime M. de Almeida Bruno de Brito Leite.
Controle de Concorrência
Sistemas Operacionais
PostGres - Transacções
Prof. Alessandro Gonçalves
Serialização Relaxada em Banco de Dados Múltiplos Andressa Sebben
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.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Controle distribuído de concorrência
Projeto e Implementação de Sistemas de Arquivos
UCSal – Bacharelado em Informática
Deadlocks.
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:

Introdução a Mecanismos de controle de concorrência UFCG - COPIN Disciplina: Banco de Dados Professor: Marcus Sampaio Aluna: Kézia de V. Oliveira

Agenda Conceitos iniciais básicos; Motivação; Introdução; Esquemas de controle de concorrência baseados em bloqueio; Esquemas de controle de concorrência não baseados em bloqueio; Metodologias Misturadas; Considerações Finais.

Conceitos iniciais básicos O que é uma transação? Uma seqüência de ações que são consideradas uma unidade atômica (indivisível) de trabalho. O que é conflito entre transações? O conflito entre trnasações ocorre quando mais de uma transação tenta acessar o mesmo item de dado. O que é mecanismo de controle de concorrência? É um mecanismo que garante a Consistência e a Isolação dos dados, dada a atomicidade das transações.

Motivação Por que estudar mecanismos de controle de concorrência? Trabalhamos em ambientes multi-tarefas É necessário compartilhar dados; É necessário manter a consistência dos dados. Escolher dentre vários protocolos de CCMs (Mecanismos de Controle de Concorrência) qual o mais adequado para cada tipo de base de dados.

Introdução Como é tratado o compartilhamento de dados? Em sistemas que não lidam com transações concorrentes utiliza-se os conceitos de exclusão mútua e semáforos. Para transações concorrentes utilizamos o CCM. Serialização => estabelecer uma ordem de execução das transações.

Introdução Como o CCM mantém a serialização? Lock (Bloqueio); Rollback; Timestamp. Como os CCMs podem ser categorizados? Esquemas baseados em bloqueio; Esquemas não baseados em bloqueio.

Esquemas baseados em bloqueio Quais as características de um esquema baseado em bloqueio? Segue o protocolo de duas fases para bloquear dados. Suporta duas operações básicas. Bloqueio – fase crescente; Desbloqueio – fase de encolhimento. Utiliza as operações rollback e locking para resolver conflitos sobre dados compartilhados.

Esquemas baseados em bloqueio Como um esquema baseado em bloqueio funciona? Tem como objetivo decidir que transações devem sofrer bloqueio ou rollback e quais operações poderão ser executadas. Antes do conflito transações concorrentes não tem ordem de execução. O CCM escolhe uma vítima para sofrer rollback ou aplica alguma suposição. É possível melhorar esse método introduzindo alguma inteligência Heurísticas

Operações de controle do bloqueio Como podemos controlar o bloqueio de duas fases? Através de 4 combinações diferentes. Bloqueio simultâneo e liberação simultânea; Bloqueio incremental e liberação simultânea; Bloqueio simultâneo e liberação incremental; Bloqueio incremental e liberação incremental.

Operações de controle do bloqueio Bloqueio simultâneo e liberação simultânea Começo e fim do bloqueio Começo e fim da execução Começo e fim do desbloqueio Todas as operações são atômicas

Operações de controle do bloqueio Bloqueio Incremental e liberação simultânea Bloqueia Executa Bloqueia Executa desbloqueia Gera deadlock: pode haver um ciclo de transações, T1, T2, …, Tn, tal que cada Ti fica esperando que sua predecessora retire um bloqueio sobre algum objeto.

Operações de controle do bloqueio Bloqueio Simultâneo e liberação incremental Bloqueia Executa Desbloqueia Executa Desbloqueia Gera efeito cascading: para que um desbloqueio ocorra é necessário que outros desbloqueios ocorram.

Operações de controle do bloqueio Bloqueio Incremental e liberação incremental As fases de bloqueio, execução e desbloqueio são intercaladas. Gera efeito cascading e deadlock

Granularidade de bloqueio É o tamanho da unidade de bloqueio. Afeta o grau de concorrência Pode ser de dois tipos: Grosseira Um arquivo inteiro ou uma relação; Reduz o overhead e o grau de concorrência. Fina Dá origem ao problema fantasma; Aumenta o overhead e o grau de concorrência.

O problema fantasma Bloquear uma tupla ou um conjunto de tuplas que não exista no Banco de Dados, realizar alguma operação sobre este item de dado bloqueado e em seguida inseri-lo no BD.

O problema fantasma T2: bloqueia 100, bloqueia 200, bloqueia 300 T2: Read (Amount = 1000, Amount 2000 e Amount = 3000): T1: bloqueia 400 (registro fantasma) T2: Soma = 2000 + 3000 => 5000 TI: Insert (400, Lenexa, 4000) na tabela Account T2: Relatar a soma = 5000 “não foi incluído o novo insert * T1: desbloqueia 400 T2: desbloqueia 100, 200, e 300 T2: Commit TI: Commit.

O problema fantasma Como resolver o problema fantasma? Bloqueio do índice. Supõe um índice P para todas as instâncias de Lenexa; T1 bloqueia o índice P; T2 só pode acessar as instâncias de Lenexa quando T1 desbloquear o índice P. Importante: o bloqueio do índice pode ser explicado em termos de predicados – conjunto de atributos de uma relação.

Bloqueio com multigranularidade O que é o bloqueio com multigranularidade? Uma transação Ti bloqueia dados de uma maneira hierárquica. De granularidade mais grossa a granularidade mais fina. Para que serve o bloqueio com multigranularidade? Ajudar as transações que acessam e modificam grande volume de dados. Como é controlado os requerimentos do bloqueio com multigranularidade? Utilizando 5 modalidades de bloqueio. Read, Write, Intention Read, Intention Write, Read Intention Write.

Bloqueio com multigranularidade Seja o seguinte exemplo: uma transação Ti, que quer ler um arquivo 3 e o Tj que quer escrever R32. Então: 1. Ti, pretende ler ao arquivo 3, que é o nó raiz da base de dados, aplica o bloqueio ir a base de dados. 2. Aplica o bloqueio ir na área I. 3. Finalmente aplica o bloqueio r ao arquivo 3. 4. Tj aplica o bloqueio iw à base de dados com sucesso. 5. Aplica o bloqueio iw à área I com sucesso. 6. Ele não pode aplicar o iw ao arquivo 3 porque vai entrar em conflito com o bloqueio r do Ti (ver a matriz do conflito).

Bloqueio com multigranularidade Seja o seguinte exemplo: uma transação Ti, que quer ler um arquivo 3 e o Tj que quer escrever R32. Então: 7. O Ti libera r do arquivo 3. 8. T7 agora ajusta o iw no arquivo 3 e aplica w em R32. 9. Tk quer ler a área I e assim aplicar ir na base de dados qunado for possível. 10. Tenta ajustar o bloqueio de r na área 1 mas entra em conflito com o bloqueio de Tj (iw) (ver o matriz do conflito). 11. Espera o Tj para liberar seu bloqueio iw na área I

Bloqueio com multigranularidade

Abordagens heurísticas em esquemas de bloqueio Resolve o conflito Esquemas agressivos. Não resolve o efeito colateral do conflito. Deadlock, etc. Minimiza o tempo de espera de uma transação.

Esquemas Agressivos Espera Cautelosa Utiliza os conceitos de holder – transação que tem liberdade para manipular os dados – e requestor – transação que solicita os dados, mas não tem liberdade de manipulá-los. Destroe apenas o bloqueio do requestor e não do holder. Utiliza o algorítmo CW Nunca aborta o holder; A fila de espera de uma transação pode ser maior que 1. É livre de deadlock; Pode ser otimizado.

Esquemas Agressivos Prioridade de Execução Utiliza os conceitos de holder e requestor; Dá enfoque ao requestor. Se o holder estiver bloqueado ele é abortado.

Esquemas Agressivos Krishna Utiliza a idéia que transações durante sua vida de execução herdam um número de atributos, chamados de dinâmicos. Um subconjunto identifica o status da execução da transação. Número de vezes que uma transação foi bloqueada; Número de vezes que uma transação sofreu rollback; A transação que processa mais entidades tem a prioridade. Utiliza os seguintes conceitos: Esquema da resolução de conflitos; Conjunto de resolução de conflitos.

Esquemas Agressivos Krishna Importante: pode utilizar Esquema da resolução de conflitos Importante: pode utilizar o conceito de CRS.

Esquemas Agressivos Krishna Th = a transação holder Assim, o algoritmo de Krishna é defenido da seguinte forma: Th = a transação holder Tr = a transação requestor

Esquemas Agressivos Krishna Etapas da resolução de conflitos de Krishna

Desvantagens de esquemas baseados em bloqueio Por que esquemas baseados em bloqueio não são eficientes? Geram overhead; Tem que detectar e resolver deadlocks; Pouco mais de mil instruções tem que ser realizadas para executar bloqueio e desbloqueio.

Esquemas não baseados em bloqueio Utilizam o conceito de timestamp A ordem de execução das transações é definida antes que elas comecem a executar. Cada transação tem um único timestamp.

Esquemas não baseados em bloqueio O que timestamp traz de novo? Elimina o custo de bloqueio; Introduz mais flexibilidade.

Esquemas não baseados em bloqueio Esquema simples do Timestamping Cada transação é associada com um único timestamp – geralmente um inteiro; A transação coloca seu timestamp no dado solicitado; Caso o dado não tenha timestamp. É baseado na comparação do timestamp da transação e no timestamp do dado solicitado; Timestamp funciona como um bloqueio. Este esquema não funciona. “Bloqueios” de leitura e escrita não são diferenciados.

Esquemas não baseados em bloqueio Esquema básico do Timestamping Resolve o problema do “bloqueio” exclusivo; Associa dois timestamp com cada dado Para permitir leitura e escrita. Operação de leitura Timestamp da transação > timestamp de escrita dos dados. Operação de escrita timestamp da transação > timestamp dos dados. Trás problemas de overhead.

Metodologias Misturadas Mistura características do bloqueio em duas fases e do Timestamping. Reforça a exclusão mútua. Resolve conflitos. Existe dois mecanismos famosos: Wound-Wait e Wait-Die

Metodologias Misturadas Wound-Wait O holder mais jovem (maior timestamp) realiza rollback. Não bloqueia o requestor mais antigo => não ocorrência de deadlock. Ti = a transação holder Tj = a transação requestor

Metodologias Misturadas Wait-Die A ação é feita apenas no requestor. Um requestor sofre rollback se a operação é mais nova do que a operação do holder. O requestor mais recente sofre rollback => não ocorrência de deadlock. Ti = a transação holder Tj = a transação requestor

Metodologias das versões múltiplas Objetivos Minimizar o tempo de espera do requestor. Os pedidos dos dados sempre são fornecidos imediatamente. Funcionamento Cada operação de escrita gera uma nova versão dos dados. Cria versões de séries de tempo do dado Tarefa do esquema Identificar a melhor versão, a que possui serialização, e a reserva para a transação que solicitou os dados.

Mecanismo de controle de concorrência otimista É otimista porque acredita na eficiência e na esperança que os conflitos entre transações não ocorrerão; Objetivo Reduzir o overhead de bloqueio pela operação atraso de bloqueio. Funcionamento Utiliza três operações para executar uma transação Ler, Validar, Escrever Problema Gera overhead através das operações de rollback.

Bloqueio em duas fases para BDs Distribuídos Requer uma implementação diferente para o mecanismo de bloqueio em duas fases. Os itens de dados são diferentes. Existem três maneiras diferentes que um esquema de bloqueio de duas fases pode ser aplicadas a BDs distribuídos: Bloqueio de duas fases centralizado; Bloqueio da cópia primária; Bloqueio de duas fases distribuído.

Bloqueio em duas fases para BDs Distribuídos Bloqueio de duas fases centralizado. Um nó é responsável por controlar todas as atividades de bloqueio Um nó tem somente um gerente de bloqueio. Os itens de dados são diferentes. O nó gerente toma a decisão de bloqueio. Algoritmo Primary Site two-phase Utiliza uma determinada quantidade de nós para processar a transação; Possui um nó de coordenação; O restante dos nós são chamados de participantes.

Bloqueio em duas fases para BDs Distribuídos Bloqueio da cópia primária. Possui nós múltiplos; O nó gerente de bloqueio é responsável por um subconjunto dos dados; Quando uma cópia de um dado é bloqueado, então, no caso de replicação completa ou parcial, todas as cópias dos dados são implicitamente bloqueadas; Assim, cópia bloqueada dos dados serve como a cópia primária dos dados, já que é consistente.

Bloqueio em duas fases para BDs Distribuídos Bloqueio da duas fases distribuído. Todos os nós podem servir como gerente de bloqueio; Há partição da base de dados; Cada participante executa e controla uma parte da transação. No final do processamento emite uma mensagem “fim de processamento” ao coordenador.

Considerações Finais Esquemas baseados em bloqueio não são eficientes devido a possíveis ocorrências de deadlocks. Esquemas não baseados em bloqueios apresentam uma melhora em relação aos anteriores, mas apresenta problemas de overhead. A melhor solução para implementar mecanismos de controle de concorrência é utilizando metodologias misturadas com a presença de heurísticas.

Bibliografia Vijay Kumar, Mobile Database Systems, John Wiley & Sons,2006