data-infra
Словарь ↗Журнал упреждающей записи (Write-Ahead Log, WAL)
Журнал упреждающей записи (WAL) — это файл, доступный только для добавления, куда база данных записывает каждое изменение до того, как применит его к самим файлам данных. Правило заложено в названии: изменение сначала попадает в журнал, а затем в таблицы. Если сервер падает посреди записи, при перезапуске база повторно проигрывает журнал и восстанавливает согласованное состояние — ничего зафиксированного не теряется. Этот единственный механизм лежит в основе устойчивости (буква D в ACID) и тихо обеспечивает гораздо больше. Восстановление на момент времени проигрывает WAL до выбранного мгновения. Потоковая репликация отправляет WAL на реплики, поддерживая их синхронность. Инструменты захвата изменений (CDC) читают WAL, чтобы выпустить событие для каждой изменённой строки. Для SaaS-разработчиков практический вывод такой: WAL — причина, по которой упавший Postgres возвращается целым, и по которой всплески записи раздувают диск, если журнал не архивируется и не вычищается. Следите за ростом WAL и опирайтесь на него — а не на триггеры — когда нужен надёжный поток изменений.
Похожие термины