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

Apresentações semelhantes


Apresentação em tema: "Introdução a Mecanismos de controle de concorrência"— 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 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 = => 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 Importante: pode utilizar
Esquema da resolução de conflitos Importante: pode utilizar o conceito de CRS.

27 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

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

Apresentações semelhantes


Anúncios Google