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

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

1 Gabriel David FEUP - Rua dos Bragas, 4099 Porto Codex - PORTUGAL Tel. 351-2-2041842 - Fax: 351-2-319280 URL:

Cópias: 1
1 Gabriel David FEUP - Rua dos Bragas, 4099 Porto Codex - PORTUGAL Tel Fax: URL:

Apresentações semelhantes


Apresentação em tema: "1 Gabriel David FEUP - Rua dos Bragas, 4099 Porto Codex - PORTUGAL Tel. 351-2-2041842 - Fax: 351-2-319280 URL:"— Transcrição da apresentação:

1 1 Gabriel David FEUP - Rua dos Bragas, 4099 Porto Codex - PORTUGAL Tel Fax: URL: Gestão de transacções m noções básicas m modelo simples m modelo elaborado m recuperação m marcas temporais

2 Concorrência - 2 Execução série - um programa de cada vez versus Execução concorrente - vários programas partilham o CPU Execução de programas Problema: garantir que os vários programas não interferem de forma inesperada

3 Concorrência - 3 Programas e BD m Transacção q uma execução de um programa q podem coexistir várias transacções do mesmo programa m Interacção transacção/BD q transacção lê dados da BD para o seu espaço de trabalho q cálculos feitos no espaço de trabalho completamente isolados q transacção escreve resultados do espaço de trabalho para a BD BD P1 P2 T1 T2 T3

4 Concorrência - 4 Tipos de acesso m Programas executados em série q modelo na cabeça do programador m Acesso simultâneo para leitura e escrita q sistema de reservas - Programa: READ A; A=A+1; WRITE A; q Problema da actualização falhada: dois acessos diferentes reservarem o mesmo lugar m Acesso simultâneo só para leitura q recenseamento q sem interferência A(BD) T 1 :READ AA=A+1WRITE A T 2 :READ AA=A+1WRITE A A(T 1 ) A(T 2 )5566

5 Concorrência - 5 Propriedades das transacções m SGBD deve manter as propriedades ACID q atomicidade - as operações da transacção efectivam-se na BD ou todas ou nenhuma q consistência - transacção sozinha preserva consistência da BD q isolamento - as transacções apesar de concorrentes não interferem; para cada par T l - T k o efeito final é o de executar T l e depois T k, ou T k e depois T l q durabilidade - efeitos de uma transacção com sucesso persistem na BD mesmo em caso de avarias no sistema m consistência q primariamente um problema do programador da transacção q SGBD pode verificar automaticamente regras de integridade

6 Concorrência - 6 Atomicidade m Importante também para manter a consistência m Operação Transferência bancária T(valor, conta_origem, conta_destino) 1 READ conta_origem 2 conta_origem= conta_origem - valor 3 WRITE conta_origem 4 READ conta_ destino 5 conta_ destino = conta_ destino + valor 6 WRITE conta_ destino q interrupção em 4 deixa BD inconsistente m Razões para quebra de atomicidade q avaria de hardware q erro de software q bloqueio em competição por recursos

7 Concorrência - 7 Bloqueios m Isolamento entre transacções q dividir a BD em itens, recursos necessários para as transacções q item - unidade de dados, desde a BD à tabela, linha ou campo q controlo de acesso através do bloqueio de itens m Gestor de bloqueios q regista, para cada item I, quais as transacções que estão a ler ou escrever alguma parte de I q controla o acesso de uma segunda transacção, de acordo com uma determinada política q granularidade dos itens condiciona peso da gestão de bloqueios; transacção típica deve bloquear poucos itens m Bloqueio (lock) q é um privilégio de acesso a um item q primitiva de sincronização

8 Concorrência - 8 Gestão da concorrência m Controlar item com bloqueio q pedir bloqueio de A antes da leitura q outras transacções que tentem bloquear A esperam q desbloquear A depois da escrita m Reserva de lugar q Programa: LOCK A; READ A; A=A+1; WRITE A; UNLOCK A; q garante isolamento A(BD) T 1 :LOCK AREAD AA=A+1WRITE AUNLOCK A T 2 :LOCK A … A(T 1 )56666 A(T 2 )67

9 Concorrência - 9 Problemas m Bloqueio activo (livelock) q T 1 e T 2 pedem bloqueio de A; T 1 obtém; T 3 pede bloqueio de A; quando T 1 desbloqueia, T 3 é servido e T 2 fica à espera… q hipótese de resolução: servir sempre o pedido mais antigo m Encravamento (deadlock) T 1 : LOCK A; LOCK B; UNLOCK A; UNLOCK B; T 2 : LOCK B; LOCK A; UNLOCK B; UNLOCK A; q T1 bloqueia A e T2 bloqueia B; ambos ficam parados à espera que o outro desbloqueie q hipótese 1: obrigar a transacção a pedir todos os bloqueios de uma vez e o gestor concede todos ou nenhum q hipótese 2: atribuir uma ordem aos itens e os pedidos de bloqueio serem feitos por essa ordem q hipótese 3: não prevenir; SGBD verifica se há encravamento e aborta uma das transacções

10 Concorrência - 10 Escalonamento m Escalonamento de um conjunto de transacções q ordem de execução dos passos elementares das várias transacções q T 1 : READ A; A=A-10; WRITE A; READ B; B=B+10; WRITE B; q T 2 : READ B; B=B-20; WRITE B; READ C; C=C+20; WRITE C; T 1 T 2 READ A A=A-10 WRITE A READ B B=B+10 WRITE B READ B B=B-20 WRITE B READ C C=C+20 WRITE C T 1 T 2 READ A READ B A=A-10 B=B-20 WRITE A WRITE B READ B READ C B=B+10 C=C+20 WRITE B WRITE C T 1 T 2 READ A A=A-10 READ B WRITE A B=B-20 READ B WRITE B B=B+10 READ C WRITE B C=C+20 WRITE C (B=B-10) (B=B+10)

11 Concorrência - 11 Seriabilidade m Escalonamento série (caso ) q todos os passos de cada transacção executados consecutivamente m Escalonamento serializável (caso ) q efeito equivalente a um qualquer escalonamento série m Escalonamento não serializável (caso ) q a evitar (!), mas sem olhar para expressões calculadas, apenas para a sequência de operações e bloqueios m Escalonador q parte do SGBD que arbitra conflitos entre transacções q recebe informação do gestor de bloqueios q evita bloqueio activo, encravamento e não seriabilidade q fica facilitado se as transacções seguirem protocolos adequados q escalonamento legal se não violar bloqueios

12 Concorrência - 12 Modelo simples m Assume-se que bloquear implica ler e desbloquear escrever q modelo simples é não fatal: pode impedir escalonamentos serializáveis, mas não aceita não serializáveis m Teste de seriabilidade de um escalonamento q criar um grafo dirigido cujos nós são as transacções q para cada passo T k : UNLOCK A m, se existir a seguir um passo T l : LOCK A m, desenhar um arco de T k para T l. q escalonamento serializável se não houver ciclos no grafo q as setas indicam a ordem de um escalonamento série equivalente (ordenação topológica)

13 Concorrência - 13 Teste de seriabilidade m Não serializável q T 2 deve correr antes de T 1 e vice-versa T 1 T 2 T 3 LOCK A LOCK B LOCK C UNLOCK B LOCK B UNLOCK A LOCK A UNLOCK C UNLOCK A LOCK A LOCK C UNLOCK B UNLOCK C UNLOCK A T3T3 T2T2 T1T1

14 Concorrência - 14 m Problema: garantir a seriabilidade q combinação escalonador + protocolo q protocolo de bloqueio em duas fases: todos os bloqueios (1ª fase) são pedidos antes de todos os desbloqueamentos (2ª fase) q trabalho do escalonador: basta conceder o bloqueio se estiver disponível e suspender ou abortar a transacção caso não esteja, isto é, só se verifica a legalidade da transacção q garante-se que qualquer escalonamento legal é serializável q um escalonamento série correspondente é o dado pela ordem dos pontos de bloqueio das várias transacções ponto de bloqueio é o instante em que ocorre o último bloqueio; considera-se que todo o processamento ocorre nesse instante, antes de começar a desbloquear q verificar coerência com grafo de seriabilidade T 2 (pág anterior) não respeita bloqueio em duas fases Bloqueio em duas fases

15 Concorrência - 15 Contra-exemplo m T 1 não é de duas fases não serializável q T 1 : LOCK A; UNLOCK A; LOCK B; UNLOCK B q T 2 : LOCK A; LOCK B; UNLOCK A; UNLOCK B q T 1 T 2 LOCK A … UNLOCK A LOCK A LOCK B UNLOCK A UNLOCK B LOCK B UNLOCK B m conclusão: bloqueio em duas fases é óptimo T1T1 T2T2


Carregar ppt "1 Gabriel David FEUP - Rua dos Bragas, 4099 Porto Codex - PORTUGAL Tel. 351-2-2041842 - Fax: 351-2-319280 URL:"

Apresentações semelhantes


Anúncios Google