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

Slides:



Advertisements
Apresentações semelhantes
Coerência de Cache em Multiprocessadores
Advertisements

Checkpoint SGBD com alta demanda de transações Checkpoint
Programação em Java Prof. Maurício Braga
Software Básico Silvio Fernandes
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Requisitos dos SGBD Recuperação/Tolerância a Falhas
Aula 3 Requisitos dos SGBD
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
© Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,
© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara.
Recuperação Como garantir a integridade da informação, em caso de avarias de HW ou SW forma de suportar a reposição de um estado consistente da informação.
Pesquisa em profundidade
Bloqueios partilhados
Gestão de transacções noções básicas modelo simples modelo elaborado
Problemas de fluxo numa rede
1 Domínios Finitos A eficiência das programas em domínios finitos (incluindo booleanos) podem ainda ser melhoradas pelo uso de Algoritmos de Propagação.
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Transações Atômicas Distribuídas
Transações Atômicas Distribuídas
Cap Recuperação Pretende garantir a atomicidade e durabilidade das transações. Atomicidade => É responsabilidade do gerente de recuperação voltar.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Árvores.
Arquivos Seqüenciais Inhaúma Neves Ferraz
Estatística Básica Utilizando o Excel
Controle de Concorrência em Sistemas Distribuídos
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Gerência de Memória Algoritmos de Substituição de Páginas
Critérios gerais de classificação da prova de Matemática B – Prova 735.
Programação Baseada em Objectos Desenho de TAD
RECUPERAÇÃO APÓS FALHA
Classes e objetos P. O. O. Prof. Grace.
Sistemas Operacionais
Sistemas Operacionais
Timken Store Brasil Denis Guimarães.
Gerenciamento de Transações - Introdução
Estruturas de Dados com Jogos
MEN - Mercados de Energia Mestrado em Engenharia Electrotécnica
Controle de Concorrência em Transações Álvaro Vinícius de Souza Coêlho
Data Replication and Resiliency Trabalho realizado por: Rui Ferreira Nº Eng. Informática.
Prof. Alessandro Gonçalves
Transações Prof: Galina
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Projeto de Banco de Dados
Fiabilidade de Sistemas Informáticos Acções Atómicas
Conceitos básicos em grafos
Controle Distribuído da Concorrência
Exercícios SGBD - CESPE
Transações Atômicas Distribuídas Prof. Alcides Calsavara
Controle de concorrência
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Controle de Concorrência Locks. Conceito de Transação Transações podem ser vistas como um grupo de operações combinadas em uma unidade lógica de trabalho.
Planilha Eletrônica - Excel
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
Transações Concorrentes
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
SISTEMAS DISTRIBUÍDOS Transações Atômicas
Falhas.
Sistemas Operacionais
Protocolo de Bloqueios
Controle de Concorrência
PostGres - Transacções
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Faculdade Pernambucana - FAPE Sistemas Operacionais Prof. Flávio Gonçalves da Rocha.
Weyler N M Lopes © Especialização em Banco de Dados Página 1 BANCO DE DADOS AULA - 07.
Grafcet & Partilha de Recursos MIEEC | Automação | 2007/08 Grafcet & Partilha de recursos José António Faria & Armando Sousa.
Transcrição da apresentação:

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

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

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

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

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

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

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

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

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

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)

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

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)

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

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

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

Concorrência - 16 Bloqueios partilhados m Elaborar o modelo para aumentar a concorrência m distinguir transacções que não alteram a BD m bloqueio partilhado (ou de leitura) RLOCK A q pedido por transacções que só pretendam ler o item q impede outra transacção de escrever q pode haver mais transacções com RLOCK em A m bloqueio exclusivo (ou de escrita) WLOCK A q pedido por transacções que pretendam escrever o item q idêntico ao do modelo simples: mais nenhum bloqueio é aceite q transacção com RLOCK pode pedir um WLOCK m UNLOCK desbloqueia ambos

Concorrência - 17 Novo teste de seriabilidade m Escalonamentos equivalentes q produzem o mesmo valor para cada item q cada bloqueio partilhado ocorre em ambos os escalonamentos em momentos em que o item tem o mesmo valor m Teste de seriabilidade com bloqueios partilhados q criar um grafo dirigido cujos nós são as transacções q para cada passo T k : RLOCK A m ou WLOCK A m, se existir a seguir um passo T l : WLOCK A m, com k l, desenhar um arco de T k para T l. q para cada passo T k : WLOCK A m, se a seguir a T k desbloquear A m e antes de outro WLOCK A m existir um passo T l : RLOCK A m, com k l, desenhar um arco de T k para T l. q escalonamento serializável se não houver ciclos no grafo q ordenação topológica é um escalonamento série equivalente

Concorrência - 18 Exemplo q Bloqueio em duas fases garantiria escalonamento serializável T 1 T 2 T 3 T 4 WLOCK A RLOCK B UNLOCK A RLOCK A UNLOCK B WLOCK B RLOCK A UNLOCK B WLOCK B UNLOCK A WLOCK A UNLOCK B RLOCK B UNLOCK A UNLOCK B T3T3 T2T2 T1T1 T4T4 Não serializável

Concorrência - 19 Recuperação de falhas m Razões para ocorrerem falhas 1 falha na transacção (interrupção do utilizador; divisão por zero; tentativa de acesso a dados não autorizados) 2 deadlock: o escalonador aborta a transacção para libertar outras 3 transacção abortada para garantir a seriabilidade 4 erro de hardware ou de software provoca falha no SGBD m falhas que envolvam destruição de memória permanente podem exigir recurso ao arquivo de dados (backup) m pretende-se que o SGBD seja resistente aos outros tipos de falhas (quer nos casos de falha de só uma transacção, quer nos de falha do sistema)

Concorrência - 20 Cometimento m Transacção q activa - ainda em processamento q completa - já não é possível abortar pelas razões (1) a (3) q terminada m Ponto de cometimento q momento em que todos os bloqueios estão obtidos e todo o processamento está efectuado q esse momento é marcado por uma instrução COMMIT m Dados sujos q são dados escritos na BD antes de a transacção ter cometido q outra transacção que leia tais dados arrisca-se a ficar com valores inconsistentes, no caso de a primeira abortar

Concorrência - 21 Leitura de dados sujos m Ocorrendo uma falha no passo (14) é preciso 1 - remover o bloqueio em B 2 - repor o valor de A anterior ao início de T 1 (jornal) 3 - (uma vez que o valor de A lido por T 2 está errado) desfazer todos os efeitos de T 2 e voltar a corre-la 4 - se alguma transacção T 3 tiver lido algum valor alterado por T 2, também terá que ser desfeita, etc. T 1 T 2 (1)LOCK A (2)READ A (3)A:= A-1 (4)WRITE A (5) LOCK B (6)UNLOCK A (7)LOCK A (8)READ A (9)A:= A*2 (10)READ B (11)WRITE A (12)COMMIT (13)UNLOCK A (14)B:=B/A

Concorrência - 22 Bloqueio em duas fases estrito m O fenómeno de ter que desfazer (rollback) várias transacções devido à falha de uma designa-se desfazer em cascata m protocolo de bloqueio em duas fases estrito q uma transacção não pode escrever na BD até atingir o ponto de cometimento q não se liberta nenhum bloqueio até se acabar de escrever na BD m a primeira condição é necessária se não se conseguir repor valores antigos de itens em caso de falha m este protocolo evita a necessidade de suportar desfazer em cascata

Concorrência - 23 Aspectos de desempenho m Compromisso entre (1) obter a melhor taxa de execução (throughput) - número de transacções terminadas por unidade de tempo, para uma determinada mistura de transacções (2) conseguir que cada transacção individual termine sem excessivo atraso m Para melhorar (1) q minimizar o overhead do escalonador (bloqueios, sequenciação de transacções, detecção de encravamentos) q minimizar o tempo gasto em transacções que acabam por abortar e a eliminar bloqueios que sobraram q minimizar o tempo gasto a repor a BD em caso de desfazer em cascata (se o protocolo não for de duas fases estrito)

Concorrência - 24 Início da transacção m Já se viu como disciplinar o fim das transacções q ponto de cometimento q e o início? Depende dos casos. m Protocolo agressivo q escalonador simples e rápido mesmo que acabe por cair numa situação em que deva abortar q espera-se que o tempo a resolver encravamentos seja menor que o que seria gasto a gerir os bloqueios m Protocolo conservador q evita-se fazer a primeira parte da transacção se não houver garantias de ela se possa completar

Concorrência - 25 Protocolo conservador m Transacção começa por pedir, no início, todos os bloqueios de que vai necessitar e ou são todos concedidos ou nenhum e vai para fila de espera q problema: bloqueio activo (pode haver sempre uma transacção a bloquear um dos itens requeridos em cada momento) q exemplo do cálculo do saldo global de uma agência bancária pode haver sempre um movimento a ser efectuado política FIFO pode pendurar transacções pequenas até a grande poder avançar é necessário ver se cada transacção está a pedir recursos que estejam bloqueados ou que virão a ser bloqueados por transacções mais antigas na fila de espera q pedir os bloqueios a priori pode obrigar a bloquear demais bloquear toda uma tabela em vez de apenas os blocos que ao longo do processamento do índice se mostrarem relevantes

Concorrência - 26 Protocolo agressivo m Transacção pede bloqueio num item mesmo antes de o ler ou escrever q primeiro RLOCK e depois, antes de escrever, WLOCK q continua a desbloquear só depois de todos os bloqueios (2 fases) q continua a desbloquear só depois de estar tudo escrito na BD (2 fases estrito) q sujeito a encravamento por pedido cruzado de dois itens q novo tipo de encravamento: duas transacções que detenham RLOCK no mesmo item e peçam ambas a respectiva promoção a bloqueios de escrita m Como escolher? q depende do padrão de bloqueios típico probabilidade de bloqueio simultâneo do mesmo item baixa agressivo ocorrência frequente de bloqueios não disponíveis conservador

Concorrência - 27 Recuperação m Como garantir a integridade da informação, em caso de avarias de HW ou SW q forma de suportar a reposição de um estado consistente da informação na memória estável (BD em disco) q suportar tecnicamente metáfora da atomicidade das transacções m Falhas mais graves q avaria do meio de armazenamento ou memória estável q recuperação baseada em reposição de cópias de segurança m Falhas menos graves q falhas do sistema (corte de alimentação) que afectam a memória volátil q há técnicas para lidar com estas situações

Concorrência - 28 O jornal da BD m técnica base: construir um jornal (log) para registar as alterações na BD, com linhas dos tipos: q (T, begin) marca início da transacção T q (T, I, a, v) para cada escrita do valor v no item I o valor anterior a é necessário no caso de se pretender desfazer T codificar apenas alterações no caso de o item ser muito grande q (T, commit) no ponto de cometimento q (T, abort) em caso de cancelamento

Concorrência - 29 Análise do jornal m Exemplo de jornal: passo entrada antes de (1)(T 1, begin) (4) (T 1, A, 10, 9) antes de (7) (T 2, begin) (11) (T 2, A, 9,18) (12) (T 2 commit) depois de (14) (T 1, abort) m após a falha, a rotina de recuperação analisa o jornal q conclui que T 1 abortou ou pelo menos nunca chegou ao cometimento q os seus efeitos têm que ser desfeitos q valor antigo requerido para repor situação inicial q relançar T 1 q T 2 tem também que ser desfeita e relançada implica registar leituras e ligar transacção ao código respectivo T 1 T 2 (1)LOCK A (2)READ A (3)A:= A-1 (4)WRITE A (5) LOCK B (6)UNLOCK A (7)LOCK A (8)READ A (9)A:= A*2 (10)READ B (11)WRITE A (12)COMMIT (13)UNLOCK A (14)B:=B/A

Concorrência - 30 Protocolo Refazer m Objectivo: nunca desfazer transacções q refina protocolo de duas fases estrito m Acções ao atingir o cometimento da transacção T 1) para cada item I alterado para o valor v pôr no jornal (T,I,v) 2) acrescentar (T, commit) 3) escrever em memória estável os blocos do jornal que faltarem - aqui T fica cometida 4) para cada item I escrever o seu valor na BD pode apenas significar trazer para a memória central o bloco que contém I e actualizá-lo, ficando a escrita dependente da política de paginação

Concorrência - 31 Algoritmo de recuperação m Examina o jornal e repõe a BD num estado consistente q resulta da aplicação de determinada sequência de transacções q o sistema deve libertar os bloqueios existentes na altura da falha m Aplica-se a transacções que sigam o protocolo refazer q examinar o jornal inversamente, determinando as transacções T com entrada (T, commit) q transacções não cometidas ou com uma entrada (T, abort) ignoram-se é como se não tivessem existido; registando qual o procedimento e parâmetros é possível relançar a transacção depois de estabilizar q percorrer o jornal desde o início e, para cada entrada (T, I, v) de uma transacção cometida, escrever v no item I da BD m Refazer reaproveita todo o cálculo efectuado; relançar desperdiça-o e repete a transacção

Concorrência - 32 Transacção e jornal q Transacção que segue o protocolo refazer cálculos entre (3) e (4) escrita no jornal deve ser efectivada em disco mal a transacção esteja cometida, entre (6) e (7) actualização da BD pode ter um algoritmo mais elaborado de paginação q Recuperar falha antes de (6) - ignorada (relançar T) falha depois de (6) - refazer (4) e (5) Tjornal (1) (T, begin) (2)LOCK A (3)LOCK B (4)(T,A,v) (5)(T,B,w) (6)(T, commit) (7)WRITE A (8)WRITE B (9)UNLOCK A (10)UNLOCK B

Concorrência - 33 Ponto de verificação m Até onde percorrer o jornal numa recuperação? m Operação de verificação (checkpoint) q proibir o início de transacções e esperar que as activas estejam cometidas ou abortem q copiar os blocos alterados na memória central para memória estável q registar no jornal o ponto de verificação e escrever o jornal m Só é necessário analisar o jornal até ao último ponto de verificação, para recuperar de uma falha q a parte anterior do jornal só interessa para arquivo de segurança

Concorrência - 34 Falha no disco m Avaria no meio de armazenamento q manter cópias de segurança ou arquivo em linha (replicação) q a cópia de segurança é feita após um ponto de verificação q usar discos distintos e em locais distintos q ter duas cópias do jornal em locais distintos q recuperar é repor a última cópia geral, as incrementais seguintes e aplicar a recuperação ao jornal (refazer) desde essa altura

Concorrência - 35 Marcas temporais m Manutenção da seriabilidade sem bloqueio em duas fases q podia-se construir o grafo de dependências nas leituras e escritas e impedir o aparecimento de ciclos - não prático q associar a cada transacção um instante correspondente ao seu início; escalonamento deve garantir que a ordem desses instantes é a respectiva ordem série equivalente T 1 T 2 (1)READ B (2)READ A (3)WRITE C (4)WRITE C T 1 T 2 T 3 (1)READ A (2) READ A (3)READ D (4)WRITE D (5)WRITE A (6)READ C (7)WRITE B (8)WRITE B Serializável por bloqueios [e não ao contrário] serializável por instantes

Concorrência - 36 Reforçar a seriabilidade m Objectivo do escalonamento com marcas temporais q resultado final equivalente a executar a transacção toda no instante atribuído q associar a cada item o instante da transacção que fez a última leitura e a última escrita m Proibido q transacção com instante t 1 ler item com instante de escrita t 2 > t 1 q transacção com instante t 1 escrever num item com instante de leitura t 2 > t 1 m Transacção que tentasse furar o esquema seria abortada e reiniciada q problema da leitura de dados sujos q possibilidade de desfazer em cascata

Concorrência - 37 Controlo por marcas temporais m Indicam-se os valores iniciais dos instantes das marcas q T 2 forçada a abortar: tentava, com T 2 =150, escrever num dado já lido no futuro TL=200. T 1 T 2 T 3 A B C TL=0TL=0TL=0 TE=0TE=0TE=0 (1)READ BTL=200 (2)READ A TL=150 (3) READ CTL=175 (4)WRITE B TE=200 (5)WRITE ATE=200 (6)WRITE C T2 aborta (7) WRITE A