banco de dados distribuídos - facomilmerio/sbd20132/sbd9... · as operações básicas de acesso...

90
GBC043 – Sistemas de Banco de Dados Transações, Controle de Concorrência e Recuperação de Dados Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/sbd UFU/FACOM

Upload: others

Post on 16-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 2: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 3: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:3

Introdução - Arquitetura de um SGBD

Page 4: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 5: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 6: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:6

Execução intercalada x paralelaProcessos A e B: intercaladosProcessos C e D: paralelos

Page 7: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 8: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:8

Exemplos de transações

Page 9: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 10: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:10

Exemplos de problemas em execuções concorrente

Page 11: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 12: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:12

Controle de transação

Page 13: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:13

Diagrama de estados de uma transação

Page 14: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:14

Propriedades de Transações

Page 15: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 16: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 17: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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’

Page 18: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 19: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 20: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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).

Page 21: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 22: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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);

Page 23: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:23

Isolamento - Schedule seriais e intercalados

Page 24: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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);

Page 25: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 26: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 27: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:27

Isolamento de Transações- Classificação de Schedules quanto à facilidade de recuperação

Page 28: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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:

Page 29: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 30: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 31: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:31

Isolamento Transações- Relação entre tipos de Schedule

Estritos

Recuperáveis

Sem_Cascata

Page 32: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:32

Isolamento de Transações – Classificação de Schedule quanto à facilidade de Serialização

Page 33: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 34: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 35: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 36: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:36

Teste de Serializabilidade de Conflito

Page 37: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:37

Teste de Serializabilidade de Conflito-Exemplo

Page 38: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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:

Page 39: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 40: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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:

Page 41: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:41

Níveis de Isolamento do Padrão SQL92

Page 42: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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’

Page 43: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:43

Níveis de Isolamento do Padrão SQL92

Page 44: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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)

Page 45: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:45

Transações - Exercícios

Page 46: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

GBC043 – Sistemas de Banco de DadosControle de Concorrência

Page 47: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:47

Inrodução - Arquitetura de um SGBD

Page 48: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 49: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:49

Introdução – Bloqueio binário

Page 50: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:50

Introdução – Regras de bloqueio binário

Page 51: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:51

Regras de bloqueio compartilhado -(read_lock e write_lock)

Page 52: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:52

Page 53: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 54: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:54

Page 55: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:55

Page 56: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 57: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:57

Deadlock em 2PL

Page 58: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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;

Page 59: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 60: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 61: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 62: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:62

Rótulos de tempo em read e write

Page 63: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:63

Controle de concorrência baseado na ordenação de rótulo de tempo (timestamp)

Page 64: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 65: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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:

Page 66: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:66

Técnicas de controle de concorrência multiversão baseada na ordenação de rótulo

Page 67: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:67

Controle de concorrência - Exercícios

Page 68: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

GBC043 – Sistemas de Banco de DadosRecuperação de Dados

Page 69: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 70: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:70

Introdução - Arquitetura de um SGBD

Page 71: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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)

Page 72: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 73: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 74: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 75: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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)

Page 76: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:76

Log, write-ahead com UNDO e REDO

Page 77: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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)

Page 78: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:78

Log, steal/no-steal e force/no-force

Page 79: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 80: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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

Page 81: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:81

Check-point (como fazer)

Page 82: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:82

Recuperação em Cascata pois T2 le de T3

Page 83: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:83

Recuperação com atualização adiada (NO-UNDO/REDO)

Page 84: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:84

RDU_M(NO-UNDO/REDO - Checkpoint)

Page 85: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:85

Page 86: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:86

Recuperação baseada em atualização imediata

UNDO/NO-REDO

ou

UNDO/REDO

Page 87: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:87

Page 88: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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.

Page 89: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

FACOM/UFU Página:89

Recuperação baseada em atualização imediata cont..

Page 90: Banco de Dados Distribuídos - FACOMilmerio/sbd20132/sbd9... · As operações básicas de acesso ao banco de dados que uma transação pode incluir são as seguintes: read_item(X)

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