A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Introdução a Mecanismos de controle de concorrência UFCG - COPIN Disciplina: Banco de Dados Professor: Marcus Sampaio Aluna: Kézia de V. Oliveira."— Transcrição da apresentação:

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 Todas as operações são atômicas Começo e fim do bloqueio Começo e fim da execução Começo e fim do desbloqueio

11 Operações de controle do bloqueio Bloqueio Incremental e liberação simultânea 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. BloqueiaExecutaBloqueiaExecutadesbloqueia

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

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 = => 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; T 1 bloqueia o índice P; T 2 só pode acessar as instâncias de Lenexa quando T 1 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 T i 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 T i, que quer ler um arquivo 3 e o T j que quer escrever R 32. 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 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 T i, que quer ler um arquivo 3 e o T j que quer escrever R 32. Então: 7. O Ti libera r do arquivo T7 agora ajusta o iw no arquivo 3 e aplica w em R 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: T h = a transação holder T r = 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. T i = a transação holder T j = 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. T i = a transação holder T j = 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 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.

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


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

Apresentações semelhantes


Anúncios Google