WAL (журнал предзаписи)
Write-Ahead Logging — база записывает изменения в последовательный журнал ДО того, как применит их к файлам данных. Это даёт долговечность (D в ACID): после сбоя журнал проигрывается заново и фиксированные транзакции восстанавливаются. Основа репликации и восстановления на момент времени.
Принцип: последовательная запись в журнал намного быстрее случайной записи в файлы данных; журнал — это истина, а файлы данных обновляются лениво (на контрольной точке). После сбоя выполняется redo с последней контрольной точки. WAL в PostgreSQL обеспечивает и потоковую репликацию (отправка WAL репликам), и логическую репликацию (декодирование WAL в изменения строк), и PITR (архив WAL плюс базовая копия). Термин общий: в MySQL/InnoDB это «redo log», у SQLite есть режим WAL. Типичный инцидент — разрастание WAL: если реплика или слот репликации завис, журнал копится и заполняет диск.