apresentação do powerpoint...2. suponha que a transação ti emita uma write(q) a) se ts(ti) <...
TRANSCRIPT
![Page 1: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/1.jpg)
TRANSAÇÕESMAPAS MENTAIS
![Page 2: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/2.jpg)
![Page 3: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/3.jpg)
![Page 4: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/4.jpg)
![Page 5: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/5.jpg)
RESUMINDO
![Page 6: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/6.jpg)
TRANSAÇÕES: ESTADOS E OPERAÇÕES
![Page 7: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/7.jpg)
CONTROLE DE CONCORRÊNCIA
![Page 8: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/8.jpg)
Porque o controle de
concorrência é necessário?
Evitar problemas:
Atualização perdida
Atualização temporária
Sumário incorreto
![Page 9: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/9.jpg)
• Definição: Concorrência é a propriedade deuma transação poder ser executada emparalelo com outras transações
• Justificativa de concorrência:– Com a execução de várias transações ao
mesmo tempo, o processador pode sercompartilhado entre essas transações,melhorando a eficiência global docomputador dado que uma maiorquantidade de trabalho é executada emmenos tempo.
CONTROLE DE CONCORRÊNCIA
![Page 10: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/10.jpg)
• Justificativa de um controle:– É necessário que o sistema monitore a
interação entre transaçõesconcorrentes, de modo a evitar que elasdestruam a consistência do banco dedados e mantenham o isolamento dastransações.
• Técnicas ou Protocolos:– Técnica de bloqueio– Timestamp– Protocolos com Base em Gráficos
Prof. Thiago Cavalcanti
CONTROLE DE CONCORRÊNCIA
![Page 11: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/11.jpg)
• LOCK: Variável associada a um item de dados no BD que descreve o status desse item com respeito a possíveis operações a serem aplicadas a ele
– Binário
– Múltiplo
Prof. Thiago Cavalcanti
TÉCNICAS DE BLOQUEIO (LOCKS)
![Page 12: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/12.jpg)
• Dois estados ou valores: – locked (1) ou – unlocked (0)
• Um lock distinto é associado a cada item do BD - referenciado como lock(x) para o item x
• Operações incluídas nas transações : lock_item e unlock_item, implementadas como operações indivisíveis
• Um gerenciador é mantido pelo SGBD para registrar e controlar o acesso a locks
• Registro de lock: <nome-do-item, LOCK>• Tabela de locks: mantém esses registros
Prof. Thiago Cavalcanti
LOCK BINÁRIO
![Page 13: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/13.jpg)
• Uma transação T tem que executar uma operação lock_item(x) antes de qualquer read_item ou write_item executada por T.
• Uma transação T tem que executar a operação unlock_item(x) após todo read/write completados em T.
• Uma transação não pode executar outra operação lock_item(x) se já tem um lock sobre x.
• Uma transação T não pode executar um unlock_item(x) a menos que tenha um lock sobre x.
• Apenas uma transação pode ter um lock num dado item.
Prof. Thiago Cavalcanti
LOCK BINÁRIO (REGRAS)
![Page 14: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/14.jpg)
• Ano: 2018 Órgão: UFMS Prova: FAPEC - 2018 - UFMS - Analista de Tecnologia da Informação
• Vários tipos de bloqueios são usados no controle de concorrência. Um bloqueio binário pode ter dois estados ou valores: bloqueado e desbloqueado (ou 1 e 0, para simplificar). O esquema a seguir apresenta as operações de bloqueio e desbloqueio para bloqueios binários.
• Se o esquema de bloqueio binário simples descrito acima for usado, cada transação precisa obedecer às seguintes regras, EXCETO:
• A Uma transação T precisa emitir a operação lock_item(X) antes de quaisquer operações read_item(X) ou write_item(X) serem realizadas em T.
• B Uma transação T não emitirá uma operação unlock_item(X) a menos que já mantenha um bloqueio de leitura (compartilhado) e um bloqueio de gravação (exclusivo) no item X.
• C Uma transação T precisa emitir a operação unlock_item(X) após todas as operações read_item(X) e write_item(X) serem contempladas em T.
• D Uma transação T não emitirá uma operação lock_item(X) se já mantiver o bloqueio no item X.
• E Uma transação T não emitirá uma operação unlock_item(X) a menos que ela já mantenha o bloqueio no item X.
QUESTÃO.
![Page 15: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/15.jpg)
• Ano: 2018 Banca: FAURGS Órgão: TJ-RS Prova: FAURGS - 2018 - TJ-RS -Administrador de Banco de Dados
• Se um bloqueio binário simples for usado, qual regra deve seguir uma transação?• A Uma transação T emitirá uma operação lock_item(X) se já estiver mantido o
bloqueio no item X.• B Uma transação T precisa emitir a operação unlock_item(X) antes de quaisquer
operações write_item(X) serem realizadas.• C Uma transação T precisa emitir a operação lock_item(X) antes de quaisquer
operações read_item(X) e write_item(X) serem realizadas.• D Uma transação T precisa emitir a operação unlock_item(X) antes de quaisquer
operações read_item(X) serem realizadas.• E Uma transação T precisa emitir a operação lock_item(X) após quaisquer
operações read_item(X) e write_item(X) serem realizadas.
QUESTÃO.
![Page 16: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/16.jpg)
• Três operações (indivisíveis)
– read_lock(x) - lock compartilhado – lock-S(x)
– write_lock(x) - lock exclusivo - lock-X(x)
– unlock(x)
• Registro de Lock
– <nome-do-item, LOCK, (número-de-leituras)>
Prof. Thiago Cavalcanti
LOCK MÚLTIPLO
Compartilhado Exclusivo
Compartilhado Verdadeiro Falso
Exclusivo Falso Falso
![Page 17: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/17.jpg)
• Uma transação T tem que executar uma operação read_lock(x) ou write_lock(x) antes de qualquer read_item(x) em T
• Uma transação T tem que executar uma operação write_lock(x) antes de qualquer write_item(x) em T
• Uma transação tem que executar uma operação unlock(x) após todas as operações read_item(x) e write_item(x) completadas em T
Prof. Thiago Cavalcanti
LOCK MÚLTIPLO (REGRAS)
![Page 18: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/18.jpg)
• Uma transação T não executará um read_lock(x) se já tem um lock (read) compartilhado ou um lock (write) exclusivo em x (pode ser relaxado)
• Uma transação T não executará outro write_lock(x) se já tem um lock (write) exclusivo ou um lock (read) compartilhado em x (pode ser incrementado)
• Uma transação T não executará um unlock(x) ao menos que já tenha um lock compartilhado ou exclusivo em x
Prof. Thiago Cavalcanti
LOCK MÚLTIPLO (REGRAS)
![Page 19: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/19.jpg)
• INCREMENTO DE LOCK– Uma transação após ter um read_lock(x) e sendo a única que detém x,
pode posteriormente executar um write_lock(x) sobre x
• DECREMENTO DE LOCK– Após ter um lock exclusivo sobre um item x, uma transação T pode
decrementar o lock, executando um read_lock(x)
• BLOQUEIOS EXCLUSIVOS– Se uma transação T contiver um bloqueio exclusivo em algum objeto,
então nenhuma transação distinta T’ pode fazer bloqueio daquele objeto até que T libere o seu bloqueio
Prof. Thiago Cavalcanti
INCREMENTO/DECREMENTO DE LOCK
![Page 20: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/20.jpg)
• Locks binários ou múltiplos não garantem a serializabilidade de escalonamentos nos quais as transações participam.
• É necessário um protocolo adicionalque contempla o posicionamento de locks e unlocks em cada transação
– Protocolo de bloqueio
Prof. Thiago Cavalcanti
COMO GARANTIR A SERIALIZABILIDADE?
![Page 21: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/21.jpg)
• Se todas as transações obedecerem às seguintes regras1. Antes de operar sobre qualquer objeto, a transação primeiro adquire um bloqueio sobre aquele objeto –fase de expansão2. Após liberar o bloqueio, a transação não adquire mais bloqueios – fase de encolhimento
• Upgrade e downgrade
Prof. Thiago Cavalcanti
PROTOCOLO - BLOQUEIOS DE DUAS FASES (2PL)
0
2
4
Ponto de bloqueio
![Page 22: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/22.jpg)
• BÁSICO (visto anteriormente)• CONSERVADOR OU ESTÁTICO:
– Bloqueia todos os itens que acessará, antes de iniciar a execução da transação– Só bloqueia quando todos estão disponíveis.
• ESTRITO OU SEVERO (mais popular) : – Não libera os locks de escrita até o commit ou abort
• RIGOROSO– Não libera os locks de escrita e leitura até o commit ou abort– É mais fácil de implementar do que o estrito.
Podem Causar Deadlock ou Starvation
Prof. Thiago Cavalcanti
VARIAÇÃO DO PROTOCOLO
![Page 23: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/23.jpg)
VEJAMOS NO GRÁFICO AGORA
![Page 24: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/24.jpg)
CONTROLE DE CONCORRÊNCIAPROTOCOLOS DE CONTROLE
![Page 25: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/25.jpg)
DEADLOCK E STARVATION
A R
B
C R
B
D R
A, C, D ... Bloqueio compartilhadoB Bloqueio exclusivo -- Starvation
T1 T2
Lock-X(B)
Read(B)
B := B – 50
Write(B)
Lock-S(A)
Read(A)
Lock-S(B)
Lock-X(A)
![Page 26: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/26.jpg)
• É uma situação em que duas ou mais transações estão em estado simultâneo de espera, cada uma aguardando que uma das demais libere um bloqueiopara ela poder prosseguir
• Os principais métodos para solucionar o impasse podem resultar na repetição da transação
Prof. Thiago Cavalcanti
DEADLOCK
![Page 27: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/27.jpg)
• Protocolo de Prevenção de Deadlock– Conservador: se algum dos itens não pode ser
bloqueado, nenhum será bloqueado
– Ordenado: tentar por uma ordenação em todos os itens e os locks só podem ocorrer segundo esta ordem
Prof. Thiago Cavalcanti
DEADLOCK
![Page 28: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/28.jpg)
• Quando uma transação solicita um bloqueio de um registro que já está bloqueado por outra transação, então um dos dois procedimentos é seguido
• Wait-die - se a transação que solicitou o bloqueio é a mais antiga, pode aguardar. Se for a mais nova, sofre rollback e recomeça mais tarde com mesmo timestamping
• Wound-wait - se for a transação mais nova, pode aguardar. Se for a mais antiga, interrompe a mais nova, a qual sofre rollback. Recomeça mais tarde com mesmo timestamping
Prof. Thiago Cavalcanti
PROTOCOLOS
![Page 29: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/29.jpg)
• Wait-die
VEJAMOS DE UMA FORMA MAIS CLARA!
• Wound-wait
![Page 30: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/30.jpg)
• Verificação da existência de deadlock– Sempre que uma solicitação de bloqueio cause “espera”
• Permite detecção imediata do impasse• Acarreta um overhead
– Em alguma base periódica • Reduz o overhead• Alguns deadlocks serão detectados tardiamente
– Condições ideais• Pequena interferência entre as transações• Transações curtas• Locks de poucos itens• Carga da transação leve
Prof. Thiago Cavalcanti
PROTOCOLO DE DETECÇÃO E RECUPERAÇÃO
![Page 31: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/31.jpg)
• Quebra de deadlock consiste na escolha de uma das transações para forçá-la a um rollback– A que foi iniciada mais recentemente– A que tiver feito o menor número de bloqueios– A que tiver feito o menor número de atualizações
• Situação oposta– Usar um esquema de prevenção de deadlock
Prof. Thiago Cavalcanti
CONTROLE DE CONCORRÊNCIA
![Page 32: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/32.jpg)
• A transação não pode prosseguir por um período indefinido de tempo enquanto outras transações continuam normalmente esquema injusto de espera por lock.
– Associar first-come-first-serve
– Incremento de prioridade com o tempo
Prof. Thiago Cavalcanti
LIVELOCK
![Page 33: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/33.jpg)
• Problema similar ao livelock,ocorre se o algoritmoseleciona a mesma transaçãocomo vítima repetidamente,causando abort repetidos enunca acabando a execução– Os protocolos wait-die e
wound-wait apresentadosevitam starvation
Prof. Thiago Cavalcanti
STARVATION
![Page 34: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/34.jpg)
• Quando uma transação Ti solicita o bloqueio do item de dados Q de modo particular M, o bloqueio é concedido, contanto que:
1. Não haja nenhuma outra transação com bloqueio sobre Q cujo modo de bloqueio seja conflitante com M.
2. Não haja nenhuma outra transação que esteja esperando um bloqueio sobre Q e que tenha feito sua solicitação antes de Ti.
Prof. Thiago Cavalcanti
EVITANDO INANIÇÃO DE TRANSAÇÕES
![Page 35: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/35.jpg)
REVISANDO…
Controle de concorrência
Pessimista
Abordagem baseada em
log
2PL 2PL Restrito
Abordagem baseada em timestamp
Timestampbásico
Timestampmultiversão
Otimista
![Page 36: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/36.jpg)
• Exige conhecimento anterior sobre a ordem na qual os itens de banco de dados são acessados.
• Exemplo de protocolo: é permitida somente a instrução de bloqueio lock-X. Cada transação Ti, pode bloquear um item de dado no máximo uma vez e deve observar as seguintes regras:1. O primeiro bloqueio feito por Ti pode ser sobre qualquer dado2. Subsequentemente, um certo item de dado Q pode ser bloqueado por
Ti somente se os pais de Q estivem bloqueados por Ti3. Itens de dados podem ser desbloqueados a qualquer momento4. Um item de dado foi bloqueado e desbloqueado por Ti não pode ser
rebloqueado por Ti.
Prof. Thiago Cavalcanti
PROTOCOLO COM BASE EM GRAFO (GRAPH-BASED)
![Page 37: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/37.jpg)
PROTOCOLO COM BASE EM GRAFO (GRAPH-BASED)
![Page 38: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/38.jpg)
• A cada transação Ti do sistema associamos um único timestamp fixo, denotado por TS(Ti)
• Esse é criado pelo SBD antes que a transação Ti inicie sua execução
• Se uma transação Ti recebeu o TS(Ti) e uma nova transação Tj entra no sistema, então– TS(Ti) < TS(Tj)
• Duas forma de implementar– Clock(relógio do sistema) ou contador lógico
Prof. Thiago Cavalcanti
TIMESTAMP
![Page 39: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/39.jpg)
1. Suponha que a transação Ti emita uma instrução read(Q)a) Se TS(Ti) < W-timestamp(Q), então Ti precisa ler um valor de Q que já
foi sobreposto. Assim, a operação read é rejeitada e Ti é desfeita.
b) Se TS(Ti) >= W-timestamp(Q), então a operação read é executada e R-timestamp(Q) recebe o maior valor entre R-timestamp(Q) e TS(Ti)
2. Suponha que a transação Ti emita uma write(Q)a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo
foi necessário antes e o sistema assumiu que aquele valor nunca seria produzido. Logo, a operação write é rejeitada e Ti é desfeita.
b) Se TS(Ti) < W-timestamp(Q), então Ti está tentando escrever um valor obsoleto em Q. Logo, essa operação write é rejeitada e Ti é desfeita.
c) De outro modo, a operação write é executada e W-timpstamp(Q) é registrada em TS(Ti)
O PROTOCOLO DE ORDENAÇÃO POR TIMESTAMP
![Page 40: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/40.jpg)
• Uma transação Ti desfeitapelo esquema de controlede concorrência recebeum novo timestamp e éreiniciada.
O PROTOCOLO DE ORDENAÇÃO POR TIMESTAMP
T1 T2
Read (B)
Read (B)
B := B – 50
Write(B)
Read(A)
Read(A)
Display (A+B)
A = A + 50
Write (A)
Display (A+B)
W-TS(A) = 0 | R-TS(A) = 0 | W-TS(B) = 0 | R-TS(B) = 0
TS(T1) = 1TS(T2) = 2
![Page 41: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/41.jpg)
• Identificador único assinalado a cada transação
• Ordenados segundo a ordem em que as transações começaram
• Principal vantagem: não usa bloqueios, logo deadlock é impossível
• Garante a serialização de conflito– Operações conflitantes são processadas pela
ordem do timestamp.
TÉCNICAS BASEADAS EM TIMESTAMPING
![Page 42: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/42.jpg)
• Thomas Write Rule - não impõe serialização de conflito, mas rejeita menos operações de escrita (write), modificando as verificações para escrever_item(X).1. Se read_TS(X) > TS(T), então aborta, reverte T e rejeita a operação.
2. Se write_TS(X) > TS(T), então não executa a operação write, mas continua processando.*
3. Se nem a condição (1) nem a condição (2) ocorrerem, então executa a operação de escrever_item(X) e aponta write_TS(X) para TS(T)
• Aumenta a concorrência em potencial
REGRA DE ESCRITA DE THOMAS
![Page 43: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/43.jpg)
• Bloqueio de curta duração são chamados travas.
• As travas não seguem os protocolos usuais de controle de concorrência tal como o bloqueio de duas fases.
• Por exemplo, uma trava pode ser usadas para garantir a integridade física de uma página quando esta está sendo liberada do buffer para o disco.
• Uma trava seria fornecida para a página, a página escrita para o disco, então a trava seria liberada.
Prof. Thiago Cavalcanti
TRAVAS
![Page 44: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/44.jpg)
• Existem alguns protocolos de controle de concorrência em transações de banco de dados um desses é o protocolo de BLOQUEIOS DE DUAS FASES que faz com que todas as transações obedeçam às seguintes regras: – 1. Antes de operar sobre qualquer objeto, a transação primeiro adquire um bloqueio sobre
aquele objeto – 2. Após liberar o bloqueio, a transação não adquire mais bloqueios.
• Outro conjunto de protocolos de controle de concorrência utilizar rótulos de tempo (timestamp). – Um timestamp é um identificador exclusivo para cada transação, gerado pelo sistema. Os
valores de rótulo de tempo são gerados na mesma ordem que os tempos de início de transação.
• Vejam que são dois grupos de protocolos ou modelos distintos: baseado em timestamp e bloqueio (em duas fases, por exemplo).
Prof. Thiago Cavalcanti
... REVISANDO!!
![Page 45: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/45.jpg)
CONTROLE DE CONCORRÊNCIAMAPA MENTAL
![Page 46: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/46.jpg)
MAPA MENTAL
![Page 47: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/47.jpg)
CONTROLE DE CONCORRÊNCIANA PRÁTICA
![Page 48: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/48.jpg)
POSTGRESQL – MVCC – MULTI VERSION CONCURRENCY CONTROL
![Page 49: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/49.jpg)
OUTRO EXEMPLO
![Page 50: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/50.jpg)
MYSQL - MVCC
![Page 51: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/51.jpg)
ORACLE
![Page 52: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/52.jpg)
SQL SERVER
![Page 53: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/53.jpg)
CÓPIAS DE SEGURANÇA
![Page 54: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/54.jpg)
• É um procedimento de geração de cópias extras dos dados com o propósito de restauração em caso de perdas ou danos.
O QUE É UM BACKUP?
![Page 55: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/55.jpg)
Backup•Hot
•Cold
Tipo
•Full
• Incremental
•Diferencial
Conceitos•Window
• Job
On-line
•On-line
•Off-line
•Off-Site
Opções
•Compressão
•Deduplicação
•Encriptação
TEMINOLOGIA
![Page 56: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/56.jpg)
• Um backup full (lavel 0) ou completo é uma cópia integral da partição.
• Um backup incremental (level 1) faz o arquivamento apenas dos arquivos que mudaram desde o último backup full.
• Um backup diferencial (level 2, 3, etc.) faz a cópia dos arquivos que mudaram deste o último backup, não necessariamente o full.
TIPOS DE BACKUP
Backup Sun (F) Mon Tue Wed Thu Fri Sat
Full 2TB 2TB 2TB 2TB 2TB 2TB 2TB
Incr. 2TB 1GB 1.2GB 1.6GB 1.9GB 2.3GB 2.8GB
Diff 2TB 1GB 0.2GB 0.4GB 0.3GB 0.4GB 0.5GB
![Page 57: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/57.jpg)
• No cenário ideal nós queremos fazer backup de tudo, o tempo todo e armazenar esses dados eternamente.– Na realidade, você não pode fazer isso!
• Você deve combinar estratégias de curto (short-term) e longo (long-term) prazos. Por exemplo:– Pelo menos 3 cópias dis dadosm, 1 off site
– Hot backups for convince, cold backup for insurance D/R
– Teste seu processo de recuperação
ESTRATÉGIAS DE BACKUP
![Page 58: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/58.jpg)
• É importane a administração do banco suportar as seguintes tarefas:– Backup
• Offline/cold• Online/hot
– Recuperação• Restauração de todas as tabelas• Construção de ambientes de teste para recuperação• Recuperar dados errados ou ausentes nas tabelas.
BACKUP E RECUPERAÇÃO DE BANCO DE DADOS
![Page 59: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/59.jpg)
• Desative a instância do banco de dados
• Copie os arquivos específicos do banco de dados para uma localização alternativa no disco– Arquivos de parâmetro
– Arquivos de controle
– Arquivos de dados
• Reinicie a instância do banco de dados
CRIANDO UM BACKUP OFF-LINE OU COLD
![Page 60: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/60.jpg)
RECUPERAÇÃO APÓS FALHA
![Page 61: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/61.jpg)
Por que a Restauração
é necessária?
Prof. Thiago Cavalcanti
![Page 62: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/62.jpg)
• Após uma falha na execução de uma transação, o BD deve ser restaurado para um estado consistente anterior
• O Sistema deve manter informações sobre as atualizações do BD em separado (LOG)
Prof. Thiago Cavalcanti
RECUPERAÇÃO APÓS FALHA (OU RESTAURAÇÃO)
![Page 63: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/63.jpg)
• Falha de transação
– Erro lógico
– Erro de sistema
• Queda do sistema
• Falha de disco
Prof. Thiago Cavalcanti
CLASSIFICAÇÃO DE FALHA
![Page 64: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/64.jpg)
• Tipos de armazenamento– Volátil, não-volátil (Queda no sistema) – Estável(RAID)
• Acesso a dados
ESTRUTURA DE ARMAZENAMENTO
A
BB
Input(A)
output(B)
Disco
Memória Principal
Read(A)
Write(A)
Bloco FísicoBloco de
buffer
![Page 65: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/65.jpg)
Prof. Thiago Cavalcanti
MOTIVAÇÃO AO USO DE LOGS
A
B
950
1950
Input(A)
output(B)
Disco
Memória Principal
![Page 66: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/66.jpg)
• Um registro de log descreve <Ti, Xj, V1, V2>:– Identificador da transação– Identificado do item de dado– Valor antigo – Valor novo
• <Ti start>, <Ti commit>, <Ti abort>• Sempre que uma transação realiza uma escrita, é essencial que o
registro de log para aquela escrita seja criado antes de o BD ser modificado.
• Devem residir em armazenamento estável.
Prof. Thiago Cavalcanti
RECUPERAÇÃO BASEADA EM LOG
![Page 67: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/67.jpg)
• Registro adiantado em Log
SOBRE LOGS
Roubado/Não-Roubado Forçado/Não-Forçado
![Page 68: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/68.jpg)
• Garante atomicidade de transações quando todas as modificações do BD são escritas no Log– Adia a execução de todas as operações write de uma transação até sua
efetivação parcial.
Prof. Thiago Cavalcanti
MODIFICAÇÕES ADIADAS AO BANCO DE DADOS
T0: Read(A)T0: A := A – 50T0: Write(A)T0: Read(B)T0: B := B + 50T0: Write(B)T1: Read(C)T1: C := C – 100T1: Write(C)
Transações
<T0 start><T0, A, 950><To, B, 2050><T0 commit><T1 start><T1, C, 600><T1 commit>
Log
A = 950B = 2050
C = 600
Banco de Dados
![Page 69: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/69.jpg)
• Define o valor de todos os itens de dados atualizados pela transação Ti para os novos valores.
• A operação é idempotente, isto é, executá-la várias vezes geram o mesmo resultado.
• Após a ocorrência de uma falha, o subsistema de recuperação consulta o log para determinar quais transações têm de ser refeitas.– Ti será refeita, se e somente se, o log contiver os registros
<Ti start> e <Ti commit>
Prof. Thiago Cavalcanti
PROCEDIMENTO: REDO(TI)
![Page 70: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/70.jpg)
• Permite que as modificações no BD sejam enviadas enquanto as transações ainda estão no estado ativo: Modificações não-efetivadas.
• Na ocorrência de uma queda ou de uma falha de transação, o sistema deverá usar o campo relativo ao valor antigo dos registros do log para restauração dos itens de dados modificados.
Prof. Thiago Cavalcanti
MODIFICAÇÕES IMEDIATAS DE BANCO DE DADOS
![Page 71: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/71.jpg)
• Antes que uma transação Ti inicie sua execução, o registro <Ti start> é escrito no log. Durante sua execução, qualquer operação de write(X) feita por Ti é precedida pela escrita apropriada do novo registro no log. Quando Ti é parcialmente efetivada o registro <Ti commit> é escrito no log.
MODIFICAÇÕES IMEDIATAS DE BANCO DE DADOS
T0: Read(A)T0: A := A – 50T0: Write(A)T0: Read(B)T0: B := B + 50T0: Write(B)T1: Read(C)T1: C := C – 100T1: Write(C)
<T0 start><T0, A, 1000, 950><To, B, 2000, 2050><T0 commit><T1 start><T1, C, 700, 600><T1 commit>
A = 950B = 2050
C = 600
Transações Log Banco de Dados
![Page 72: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/72.jpg)
• Undo(Ti) retorna aos valores antigos todos os itens de dados atualizados pela transação Ti– Se o log contém o registro <Ti start>, mas não tem o
registro <Ti commit>
• Redo(Ti) ajusta os valores de todos os itens de dados atualizados pela transação para os novos valores.– Se o log contém tanto o registro <Ti start> quanto o
registro <Ti commit>
• Operações são idempotentes.
Prof. Thiago Cavalcanti
PROCEDIMENTOS: UNDO(TI) E REDO(TI)
![Page 73: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/73.jpg)
1. Perda por falha: – Reconstrução (REDO)– Backup ------------> estado consistente mais próximo da
falha
2. O BD tornou-se inconsistente: – Reverter mudanças (UNDO)– BD inconsistente -------> BD consistente
Prof. Thiago Cavalcanti
SIMPLIFICANDO: POSSÍVEIS ESTRATÉGIAS
![Page 74: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/74.jpg)
• Diminui o overhead de leitura do log após uma falha introduzindo no log os pontos de controle.
• Exigem 3 ações1. Saída, para armazenamento estável, de todos os registros
residentes na memória principal2. Saída, para disco, de todos os blocos de buffer
modificados.3. Saída para armazenamento estável, de um registro de log
<checkpoint>
Prof. Thiago Cavalcanti
CHECKPOINTS
![Page 75: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/75.jpg)
• O tempo necessário para forçar a gravação de todos os buffers de memória modificados pode atrasar o processamento da transação.
• Fuzzy checkpoint – o sistema poderá reassumir o processamento das transações depois que o registro [checkpoint] for escrito no log
Prof. Thiago Cavalcanti
FUZZY CHECKPOINT
![Page 76: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/76.jpg)
• Uma alternativa às técnicas de recuperação baseada em log.
• Exige (teoricamente) menos acessos ao disco
• Difícil de ser aplicada em transações concorrentes.
• Pressupõe-se que o BD seja composto por “n” páginas de tamanho fixo
• Uma tabela de páginas com “n” entradas é construída
Prof. Thiago Cavalcanti
PAGINAÇÃO SHADOW
![Page 77: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/77.jpg)
• A ideia é manter 2 tabelas de página durante o processamento– A tabela de páginas atuais– A tabela de páginas shadow
• Quando um transação começa ambas as tabelas são idênticas.
PAGINAÇÃO SHADOW
(Nunca é modificada durante a transação)
![Page 78: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/78.jpg)
Prof. Thiago Cavalcanti
PÁGINAS DO BD
1
2
3
4
5
6
7
1
2
3
4
5
6
7
Pag 1
Pag 2
Pag 3
Pag 4
Pag 5
Pag 6
Pag 7
![Page 79: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/79.jpg)
Prof. Thiago Cavalcanti
PÁGINAS DO BD
1
2
3
4
5
6
7
1
2
3
4
5
6
7
Pag 1
Pag 2 (anterior)
Pag 3
Pag 7 (nova)
Pag 4
Pag 2 (nova)
Pag 5
Pag 6
Pag 7 (anterior)
![Page 80: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/80.jpg)
Prof. Thiago Cavalcanti
PÁGINAS DO BD
1
2
3
4
5
6
7
1
2
3
4
5
6
7
Pag 1
Pag 2 (anterior)
Pag 3
Pag 7 (nova)
Pag 4
Pag 2 (nova)
Pag 5
Pag 6
Pag 7 (anterior)
![Page 81: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/81.jpg)
• Ambiente Mono-usuário:
– não é necessário o log
• Ambiente Multi-usuário:
– pode-se usar o log se o método de controle de concorrência usar
Prof. Thiago Cavalcanti
PÁGINAS IMAGEM (SHADOW)
![Page 82: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/82.jpg)
• Vantagem– Recuperação após falhas é significativamente mais rápida.
• Não há necessidade de Undo ou Redo de operações
• Desvantagens– Fragmentação de dado: Páginas atualizadas mudam de localização no
disco, impedindo de manter juntas páginas relacionadas– Overhead de efetivação: Se a tabela de páginas é grande, o tempo
para gravar as tabelas de páginas imagem no commit é significativo– Coleta de lixo: Garbage Collection (liberação de páginas antigas) é
necessário após o commit
Prof. Thiago Cavalcanti
PÁGINAS IMAGEM (SHADOW)
![Page 83: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/83.jpg)
• Ano: 2018 Banca: FAURGS Órgão: TJ-RS Prova: FAURGS - 2018 - TJ-RS - Administrador de Banco de Dados
• Duas tabelas de página são mantidas durante a vida de uma transação: a tabela de página atual e a tabela de página cópia. Quando a transação inicia, as duas tabelas são idênticas. A tabela de página cópia nunca é alterada durante execução da transação. A tabela de página atual é alterada quando a transação processa uma operação de escrita. Quando a transação é parcialmente efetivada, a tabela de página cópia é descartada e a tabela de página atual torna-se a nova tabela de página. Se a transação for abortada, a tabela de página atual é descartada. Qual é a técnica de recuperação do banco de dados em caso da falha descrita acima?
• A Paginação de sombra (shadow).• B Recuperação adiada.• C Recuperação imediata.• D Checkpoints.• E Recuperação baseada em Log.
QUESTÃO.
![Page 84: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/84.jpg)
• O SGBD deve manter uma lista de transações processadas com os seguintes estados
– Ativas: iniciadas mas sem commit
– Acabadas (committed): desde o último checkpoint
– Abortadas desde o último checkpoint
Prof. Thiago Cavalcanti
ESTADOS DE TRANSAÇÕES
![Page 85: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/85.jpg)
• Rollback de Transações (Undo): É necessário se uma falha ocorrer depois do BD ter sido atualizado– Qualquer item de dado atualizado pela transação deve
voltar a seu valor anterior
• Rollback em Cascata: Se uma transação T é desfeita e uma transação S leu algum dado atualizado por T, S também tem que ser desfeita e assim por diante.– Podemos resolver esse problema exigindo o bloqueio de
duas fases severo*
Prof. Thiago Cavalcanti
ROLLBACK
![Page 86: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/86.jpg)
Prof. Thiago Cavalcanti
ROLLBACK EM CASCATA OU UNDO
Read(B)
Read(B)
Read(A)
Read(A) Read(D)
Write(B)
Write(B) Write(D)Read(D)
Write(D)
FALHA
![Page 87: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/87.jpg)
• Ambiente Multiusuário– Protocolo
• Depende do protocolo usado no controle de concorrência• Assumir protocolo de duas fases com bloqueios antes do início da execução,
guardando-os até o commit
– Procedimento• Usar duas listas de transações: as transações acabadas desde o último
checkpoint e as transações ativas• Aplicar a operação Redo para todas as operações write_item das transações
acabadas no log, na ordem na qual elas foram gravadas• As transações ativas e não acabadas são canceladas e devem ser re-
submetidas
Prof. Thiago Cavalcanti
RECUPERAÇÃO COM ATUALIZAÇÃO ADIADA (RAA)
![Page 88: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/88.jpg)
RECUPERAÇÃO COM ATUALIZAÇÃO ADIADA (RAA)
FALHACHECKPOINT
![Page 89: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/89.jpg)
• Desvantagem– Limita a execução concorrente das transações porque itens
ficam bloqueados até o commit das transações
• Vantagens– Uma transação não grava as modificações no BD até o commit.
Logo, uma transação nunca é desfeita por causa de falha– Uma transação nunca vai ler o valor de um item gravado por
outra não acabada, porque os itens estão bloqueados. Logo, não ocorrerá rollback em cascata
Prof. Thiago Cavalcanti
RECUPERAÇÃO COM ATUALIZAÇÃO ADIADA (RAA)
![Page 90: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/90.jpg)
• Dois tipos de Algoritmos– Undo/No-Redo
• Se a técnica de recuperação garante que todas as atualizações são gravadas no BD (disco) antes do commit da transação, não é necessário Redo
– Undo/Redo• Se as modificações são gravada no BD (disco) depois do
commit da transação
• Caso mais geral e mais complexo
Prof. Thiago Cavalcanti
RECUPERAÇÃO COM ATUALIZAÇÃO IMEDIATA (RAI)
![Page 91: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/91.jpg)
• Ambiente Multiusuário– Protocolo
• Assume-se que o log inclui checkpoints e o protocolo de concorrência como o de duas fases
– Procedimento• Usar duas listas de transações: as transações acabadas desde o
último checkpoint e as transações ativas• Aplicar a operação Undo para todas as operações write_item das
transações ativas, na ordem inversa de suas gravações no log• Aplicar a operação Redo para todas as operações write_item das
transações acabadas, na ordem na qual elas foram gravadas no log
Prof. Thiago Cavalcanti
RECUPERAÇÃO COM ATUALIZAÇÃO IMEDIATA (RAI)
![Page 92: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/92.jpg)
Prof. Thiago Cavalcanti
RECUPERAÇÃO COM ATUALIZAÇÃO IMEDIATA(RAI)
FALHACHECKPOINT
![Page 93: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/93.jpg)
Prof. Thiago Cavalcanti
RECUPERAÇÃO COM ATUALIZAÇÃO IMEDIATA(RAI)
FALHACHECKPOINT
![Page 94: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/94.jpg)
• Ano: 2019 Órgão: SEMEF Manaus - AM Prova: FCC - 2019 - SEMEF Manaus - AM -Técnico de Tecnologia da Informação da Fazenda Municipal
• Um projeto da Fazenda Municipal sobre a recuperação de bancos de dados vai aplicar a técnica da recuperação adiada, na qual as alterações observadas no banco de dados são salvas
• A após o encerramento da seção corrente do banco de dados.• B apenas quando o usuário titular da seção solicitar tal ação, explicitamente.• C após a transação responsável pelas alterações ter sido executada
completamente.• D imediatamente após qualquer modificação feita no banco de dados, ainda que a
transação responsável pelas alterações não tenha chegado a seu ponto final.• E quando o buffer utilizado para armazenar as transações efetuadas estiver com
80% de sua capacidade preenchida.
QUESTÃO.
![Page 95: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/95.jpg)
• O ARIES é um algoritmo de recuperação que é projetado para trabalhar com uma abordagem de “roubar” e “não forçar”.
• Está baseado em três conceitos:1. Registro adiantado em log
2. Repetição de histórico durante o refazer
3. Mudanças do log durante o desfazer
Prof. Thiago Cavalcanti
VISÃO GERAL DO ARIES
![Page 96: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/96.jpg)
• Quando o gerenciador de recuperação é invocado após uma falha, o reinício se procede em três fases:– Fase de Análise(1): identifica páginas sujas no buffer e
transações ativas no momento da falha.– Fase de Refazer(2): repete todas as ações, começando do ponto
apropriado no log e restaura o estado da base de dados idêntico ao momento da falha.
– Fase de Desfazer(3): desfaz as ações das transações que não realizaram o commit, de forma que a base de dados reflita apenas as ações das transações que realizaram o commit.
Prof. Thiago Cavalcanti
FASES DO ALGORITMOS DE ARIES
![Page 97: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/97.jpg)
• Informações necessárias– Log, Tabela de Transações e Tabela de Pagina Lixo.
– Essas duas tabelas são mantidas pelo gerenciador de transações e gravadas no log durante o checkpoint.
• Cada registro tem um numero de sequência de log (LSN)
• Usa fuzzy checkpoint
Prof. Thiago Cavalcanti
MAIS INFORMAÇÕES SOBRE O ARIES
![Page 98: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/98.jpg)
Prof. Thiago Cavalcanti
EXEMPLO DO ARIES
![Page 99: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/99.jpg)
• Exemplo: pane no disco– Principal Técnica: backup do BD
• Cópia periódica do BD e do log em outro meio de armazenamento (fitas)
– É necessário backup do log para não perder as transações efetuadas desde o último checkpoint
– Um log é inicializado após cada operação de backup. Logo, para recuperar após uma falha no disco• O BD é recriado a partir do último backup• Os efeitos de todas as transações committed, cujas operações foram
gravadas no log, são reconstruídos
Prof. Thiago Cavalcanti
BACKUP E RECUPERAÇÃO APÓS FALHAS CATASTRÓFICAS
![Page 100: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/100.jpg)
OBRIGADOPROF. THIAGO CAVALCANTI
![Page 101: Apresentação do PowerPoint...2. Suponha que a transação Ti emita uma write(Q) a) Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi necessário antes e](https://reader034.vdocuments.com.br/reader034/viewer/2022042419/5f363fd055d6f145dd1d60d1/html5/thumbnails/101.jpg)