Write Ahead Logging
Skočit na navigaci
Skočit na vyhledávání
Jedná se o obvyklý mechanismus zajištění transakcí, tj. datové soubory (tabulky a indexy) jsou modifikovány až poté, co byl pořízen záznam do logu. Díky tomu, že lze obsah databáze zrestaurovat z transakčního logu, není nutné vynucovat zápis na disk (fsync) datových souborů modifikovaných v transakci ve chvíli potvrzení transakce. Stačí fsync logu. Přínosem je:
- vyšší výkon - redukce fsynců, navíc možnost sdílení fsynců v konkurenčním prostředí, tj. důsledkem potvrzení (COMMIT) více transakcí je jeden požadavek na fsync logu,
- skutečná konzistence datových stránek, před zavedením WAL mohlo dojít k poškození indexů případně tabulek bez možnosti rekonstrukce. Nyní se po restartu provádí automatická obnova datových stránek na základě jejich obsahu v logu,
- možnost online zálohování a obnovy k námi určenému okamžiku (PITR). Systém udržuje pouze několik posledních bloků (souborů) transakčního logu. Pokud je ale zálohujeme (provedeme jejich kopii), můžeme následně z těchto kopii rekonstruovat databázi (obdoba obnovy po pádu). Prvotní záloha nemusí být absolutně konzistentní (postačí kopie souborů svazku provedená za chodu). Přehrávání logu (při obnově) můžeme zastavit v libovolném okamžiku před koncem logu (každá operace zapsaná v logu obsahuje časovou značku), např. těsně před okamžik, kdy byly odstraněny důležité tabulky nebo data (PITR).