Sobes.tech
Junior — Middle

Jak databáze používá WAL-záznam k obnovení přerušené transakce?

sobes.tech AI

Odpověď od AI

WAL (Write-Ahead Logging) je mechanismus zaznamenávání v databázích, který zajišťuje spolehlivé obnovení dat po selhání.

Když transakce mění data, změny jsou nejprve zaznamenány do WAL deníku na disk, a poté jsou aplikovány na hlavní databázi. Pokud dojde k přerušení systému (například kvůli výpadku napájení), při obnově databáze čte WAL deník a opakuje (redo) nebo ruší (undo) transakce, které byly v procesu, aby data byla v konzistentním stavu.

Tímto způsobem WAL umožňuje:

  • zaručit atomaritu transakcí.
  • rychle se zotavit po selhání, aplikováním pouze změn z deníku.

Přibližný proces obnovení:

  1. Při spuštění databáze čte WAL deník.
  2. Aplikuje všechny dokončené transakce.
  3. Vrací neukončené transakce.
  4. Poté je databáze připravena pracovat s konzistentními daty.