Skip to content

Implementação do mecanismo de log REDO com checkpoint usando o SGBD em Python

Notifications You must be signed in to change notification settings

Andrewgaabriel/log-redo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Implementação do mecanismo de Log REDO com checkpoint usando PostgreSQL em Python

Implementado por: Andrew Gabriel e Igor Radkte


Conteúdo:

  1. Funções Implementadas
  2. Como testar/executar ?
  3. Como funciona o mecanismo de Log REDO ?
  4. Requisitos

Funções Implementadas:

conectandoBanco(): : = Faz a conexão entre a aplicação e o banco de dados.

executa_db(): : = Efetua um comando SQL com tratamento de erro.

insereBanco(): : = Insere o valor passado pelos parâmetros no banco de dados

openFile(): : = Abre o arquivo que foi passado por parâmetro

printFile(): : = Faz a impressão linha a linha de um vetor/file/lista

getParam(): : = Retorna o parâmetro que foi passado na execução da aplicação no terminal

getData(): : = Pega os dados presentes no arquivo de entrada e o passa para um vetor de dados

getInfoInit(): : = Separa do vetor de dados as informações que serão utilizadas na hora de inicializar a tabela

getRedoinfos(): : = Separa do vetor de dados as informações que serão utilizadas na hora de executar o REDO

getLinha(): : = Verifica se existe um objeto dado ID por parâmetro

parserInfoInit(): : = Parseamento das informações iniciais para preencher a tabela

initTable(): : = Faz a inicialização da tabela - percorre vetor e insere no banco

createTable(): : = Cria a tabela log

Como testar/executar:

  • Requisitos:

    • Python 3.7
    • PostgreSQL
  • Como executar:

    • Você deve ter em um diretório o arquivo da aplicação e o arquivo de entrada.

    • Antes de executar a aplicação, você deve deve configurar o banco de dados, com nome do banco, usuário, senha e host. Estas alterações devem ser feitas diretamente no código a partir da linha 27.

    • Execute o arquivo da aplicação no terminal da seguinte maneira:

      python3 log-redo.py <arquivo_de_entrada.txt> 
      

Funcionamento:

  • Descrição do mecanismo de Log REDO:
    • Este modelo de log recovery percorre o arquivo de Log em busca de commits e checkpoints, quando um commit de uma transação é encontrado deve se refazer as operações que a transação efetuou. As transações commitadas antes de um Checkpoint não necessitam ser refeitas pois o Checkpoint garante que as informações que foram alteradas e/ou atualizadas estão presentes no disco.

Requisitos do trabalho acadêmico:

  • Funções a serem implementadas:

    1. Carregar o banco de dados com a tabela antes de executar o código do log (para zerar as configurações e dados parciais);

    2. Carregar o arquivo de log;

    3. Verifique quais transações devem realizar REDO. Imprimir o nome das transações que irão sofrer Redo. Observem a questão do checkpoint;

    4. Checar quais valores estão salvos nas tabelas (com o select) e atualizar valores inconsistentes (update);

    5. Reportar quais dados foram atualizados;

    6. Seguir o fluxo de execução conforme o método de REDO, conforme visto em aula;

  • Execução:

    1. Pode ser implementado em duplas;

    2. A nota será individual;

    3. Deve ser enviado o repositório no GIT (será avaliado a participação dos membros através dos commits). Um único commit com o código pronto será entendido como uma cópia e receberá nota zero. Os commits irão interferir na nota final dos membros da dupla;

    4. Será testado com outro arquivo de log a execução do programa;

About

Implementação do mecanismo de log REDO com checkpoint usando o SGBD em Python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages