banco de dados distribuídos - facomilmerio/sbd20132/sbd9... · as operações básicas de acesso...
TRANSCRIPT
GBC043 – Sistemas de Banco de DadosTransações, Controle de Concorrência e
Recuperação de Dados
Ilmério Reis da [email protected]/~ilmerio/sbdUFU/FACOM
FACOM/UFU Página:2
Introdução – Sistemas multiusuário
Def. em um sistemas multiusuário vários usuários podem utilizar o sistema ao mesmo tempo e, portanto, muitos usuários podem acessar o banco de dados simultaneamente.
FACOM/UFU Página:3
Introdução - Arquitetura de um SGBD
FACOM/UFU Página:4
Introdução - Estado Consistente de um BD
Def Estado Consistente de um BD é o estado do BD que atende a todas as restrições definidas sobre ele
Obs: deve refletir a realidade que representa.
FACOM/UFU Página:5
Definição de TransaçãoDef. Transação é a execução de um programa(conjunto de
ações) que acessa o BD formando uma unidade lógica de processamento. Pode incluir operações de inserção, exclusão, modificação ou recuperação de dados.
FACOM/UFU Página:6
Execução intercalada x paralelaProcessos A e B: intercaladosProcessos C e D: paralelos
FACOM/UFU Página:7
Operações de leitura e gravaçãoAs operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes:
read_item(X) ou r(x). Lê um item do banco de dados chamado X para uma variável do programa também chamada X.
write_item(X) ou w(x). Grava o valor da variável de programa X no item de banco de dados chamado X.
FACOM/UFU Página:8
Exemplos de transações
FACOM/UFU Página:9
Problemas em execuções concorrente
O problema da atualização perdida. O problema da atualização temporária (ou leitura suja). O problema do resumo incorreto. O problema da leitura não repetitiva.
FACOM/UFU Página:10
Exemplos de problemas em execuções concorrente
FACOM/UFU Página:11
Definição de consistência de transação
Def. Consistência da Transação é a garantia de consistência do BD mesmo havendo concorrência e/ou falhas
Obs.:- A recuperação ao estado inicial é necessária em caso de
falha
- Falhas podem ser de transação, sistema ou mídia
FACOM/UFU Página:12
Controle de transação
FACOM/UFU Página:13
Diagrama de estados de uma transação
FACOM/UFU Página:14
Propriedades de Transações
FACOM/UFU Página:15
Atomicidade em Transações
• Tudo ou nada• Se for interrompida, resultados parciais devem ser
desfeitos(undo) • A preservação de atomicidade em abort devido a
erros de entrada, sobrecarga do sistema ou deadlock, é controlado por processo chamado transaction recovery
• A preservação de atomicidade na presença de falhas do sistema(crash) é chamada crash recovery
FACOM/UFU Página:16
Consistência em Transações
• Interna Execução sem concorrência ou falhas sempre
leva a estados consistentes Obs: os programas são corretos
• Def Dirty DataÉ um dado atualizado por uma transação que
ainda não foi consolidada
FACOM/UFU Página:17
Consistência de transação – Grau 0
Grau 0
T não sobrescreve(dirty data) de outra transação T’
FACOM/UFU Página:18
T não sobrescreve dirty data de outra transação T’
T não consolida qualquer gravação até concluir todas suas tarefas (EOT)
Consistência de transação – Grau 1
FACOM/UFU Página:19
T não sobrescreve dirty data de outra transação
T’ T não consolida qualquer gravação até concluir
todas suas tarefas (EOT) T não lê dirty data de outra transação T’
Consistência de transação – Grau 2
FACOM/UFU Página:20
Consistência de transação – Grau 3
T não sobrescreve dirty data de outra transação T’
T não consolida qualquer gravação até concluir todas suas tarefas (EOT)
T não lê dirty data de outra transação T’ Outras transações T’ não escrevem(dirty) dados
lidos por T, antes de T terminar(EOT).
FACOM/UFU Página:21
Isolamento de Transações- Schedule
Def Um schedule (ou histórico) S de n transações T1, T2, ..., Tn é uma ordenação das operações das transações. As operações das diferentes transações podem ser intercaladas no schedule S.
FACOM/UFU Página:22
Isolamento de Transações- Representação de Schedules
* somente operações read e write, identificando o número da transação no schedule e o item de dado;
Exemplo: Sa: r1(x); r2(x); w1(x); r1(y); w2(x); w2(y);
FACOM/UFU Página:23
Isolamento - Schedule seriais e intercalados
FACOM/UFU Página:24
Isolamento de Transações- Representação de Schedules seriais e intercalados Seriais:
Sa: r1(x); w1(x); r1(y); w1(y); r2(x); w2(x);
Sb: r2(x); w2(x); r1(x); w1(x); r1(y); w1(y);
Intercalados Sc: r1(x); r2(x); w1(x); r1(y); w2(x); w1(y);
Sd: r1(x); w1(x); r2(x); w2(x); r1(y); w1(y);
FACOM/UFU Página:25
Isolamento de Transações- Conflito
Def. Operações conflitantes: duas operações incompatíveis, por exemplo read e write, são conflitantes se acessam o mesmo dado
Def. Transações conflitantes: duas transações são conflitantes se possuem operações conflitantes
FACOM/UFU Página:26
Isolamento de Transações- Schedule CompletoDef. Um schedule completo S sobre um conjunto de
transações T={T1, ..., Tn} é uma ordem parcial onde
- as operações em S são exatamente as de T, incluindo uma última operação de cancelamento ou confirmação para cada transação
- a ordem de qualquer oi(x) em Ti é a mesma em S
- duas operações conflitantes oi(x), oj(x), devem ocorrem uma antes da outra, ou seja, oi(x) < oj(x) ou oj(x) < oi(x)
Obs.: em um sistema em operação geralmente trabalhamos com projeção confirmada de schedules
FACOM/UFU Página:27
Isolamento de Transações- Classificação de Schedules quanto à facilidade de recuperação
FACOM/UFU Página:28
Isolamento de Transações- Schedule RecuperávelDef. Um schedule S é recuperável se nenhuma transação Ti em S for confirmada até que todas as transações Tj em S que tiverem gravado algum item X que Ti lê sejam confirmadas
Exemplos:Recuperável:
Não recuperável:
FACOM/UFU Página:29
Isolamento Transações-Schedule sem cascata (evita rollback em cascata)Uma transação Ti não pode revelar seus resultados a
qualquer outra transação Tj antes de se consolidar, pois, caso isso aconteça, se Ti for cancelada Tj também terá que ser cancelada.
Def. Um schedule S evita rollback em cascata se cada tansação nele ler apenas itens que foram gravados por transações confirmadas
FACOM/UFU Página:30
Isolamento Transações-Schedule estrito
Def. Um schedule S é estrito se nenhuma transação le ou grava X até que a última transação que gravou X seja consolidada.
FACOM/UFU Página:31
Isolamento Transações- Relação entre tipos de Schedule
Estritos
Recuperáveis
Sem_Cascata
FACOM/UFU Página:32
Isolamento de Transações – Classificação de Schedule quanto à facilidade de Serialização
FACOM/UFU Página:33
Isolamento de Transações- Serializabilidade
Def Serializabilidade: se várias transações são executadas concorrentemente, o resultado final deve ser igual a alguma execução serial das mesmas transações.
Obs.: isso define a equivalência de resultado.
FACOM/UFU Página:34
Equivalência de Conflito
Def Equivalência de Conflito: dois schedules são considerados equivalentes de conflito se a ordem de quaisquer duas operações em conflito for a mesma nos dois schedules
FACOM/UFU Página:35
Serializabilidade de Conflito
Def um schedule é serializável de conflito se ele for equivalente de conflito a algum schedule serial
FACOM/UFU Página:36
Teste de Serializabilidade de Conflito
FACOM/UFU Página:37
Teste de Serializabilidade de Conflito-Exemplo
FACOM/UFU Página:38
Equivalência de visão (menos restritiva)
Def Equivalência de visão: dois schedules são considerados equivalentes de visão se:
FACOM/UFU Página:39
Serializabilidade de Visão
Def um schedule é serializável de visão se ele for equivalente de visão a algum schedule serial
FACOM/UFU Página:40
Serializabilidade de Visão x de Conflito
Um schedule serializável de visão mas não serializável de conflito:
FACOM/UFU Página:41
Níveis de Isolamento do Padrão SQL92
FACOM/UFU Página:42
Isolamento no Padrão SQL92- Fenômenos a serem evitados
• Dirty data: itens alterados de transações não encerradas
• Leitura não repetível: T le x; T’ modifica x e termina; T le x atualizado por T’
• Fantasma: T le usando predicado p; T’ insere dados que satisfazem p; T le novamente incluindo dados inseridos po T’
FACOM/UFU Página:43
Níveis de Isolamento do Padrão SQL92
FACOM/UFU Página:44
Durabilidade em Transações
Assegura permanência de dados alterados por transações consolidadas
Recuperação de banco de dados (forward recovery)
FACOM/UFU Página:45
Transações - Exercícios
GBC043 – Sistemas de Banco de DadosControle de Concorrência
FACOM/UFU Página:47
Inrodução - Arquitetura de um SGBD
FACOM/UFU Página:48
Introdução – Protocolos
O objetivo das técnicas ou protocolos de controle de concorrência é garantir o isolamento de transações ou a serialização e recuperabilidade de schedules
Um recurso importante para alguns protocolos é o bloqueio de itens de dado, por exemplo o bloqueio binário que caracteriza o item como bloqueado ou desbloqueado.
FACOM/UFU Página:49
Introdução – Bloqueio binário
FACOM/UFU Página:50
Introdução – Regras de bloqueio binário
FACOM/UFU Página:51
Regras de bloqueio compartilhado -(read_lock e write_lock)
FACOM/UFU Página:52
FACOM/UFU Página:53
Protocolo de Bloqueio em duas fases (2PL)
Todas as operações de bloqueio (read_lock, write_lock) precedem a primeira operação de desbloqueio na transação.
As duas fases: fase de expansão: novos bloqueios, mas nenhum desbloqueio
fase de encolhimento: bloqueios liberados, mas nenhum novo bloqueio
FACOM/UFU Página:54
FACOM/UFU Página:55
FACOM/UFU Página:56
Garantindo a serialização pelo 2PLO bloqueio em duas fases pode limitar a quantidade de concorrência passível de ocorrer em um schedule, POIS,
– uma transação T pode não ser capaz de liberar um item X depois de usá-lo se T tiver de bloquear um item adicional Y depois; OU– T precisa bloquear um item adicional Y antes que precise dele, de modo que pode liberar X.
MAS,o uso de bloqueios, combinado com o protocolo 2PL, garante a serialização de schedulesENTRETANTO, podem ocorrer deadlocks
FACOM/UFU Página:57
Deadlock em 2PL
FACOM/UFU Página:58
Tratamento de Deadlock
Espera cuidadosa: Ti tenta bloquear X que está bloqueado por Tj ENTÃO se Tj estiver bloqueada aborte Ti caso contrário bloqueie Ti;
Detecção de deadlock: ciclo em grafo de espera;
Timeouts: limita o tempo de espera independente de haver deadlock;
FACOM/UFU Página:59
Inanição em 2PL
Def. a inanição ocorre quando uma transação espera por longo período e outras prosseguem normalmente.
Obs.: Geralmente ocorre em protocolos com prioridades de liberação. A solução é não haver prioridade.
FACOM/UFU Página:60
2PL e schedule equivalente
- O uso de bloqueios, combinado com o protocolo 2PL, garante a serialização de schedules.
- Os schedules serializáveis produzidos pelo 2PL têm seus schedules seriais equivalentes com base na ordem em que as transações em execução bloqueiam os itens que elas adquirem.
FACOM/UFU Página:61
Rótulo de tempo (timestamp)
Def. rótulo de tempo(timestamp) é um identificador exclusivo criado pelo SGBD para identificar uma transação.
O algoritmo de ordenação de rótulo de tempo ordena as transações com base em seus rótulos de tempo conforme mostrado a seguir
FACOM/UFU Página:62
Rótulos de tempo em read e write
FACOM/UFU Página:63
Controle de concorrência baseado na ordenação de rótulo de tempo (timestamp)
FACOM/UFU Página:64
Técnicas de controle de concorrência multiversão
- No controle de concorrência baseado em multiversão versões de um item são mantidas
- Quando uma transação requer acesso a um item, uma versão apropriada é escolhida para manter a serialização do schedule em execução, se possível.
FACOM/UFU Página:65
Técnicas de controle de concorrência multiversão baseada na ordenação de rótulo
Sejam X1, X2, ..., Xk as versões mantidas para XPara cada versão mantêm-se um valor Xi e dois rótulos de tempo, a saber:
FACOM/UFU Página:66
Técnicas de controle de concorrência multiversão baseada na ordenação de rótulo
FACOM/UFU Página:67
Controle de concorrência - Exercícios
GBC043 – Sistemas de Banco de DadosRecuperação de Dados
FACOM/UFU Página:69
Introdução – Recuperação - Objetivo
O objetivo das técnicas de recuperação de falha é restaurar o BD para o estado consistente mais recente antes da falha.
O sistema precisa manter dados sobre as mudanças realizadas por várias transações
FACOM/UFU Página:70
Introdução - Arquitetura de um SGBD
FACOM/UFU Página:71
Backup e Forward Recovery
Se houver falha catastrófica no disco restaura-se a cópia mais recente do BD
Então, refaz-se as transações confirmadas até o momento da falha com base nos dados existentes no log (forward recovery)
FACOM/UFU Página:72
Falhas específicas
Se houver falha específica, identifique mudanças que causaram inconsistência e aplique uma das seguintes técnicas
– Atualização adiada – nada a desfazer (NO-UNDO/REDO);
– Atualização imediata – desfazer (UNDO/NO-REDO);
Operações de UNDO e REDO devem ser idempotentes, ou seja, executá-las várias vezes é equivalente a executá-las uma vez.
FACOM/UFU Página:73
Buffering de blocos de discoO sistema operacional mantêm um bufferpoll(cache)com
itens de dados que são atualizados em memória volátil antes de persistidos em disco.
- o bufferpool é uma estrutura com vários dados, por exemplo:- Dirty-bit: indica se a versão no buffer foi modificada- Bit preso-solto: indica se o dado pode ser gravado em
disco
FACOM/UFU Página:74
Atualização de blocos de disco e o LogVersões do dado:
– BFIM(before image) - usada para UNDO– AFIM(after image) – usada para REDO
Atualização no local grava o buffer modificado no mesmo local da versão anterior – exige armazenamento de BFIM e AFIM em log que registra as alterações em memória durável;
Atualização por sombreamento grava o buffer modificado em outros local e não será necessário uso de log, pois BFIM e AFIM estarão no BD
FACOM/UFU Página:75
Log e write-ahead
write-ahead: BFIM é gravada no log antes da modificação do BD (recuperação com UNDO)
FACOM/UFU Página:76
Log, write-ahead com UNDO e REDO
FACOM/UFU Página:77
Técnicas steal/no-steal e force/no-force
Quando uma página do buffer pode ser escrita no disco?
No-steal: uma página atualizada por uma transação não pode ser escrita no disco antes que a transação se efetive (NO-UNDO)
No-force: uma página atualizada por uma transação efetivada não é imediatamente escrita no disco (REDO)
FACOM/UFU Página:78
Log, steal/no-steal e force/no-force
FACOM/UFU Página:79
Steal/No-force
Steal/No-force é a técnica tipicamente empregada por SGBDs atuais.
– Steal: diminui a necessidade de buffer
– No-force: páginas atualizadas no buffer podem ser reutilizadas, diminuindo operações de I/O
FACOM/UFU Página:80
Check-point (o que é)
Um registro [checkpoint, lista de transações ativas] no log, indica um ponto em que todos os buffers do SGBD que foram modificados estão gravados no banco de dados em disco
Um check point é gravado periodicamente em intervalos de tempo em minutos (m) ou de número de transações confirmadas (t) desde o último check point
m ou t são parâmetros do sistema
FACOM/UFU Página:81
Check-point (como fazer)
FACOM/UFU Página:82
Recuperação em Cascata pois T2 le de T3
FACOM/UFU Página:83
Recuperação com atualização adiada (NO-UNDO/REDO)
FACOM/UFU Página:84
RDU_M(NO-UNDO/REDO - Checkpoint)
FACOM/UFU Página:85
FACOM/UFU Página:86
Recuperação baseada em atualização imediata
UNDO/NO-REDO
ou
UNDO/REDO
FACOM/UFU Página:87
FACOM/UFU Página:88
Recuperação baseada em atualização imediata
A Figura 23.4 ilustra os conceitos de diretórios de sombra e atual. Para as páginas atualizadas pela transação, duas versões são mantidas. A versão antiga é referenciada pelo diretório de sombra e a nova versão, pelo diretório atual.
FACOM/UFU Página:89
Recuperação baseada em atualização imediata cont..
FACOM/UFU Página:90
FIM- Transações, Controle de Concorrência e Recuperação de Dados
FIM- Transações, Controle de Concorrência e Recuperação de Dados