Sobes.tech
Junior — Middle

W jaki sposób baza danych wykorzystuje dziennik WAL do odzyskiwania przerwanej transakcji?

sobes.tech AI

Odpowiedź od AI

WAL (Write-Ahead Logging) to mechanizm rejestrowania w bazach danych, który zapewnia niezawodne odzyskiwanie danych po awariach.

Gdy transakcja zmienia dane, zmiany są najpierw zapisywane w dzienniku WAL na dysku, a następnie stosowane do głównej bazy. Jeśli system zostanie przerwany (np. z powodu awarii zasilania), podczas odzyskiwania baza odczytuje dziennik WAL i powtarza (redo) lub anuluje (undo) transakcje, które były w trakcie, aby przywrócić dane do spójnego stanu.

W ten sposób WAL pozwala:

  • gwarantować atomowość transakcji.
  • szybko się odzyskać po awariach, stosując tylko zmiany z dziennika.

Przybliżony proces odzyskiwania:

  1. Po starcie baza odczytuje dziennik WAL.
  2. Zastosowuje wszystkie zakończone transakcje.
  3. Anuluje nieukończone transakcje.
  4. Po tym baza jest gotowa do pracy z spójnymi danymi.