Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDanilo Judice Alterado mais de 10 anos atrás
1
Introdução Gdes. bancos de dados: Concorrência: Transação:
múltiplos usuários múltiplas transações Concorrência: multiprocessamento multiprogramação Transação: unidade lógica com uma ou mais operações totalmente executada ou não-executada
2
Nec. de Controle de Concorrência
Lost Update Transação A - Transferência de R$50 da conta x para a conta y. Transação B - Retirada de R$20 da conta y. Transação A Transação B (1) read(x) (2) x := x - 50 (3) write(x) (4) read(y) (5) read(y) (6) y := y - 20 (7) y := y + 50 (8) write(y) (9) write(y) Suponhamos que o saldo da conta y tivesse R$15 antes das duas operações. Ao final, ao invés do valor esperado de R$45 ( ) ela terá R$ -5!
3
Dirty Read Transação A - Transferência de R$50 da conta x para a conta y. Transação B - Retirada de R$20 da conta x. Transação A Transação B read(x) x := x - 50 write(x) x := x - 20 read(y) abort A transação B foi realizada com base num dado escrito por uma transação que falhou. O valor de x não é mais válido (atomicidade de A).
4
Leitura não-repetida:
Agregação Incorreta Cálculo de função de agregação (soma, multiplic...) enquanto itens estão sendo atualizados Leitura não-repetida: Duas leituras de um mesmo item com valores diferentes (atualização do valor por outra transação)
5
Necessidade de Recuperação de Falhas
Falhas no computador Erros de transação ou do sistema Condições de exceção: cancelam. de trans. Imposição do controle de concorrência: “deadlocks” Falha de disco Problemas físicos e catástrofes Obs: Falhas 1 a 4: Mais comuns Manutenção de informações para recuperação
6
Estados da Transação Ativa Parcialmente comitted Committed Falhada
Terminada Fim trans. PARC. COMMITTED ATIVA Commit Abortar Abortar COMMITTED Início trans. FALHADA TERMINADA
7
Log e Commit Log grava operacões das transações: leitura, escrita, confirm. (commit) e aborto Commit Todas as operações executadas com sucesso Efeito de todas as operações registrado no log Grava-se registro de “commit” no log Possibilidade de desfazer ou refazer (se houve commit) com base no log
8
Propriedades Desejáveis de Transações
Propriedades de uma transação: Atomicidade Transações não podem ser executadas parcialmente. Consistência (Preservação da) Supõe-se que cada transação, isoladamente, preserva a consistência da base de dados. Independência Os resultados de uma transação não podem estar visíveis para as demais até que a primeira tenha terminado (Commit). Durabilidade Os resultados escritos por uma transação bem sucedida no BD não podem ser perdidos por falhas.
9
Escalonamento de Transações
Ordem de exec. de operações das transações concorrentes Respeita a ordenação relativa das operações de uma transição Operações de interesse: wi(X), ri (X): write e read do item x pela trans. i. ci,ai: commit e abort da trans. i Conflito de op. A e op. B A e B em diferentes trans. acessam mesmo item X Uma das op. é de escrita
10
Escalonamento Completo
Inclusão de todas as operações de todas as trans. Última op. de cada trans. é commit ou abort Manut. da ordem original entre ops. de uma mesma transação P/ quaisquer ops. conflitantes: ordem definida (obs: escalonamento poderia estabelecer apenas ordem parcial)
11
Caracterizando Escalon. c/ base na Recup.
Recuperáveis: Transação “committed” nunca é desfeita Espera confirmação (commit) das transações que escreveram valores lidos Recup. complexa, mas possível Exs: r1(X); w1(X); r2(X); r1(Y);w2(X);c2; a1: não recuperável r1(X); w1(X); r2(X); r1(Y);w2(X);c1; c2: recuperável r1(X); w1(X); r2(X); r1(Y);w2(X);a1; a2: recuperável, mas com rollback em cascata Evitam Rollback em Cascata (ERC): Leitura apenas de valores gravados por transações “committed” Ex: r1(X); w1(X); r2(Z); r1(Y); c1; r2(X); w2(X); c2
12
Caracterizando Escalon. c/ base na Recup. (2)
Escalonamento Estrito Item X não pode ser lido ou gravado até que última transação que alterou X seja committed (ou aborted). Recuperação simples: basta restaurar valor antigo Obs: restauração do valor antigo em esquema ERC mas não estrito leva a erro. Ex: X= 9 inicialmente w1(X,5); w2(X,8); a1;c2; Restabeleceria 9 erradamente após c2
13
Serialização de Escalonamentos
Escalonamentos seriais: transações inteiras em ordem serial (s/ entrelaçamento) correto (indep. da ordem) desperdício de tempo: espera por E/S transações longas bloqueariam acesso ao BD Escalonamento Serializável: equivalente a algum escal. serial
14
Equivalência de Escalonamentos
Em resultado: produzem mesmo resultado final pode não ser suficiente equivalência pode depender da entrada Em conflitos ordem de qq. 2 ops. em conflito é a mesma Serializável por conflito: equivalente em conflito a algum escal. serial Ex: r1(X); r2(X); w1(X); w2(X) não é serializável por conflito
15
Serialização Teste: Usos grafos (dirigidos) de precedência
nós são transações transição de T1 p/ T2 se há ops. em conflito nas trans. e op. de T1 ocorre antes ciclos: escalonamento não é serializável Usos admitir como correto o escalonamento serializável permitir entrelaçamentos: ganho de eficiência protocolos para garantir serialização
16
Serialização (II) EquivalênciaVisões:
exigir que valores lidos por uma op. foram escritos pela mesma op. nos dois escal. permite gravação cega seriável em visões: equivalente em visões a esc. serial teste complicado Serialização pode ser muito restritiva.
17
Suporte na SQL Sem begin_transaction
SQL2: SET TRANSACTION define características modo de acesso (read only ou read/write) isolamento read uncommitted read committed repeatable read serializable evita leitura suja evita leitura não repetitiva evita “fantasmas”: novas linhas inseridas em tabela não detectadas
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.