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

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

CONTROLE DE CONCORRÊNCIA

Apresentações semelhantes


Apresentação em tema: "CONTROLE DE CONCORRÊNCIA"— Transcrição da apresentação:

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 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 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 Transações Matricule (m,c) Início_Trans
M1 LER 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 Transações Cancele (c) Início_Trans
C1 Delete t de Cursos onde Código = c; C2 Delete as tuplas de Turmas onde Código= c; Fim_Trans. Liste (m) L1 LER 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; OBS: As transações preservam consistência de forma isolada ou com mecanismos de controle.

6 Exemplos Considere a seguinte seqüência de operações: M11 M21 M31 L1 L2 C1 C2 M12 M22 M32 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 2o critério de consistência caso o curso Cancelado seja o mesmo que o matriculado.

7 Exemplos EXEMPLO 2: L1 C1 C2 L2
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 EXEMPLO 3: Considere que um determinado curso esteja cadastrado na relação Curso. Suponha a execução concorrente que segue: M11 M12 M22 M32 M21 M31 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 M31 sobrepõe com o mesmo valor incrementado o atributo NumMatr produzido pela transação 2.

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 Seriais Considere as seguintes transações e as possíveis execuções seqüenciais : T0 : Read (A) T1 : Read (A) A: A x: A * 0.1 Write (A) A: A – x Read (B) Write (A) B: B Read (B) Write (B) B: B +x Write (B) Valores A B Iniciais 1000 2000 T T1 855 2145 T T0 850 2150

11 Não-Seriais T0 T1 Valores A B Iniciais 1000 2000 T0 T1 950 2100
Read (A) A: A 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 Valores A B Iniciais T T

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

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 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 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 : Ri(x) - para operação de leitura do item x realizada pela transação i. Wi(x) - para operação de gravação do item x realizada pela transação i.

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 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 B: B-10 WRITE (A) WRITE (B) READ(B) READ(A) B: B 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) Valores INICIAIS : A = B= 2000 FINAIS : A = B= 2040

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: Para cada item Q, se a transação Ti lê o valor produzido por Tj no escalonador E então no escalonador E’ precisa também ocorrer o mesmo; Para cada item Q, se a transação Ti lê o valor inicial de Q no escalonador E então no escalonador E’ precisa também ler o valor inicial de Q; 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 Exemplos: EX: E9: R2(Q) W3(Q) W2(Q) W4(Q) E9  Serial <T2,T3,T4>
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 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 Exemplos Ti  Tj  Tk  Tn Ti  Tk  Tj  Tn T0 T1 T1 T0 Ti TJ TK Tn
Ordens parciais obtidas do grafo de precedência: Ti  Tj  Tk  Tn Ti  Tk  Tj  Tn

22 Verificando a seriabilidade em visões
Considere o escalonador E9 : R2(Q) W3(Q) W2(Q) W4(Q) T T3 T Não serializável em conflito mas, serializável em visão ao escalonador <T2,T3,T4>. 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 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 Regras de Compatibilidade
Compartilhado Quando o item desejado não esta bloqueado por nenhuma transação ou esta bloqueado em modo compartilhado. Exclusivo Somente quando o item desejado não esta bloqueado

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 Exemplos Valores Iniciais: A=100 B=200 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) Valores Iniciais: A=100 B=200 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

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

28 Protocolo de Bloqueio Bifásico (2PL)
A execução concorrente de transações é correta se observada as seguintes regras: Transações bem formadas Regras de compatibilidade de bloqueio são obedecidas 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 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 2PL C-Ex: T7 e T8

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 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 Detecção de Impasses Grafo Wait-for T5 T6 T8 Sem impasse T7
T T6 Com impasse


Carregar ppt "CONTROLE DE CONCORRÊNCIA"

Apresentações semelhantes


Anúncios Google