Sobes.tech
Junior — Middle

Como é que a base de dados utiliza o registo WAL para recuperar uma transação interrompida?

sobes.tech IA

Resposta da IA

WAL (Write-Ahead Logging) é um mecanismo de registo em bases de dados que garante uma recuperação fiável dos dados após falhas.

Quando uma transação altera dados, as alterações são primeiro registadas no registo WAL no disco, e depois aplicadas à base principal. Se o sistema for interrompido (por exemplo, devido a uma falha de energia), durante a recuperação a base lê o registo WAL e repete (redo) ou cancela (undo) as transações que estavam em processo, para devolver os dados a um estado consistente.

Assim, o WAL permite:

  • Garantir a atomicidade das transações.
  • Recuperar rapidamente após falhas, aplicando apenas as alterações do registo.

Processo aproximado de recuperação:

  1. Ao iniciar, a base lê o registo WAL.
  2. Aplica todas as transações concluídas.
  3. Reverte as transações não concluídas.
  4. Depois disso, a base está pronta para trabalhar com dados consistentes.