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

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

1 CONTROLE DE CONCORRÊNCIA Exigência de consistência de transações que executem isoladamente. A execução simultânea de transações, pode ocasionar problemas.

Apresentações semelhantes


Apresentação em tema: "1 CONTROLE DE CONCORRÊNCIA Exigência de consistência de transações que executem isoladamente. A execução simultânea de transações, pode ocasionar problemas."— Transcrição da apresentação:

1 1 CONTROLE DE CONCORRÊNCIA Exigência de consistência de transações que executem isoladamente. A execução simultânea de transações, pode ocasionar problemas mesmo que a exigência anterior seja mantida caso não exista controle de concorrência. Estes problemas são denominados Anomalias de Sincronismo.

2 2 Anomalias de Sincronismo Perda de Consistência. Acesso a dados inconsistentes. Perda de atualizações. Exemplos: Considere os seguintes esquemas. CURSOS [ Código, Nome, NumMatr ] TURMAS [Código, Matricula]

3 3 Critérios de Consistência C1 - O código de cada curso é único. C2 -Todo o código existente em Turmas deve estar presente em Cursos. C3-O atributo NumMatr presente em Turmas indica o número de alunos matriculados em cada curso,

4 4 Transações Matricule (m,c) Início_Trans M1LER t de Cursos onde Código = c; Se existe t então M2 GRAVE a tupla (m,c) em Turmas; NumMatr = NumMatr + 1; M3 GRAVE t em Cursos; Fim se Fim_Trans.

5 5 Transações Cancele (c) Início_Trans C1Delete t de Cursos onde Código = c; C2Delete as tuplas de Turmas onde Código= c; Fim_Trans. Liste (m) Início_Trans L1LER as tuplas de Turmas onde Matricula= m; Liste tuplas lidas; L2 LER as tuplas de Cursos onde o código seja igual aos códigos lidos anteriormente ; Liste tuplas; Fim_Trans. OBS: As transações preservam consistência de forma isolada ou com mecanismos de controle.

6 6 Exemplos Considere a seguinte seqüência de operações : M1 1 M2 1 M3 1 L1 L2 C1 C2 M1 2 M2 2 M3 2 Esta seqüência determina uma execução serial. EXEMPLO 1: Supondo a existência inicial de um determinado curso e a seguinte execução de comandos: M1 C1 C2 M2 M3 Nota-se que execução viola o 2 o critério de consistência caso o curso Cancelado seja o mesmo que o matriculado.

7 7 Exemplos EXEMPLO 2: Suponha que na relação Turmas exista um certo aluno matriculado em uma determinada disciplina. Considere uma execução concorrente a seguir: L1 C1 C2 L2 A transação Liste é inconsistente caso a transação Cancele exclua o curso listado

8 8 EXEMPLO 3: Considere que um determinado curso esteja cadastrado na relação Curso. Suponha a execução concorrente que segue: M1 1 M1 2 M2 2 M3 2 M2 1 M3 1 Esta execução causa uma inconsistência no BD, pois como o valor lido pelas 2 transações é o mesmo a ação do comando M3 1 sobrepõe com o mesmo valor incrementado o atributo NumMatr produzido pela transação 2.

9 9 Escalonadores Notação: READ(Q) Lê o conteúdo do item Q para a variável q do programa. WRITE(Q) Grava o valor de q no item Q.

10 10 Seriais Considere as seguintes transações e as possíveis execuções seqüenciais : T 0 : Read (A)T 1 : Read (A) A: A-50 x: A * 0.1 Write (A) A: A – x Read (B) Write (A) B: B + 50 Read (B) Write (B) B: B +x Write (B) ValoresAB Iniciais T 0 T T 1 T

11 11 Não-Seriais T 0 T 1 Read (A) A: A-50 Read (A) x: A * 0.1 A: A – x Write (A) Read (B) Write (A) Read (B) B: B + 50 Write (B) B: B +x Write (B) ValoresAB Iniciais T 0 T

12 12 Não-Seriais T0 T1 Read (A) A: A-50 Write (A) Read (A) x: A * 0.1 A: A – x Write (A) Read (B) B: B + 50 Write (B) Read (B) B: B +x Write (B) ValoresAB Iniciais T0 T

13 13 Conclusões: Seriais e Não-Seriais O número de escalonadores seriais válidos é n!, onde n é o número de transações a serem executadas. O número de escalonadores não-seriais válidos é possivelmente maior que n!. Nem sempre um escalonador não serial, concorrente, produz um resultado correto

14 14 Conclusões: Seriais e Não-Seriais Um resultado correto é obtido por escalonadores concorrentes sempre que o resultado obtido seja igual ao produzido por um escalonador serial. Quando o resultado de um par de operações é o mesmo,independente da ordem em que são executadas, diz-se que elas são comutáveis. As operações relevantes nos escalonadores são as de leitura e gravação.

15 15 Escalonadores com conflito de Seriabilidade Diz-se que duas operações são conflitantes se elas operam sobre o mesmo item de dados, sendo que no mínimo uma delas é uma gravação, e são emitidas por diferentes transações. Esquematicamente, considerando a última conclusão (slide anterior), usaremos a seguinte notação : R i (x) - para operação de leitura do item x realizada pela transação i. W i (x) - para operação de gravação do item x realizada pela transação i.

16 16 Escalonadores com Seriabilidade de conflito Se Ii precede Ij e são instruções diferentes e não conflitantes então pode-se trocar a ordem entre elas gerando-se assim um novo escalonador que diferem apenas na ordem destas operações. Exemplo : E5 : Ri(x), Rj(x),Wj(y), Wi(x) E6 : Rj(x),Wj(y), Ri(x), Wi(x) Escalonadores serializáveis em conflito Dois escalonadores são equivalentes, se para cada par de operações conflitantes Ii e Ij tal que Ii precede Ij em En então no escalonador Em esta precedência será mantida.

17 17 Contra Exemplo Dois escalonadores podem produzir o mesmo resultado e não serem equivalentes em conflito. P. ex: T0 : READ(A )T1 : READ(B ) A: A-50B: B-10 WRITE (A)WRITE (B) READ(B) READ(A) B: B +50 A: A +10 WRITE (B) WRITE (A) E8 : R0(A) W0(A) R1(B) W1(B) R0(B) W0(B) R1(A) W1(A) E9 : R0(A) W0(A) R0(B) W0(B) R1(B) W1(B) R1(A) W1(A) ValoresINICIAIS : A = 1000 B= 2000 FINAIS : A = 960 B= 2040

18 18 Escalonadores Equivalentes em Visão Dois escalonadores E e E, possuindo as mesmas transações, são ditos equivalentes em visão se obedecerem as seguintes condições: 1. Para cada item Q, se a transação T i lê o valor produzido por Tj no escalonador E então no escalonador E precisa também ocorrer o mesmo; 2. Para cada item Q, se a transação T i lê o valor inicial de Q no escalonador E então no escalonador E precisa também ler o valor inicial de Q; 3. Para cada item Q, a operação de gravação final de cada item deve ser praticado pela mesma transação em ambos escalonadores. Exemplos : Serial(S1) e Serial(S2) não equivalentes. Serial(S1) e E4 são equivalentes Um escalonador E é serializável em visão se ele for equivalente em visão a um escalonador serial

19 19 Exemplos: EX:E9: R2(Q) W3(Q) W2(Q) W4(Q) E9 Serial Todo escalonador serializável em conflito é serializável em visão mas a recíproca não é verdadeira. Ex:E9 OBS: as gravações executadas por T3 e T4 no escalonador E9 são denominadas cegas pois não realizam nenhuma leitura anterior. Estas aparecem em escalonadores serializáveis em visão que não sejam serializáveis em conflito

20 20 Verificando a seriabilidade de conflito Seja E um escalonador. Construímos um grafo de precedência de E. Este grafo consiste em um par G= (V,A), onde v é o conjunto de vértices e A um conjunto de arestas. Vértices representam transações presentes em E Arestas consistem precedências onde ocorre um das três situações: Ti executa W(Q) antes que Tj execute R(Q) Ti executa R(Q) antes que Tj execute W(Q) Ti executa W(Q) antes que Tj execute W(Q) Se a aresta Ti Tj existe no grafo de precedência,isto implica que em qualquer escalonador serializável E equivalente a E, Ti precisa aparecer antes de Tj.

21 21 Exemplos T0 T1 T1 T0 T0 T1 T i T J T K T n Ordens parciais obtidas do grafo de precedência: Ti Tj Tk Tn Ti Tk Tj Tn

22 22 Verificando a seriabilidade em visões Considere o escalonador E9 : R 2 (Q) W 3 (Q) W 2 (Q) W 4 (Q) T 2 T 3 T 4 Não serializável em conflito mas, serializável em visão ao escalonador. Isto ocorre porque aresta T3 T2 não deveria existir no grafo haja visto que os valores produzidos por T2 e T3 não são usados por outra transação e T4 produz o valor final. As instruções W(Q) produzidas por T2 e T3 são denominadas inúteis. Assim o esquema de grafo de conflito não serve para a verificação da seriabilidade em visão.

23 23 Protocolos Baseados em Bloqueio Idéia Básica Quando um transação acessa um item de dados deve antes bloqueá-lo, caso este já esteja bloqueado por outra transação deve esperar até que o item seja liberado Modos de Bloqueio Compartilhado lock-s LS Exclusivo lock-x LX

24 24 Regras de Compatibilidade 1. Compartilhado Quando o item desejado não esta bloqueado por nenhuma transação ou esta bloqueado em modo compartilhado. 2. Exclusivo Somente quando o item desejado não esta bloqueado

25 25 Transações Bem Formadas Aquelas que sempre bloqueiam o item de dados em modo compartilhado antes de lê-lo e sempre bloqueiam em modo exclusivo antes de gravá-lo Duas transações estão em conflito se elas desejam bloquear o mesmo item de dados em modos incompatíveis.

26 26 Exemplos T7: Lock-x (B) Read (B) B: B-50 Write (B) Unlock (B) Lock –x (A) Read (A) A: A + 50 Write (A) Unlock (A) T8:Lock-s (A) Read (A) Unlock (A) Lock-s (B) Read (B) Unlock (B) Display (A + B) Seja E14: LX7 (B) R7(B) W7 (B) UL7 (B) LS8 (A) R8 (A) UL8 (A) LS8 (B) R8 (B) UL8 (B) LX7 (A) R7 (A) W7 (A) UL7 (A) Inconsistente T8 lê A e B produzindo como resultado 250 Valores Iniciais: A=100 B=200

27 27 Exemplo T9: Lock-x (B) Read (B) B: B-50 Write (B) Lock–x (A) Read (A) A: A + 50 Write (A) Unlock (B) Unlock (A) T10:Lock-s (A) Read (A) Lock-s (B) Read (B) Display (A+B) Unlock (A) Unlock (B) Seja E15: LX9 (B) R9(B) W9 (B) LS10 (A) R10 (A) LS10 (B) LX9 (A) Impasse

28 28 Protocolo de Bloqueio Bifásico (2PL) A execução concorrente de transações é correta se observada as seguintes regras: 1. Transações bem formadas 2. Regras de compatibilidade de bloqueio são obedecidas 3. Cada transação após liberar um bloqueio não solicita um novo bloqueio A condição 3 pode ser expressa dizendo que as transações são Bifasicamente Bloqueadas

29 29 Fases do Protocolo Todas as transações devem obedecer as seguintes fases: Primeira Fase – Crescimento Durante a qual obtém seus bloqueios,mas não libera bloqueio algum. Segunda Fase – Retração Na qual os bloqueios são liberados mas nenhum bloqueio pode ser requerido EX: T9 e T10 são 2PLC-Ex: T7 e T8

30 30 Seriabilidade e Isolamento O 2PL garante a seriabilidade de transações A propriedade de isolamento só é alcançada caso todos os bloqueios exclusivos sejam até mantidos até a confirmação (commit). Tal como o esquema abaixo: Begin Transaction Aquisição de bloqueios antes de ler ou gravar Commit Libera bloqueios OBS: A vulnerabilidade do 2PL a impasses continua

31 31 Tratamento de Impasses Situação Métodos Algoritmo de Prevenção Algoritmo de Detecção e de Tratamento Prevenção Pré- Declaração – bloquear todos os itens Um item fica bloqueado por tempo excessivo Um item muito acessado pode causar postergação indefinida

32 32 Detecção de Impasses Grafo Wait-for T5 T6 T8 Sem impasse T7 T5 T6Com impasse T7


Carregar ppt "1 CONTROLE DE CONCORRÊNCIA Exigência de consistência de transações que executem isoladamente. A execução simultânea de transações, pode ocasionar problemas."

Apresentações semelhantes


Anúncios Google