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í:
- Při spuštění databáze čte WAL deník.
- Aplikuje všechny dokončené transakce.
- Vrací neukončené transakce.
- Poté je databáze připravena pracovat s konzistentními daty.