introdução a mecanismos de controle de concorrência ufcg - copin disciplina: banco de dados...

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

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 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

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

UFCG - COPINDisciplina: Banco de DadosProfessor: Marcus SampaioAluna: Kézia de V. Oliveira

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

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

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.

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

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.

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

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.

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

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.

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

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.

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

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

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

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.

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

Operações de controle do bloqueio

Bloqueio simultâneo e liberação simultânea

Todas asoperações são atômicas

Começo e fim do bloqueio

Começo e fim da execução

Começo e fim do desbloqueio

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

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

Bloqueia Executa Bloqueia Executa desbloqueia

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

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.

Bloqueia Executa Desbloqueia Executa Desbloqueia

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

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

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

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.

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

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.

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

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 300T2: Commit TI: Commit.

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

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.

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

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.

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

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

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

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

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

Bloqueio com multigranularidade

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

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.

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

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.

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

Esquemas Agressivos

Prioridade de Execução Utiliza os conceitos de holder e requestor;

Dá enfoque ao requestor.

Se o holder estiver bloqueado ele é abortado.

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

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.

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

Esquemas Agressivos

Krishna Esquema da resolução de conflitos

Importante: pode utilizar

o conceito de CRS.

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

Esquemas Agressivos

Krishna Assim, o algoritmo de Krishna é defenido da

seguinte forma:

Th = a transação holder

Tr = a transação requestor

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

Esquemas Agressivos

Krishna Etapas da resolução de conflitos de Krishna

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

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.

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

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.

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

Esquemas não baseados em bloqueio

O que timestamp traz de novo? Elimina o custo de bloqueio;

Introduz mais flexibilidade.

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

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.

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

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.

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

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

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

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

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

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

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

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

Bibliografia

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