Escolar Documentos
Profissional Documentos
Cultura Documentos
RESUMO ................................................................................................................................... 1
2. Introdução......................................................................................................................... 3
3. Controle de Concorrência................................................................................................. 4
Log ......................................................................................................................................... 9
Recuperação ......................................................................................................................... 10
Checkpoint Fuzzy................................................................................................................. 10
5. Conclusão ....................................................................................................................... 12
6. Bibliografia..................................................................................................................... 13
RESUMO
O presente trabalho tem como objectivo abordar o tema referente a Recuperação de falhas em
transações concorrentes, abordar os mecanismos utilizados para correção ou reversão de estados
em transações, falaremos sobre logs que são registos de operações, o cache que aborda sobre os
métodos de armazenamento, assim como os algoritmos de recuperação de falhas.
Qualquer banco de dados que seja utilizado por mais de um usuário, terá que administrar o
controle de concorrência entre as informações que estão sendo acessadas pelos usuários.
Controle de concorrência é quando, em um banco de dados, usuários distintos tentam acessar a
mesma informação e então é feito um controle entre essas transações. E para a solução deste
problema existem diversas técnicas de controle de concorrência que são utilizadas como forma
de assegurar o isolamento das transações executadas ao mesmo tempo.
Técnicas de controle de concorrência são utilizadas para garantir que transações concorrentes
sejam executadas adequadamente.
Muitos problemas podem ocorrer quando transações concorrentes são executadas sem
controle
3
3. CONTROLE DE CONCORRÊNCIA
Técnicas de controle de concorrência são utilizadas para garantir que transacções concorrentes
sejam executadas adequadamente. Muitos problemas podem ocorrer quando transacções
concorrentes são executadas sem controle, a saber:
4
Figure 2: problema da actualização temporária
A transacção T1 falha e o sistema deve alterar o valor do item X para o seu valor anterior;
porém, T2 já leu o valor temporário "incorrecto" do item X.
5
Problema da leitura não-repetitiva: Ocorre quando uma transação T lê um item duas
vezes e o item é alterado por uma outra transação T' entre as duas leituras de T. Portanto,
T recebe diferentes valores para suas duas leituras do mesmo item.
4. RECUPERAÇÃO DE FALHAS
A seguir iremos ver quais os efeitos das falhas de transacção durante a execução concorrente.
Se uma transacção Ti falhar, por qualquer razão, precisamos desfazer seus efeitos para garantir a
propriedade de atomicidade da transacção. Em um sistema que permite execução concorrente,
também é necessário assegurar que qualquer transacção Tj que seja dependente de Ti também
seja abortada. Para alcançar essa segurança, precisamos colocar restrições no tipo de escalas
permitidas no sistema.
A figura a seguir mostra uma escala na qual T9 e uma transacção que executa apenas uma
instrução: read(A). Supondo que o sistema permita que T9 seja efectivada imediatamente após
executar a instrução read(A). Assim, T9 é efectivada antes que T8 o seja. Agora supondo que T8
falhe antes da efectivação. Como T9 leu o valor do item de dados A escrito por T8, temos de
6
abortar T9 para assegurar a atomicidade da transacção. Porém, T9 já foi efectivada e não poderá
ser abortada. Assim, temos uma situação em que é impossível se recuperar correctamente da
falha de T8.
Figure 5: Escala 11
Mesmo em uma escala recuperável, para o sistema recuperar-se correctamente da falha de uma
transacção Ti, pode ser que seja necessário desfazer diversas transacções. Tais situações ocorrem
se as transacções leram dados escritos por Ti, como ilustração pode se considerar a a escala
parcial da figura que se segue. A transacção T10 escreve um valor para A que é lido pela
transacção T11. A transacção T11 escreve um valor para A que é lido pela transacção T12.
Supondo que, nesse momento, T10 falhe. T10 deverá ser desfeita. Como T11 é dependente de T10,
T11 deverá ser desfeita. Como T12 é dependente de T11, T12 deverá ser desfeita. Esse fenómeno,
no qual a falha de uma única transacção conduz a uma série de revisões de transacção, é
chamado de retorno em cascata (cascading rollback).
7
Figure 6: Escala em cascata
O SGBD não deve permitir que algumas operações de uma transação T sejam aplicadas ao
banco de dados enquanto outras operações de T não sejam. Isso pode acontecer quando uma
transação falha após executar algumas de suas operações (e não todas).
Propósito
8
Imposição do controle de concorrência: O método de controle de concorrência pode
decidir abortar uma transacção porque ela viola a serialização, ou pode abortar uma ou
mais transacções para resolver um estado de deadlock entre várias transacções. As
transacções abortadas devido a violações de serialização ou deadlock em geral são
reiniciados automaticamente em outro momento;
Falha no disco: alguns blocos de disco podem perder seus dados devido a um defeito de
leitura, gravação ou por causa de uma falha da cabeça de leitura/gravação. Isso pode
acontecer durante uma operação de leitura ou gravação da transacao;
Problemas físicos e catástrofes: isso se refere a uma lista sem fim de problemas que
incluem falha de energia ou de ar condicionado, incêndio, roubo, sabotagem entre outros.
Para os 3 primeiros tipos de falhas, o sistema deve manter informações suficientes para se
recuperar da falha.
Log
Mantém o registro sequencial das operações de transacção que afectam itens do BD estes
dados podem ser necessários para desfazer ações de uma transação “abortada”, recuperar o
sistema de falhas e Auditoria. O Log é mantido em disco afectado apenas pelas falhas em disco
ou catastróficas, recomenda-se um disco separado
As transacções inicializadas, mas que não gravaram seus registos de commit no log,
devem ser desfeitas;
As transacções que gravaram seus registos de commit no log podem ter que ser refeitas a
partir dos registros do log.
9
[abort,T]: Indica que a transacção T foi abortada.
[checkpoint]: indica gravação de todos os dados modificados do buffer em disco
Recuperação
Checkpoint Fuzzy
Usa [begin_checkpoint] no início do processo e libera para outros processos.
10
Algoritmo básico:
Operações devem ser idempotentes (execuções múltiplas têm o mesmo efeito de uma
execução única)
11
5. CONCLUSÃO
12
6. BIBLIOGRAFIA
Elmasri, Ramez; Navathe, Shamkant B. Sistemas de Banco de Dados. Pearson, 6a edição. 2010.
13