1 / 44

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

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;

lacy
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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

  9. 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.

  10. 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

  11. 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.

  12. 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.

  13. 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

  14. 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.

  15. 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.

  16. 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.

  17. 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.

  18. 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.

  19. 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).

  20. 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

  21. Bloqueio com multigranularidade

  22. 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.

  23. 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.

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

  25. 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.

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

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

  28. Esquemas Agressivos • Krishna • Etapas da resolução de conflitos de Krishna

  29. 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.

  30. 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.

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

  32. 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.

  33. 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.

  34. 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

  35. 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

  36. 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

  37. 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.

  38. Mecanismo de controle de concorrência otimista • É otimista porqueacredita 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.

  39. 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.

  40. 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.

  41. 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.

  42. 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.

  43. 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.

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

More Related