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

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

Introdução Gdes. bancos de dados: Concorrência: Transação:

Apresentações semelhantes


Apresentação em tema: "Introdução Gdes. bancos de dados: Concorrência: Transação:"— Transcrição da apresentação:

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


Carregar ppt "Introdução Gdes. bancos de dados: Concorrência: Transação:"

Apresentações semelhantes


Anúncios Google