[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-write-ahead-log::ru":3,"gloss-cluster-write-ahead-log::ru":26,"gloss-next-write-ahead-log::ru":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"write-ahead-log","data-infra","Журнал упреждающей записи (Write-Ahead Log, WAL)","Журнал упреждающей записи (WAL) — это файл, доступный только для добавления, куда база данных записывает каждое изменение до того, как применит его к самим файлам данных. Правило заложено в названии: изменение сначала попадает в журнал, а затем в таблицы. Если сервер падает посреди записи, при перезапуске база повторно проигрывает журнал и восстанавливает согласованное состояние — ничего зафиксированного не теряется.\n\nЭтот единственный механизм лежит в основе устойчивости (буква D в ACID) и тихо обеспечивает гораздо больше. Восстановление на момент времени проигрывает WAL до выбранного мгновения. Потоковая репликация отправляет WAL на реплики, поддерживая их синхронность. Инструменты захвата изменений (CDC) читают WAL, чтобы выпустить событие для каждой изменённой строки.\n\nДля SaaS-разработчиков практический вывод такой: WAL — причина, по которой упавший Postgres возвращается целым, и по которой всплески записи раздувают диск, если журнал не архивируется и не вычищается. Следите за ростом WAL и опирайтесь на него — а не на триггеры — когда нужен надёжный поток изменений.","Журнал упреждающей записи фиксирует каждое изменение до записи в файлы данных: падение посреди записи лечится проигрыванием журнала, и на нём же живут CDC.",null,[11,14,17,20,23],{"slug":12,"name":13},"acid","ACID",{"slug":15,"name":16},"change-data-capture","Захват изменений данных (CDC)",{"slug":18,"name":19},"postgresql","PostgreSQL",{"slug":21,"name":22},"replication","Репликация (Replication)",{"slug":24,"name":25},"transactional-outbox","Транзакционный outbox (transactional outbox)",[27,29,32,35,38,42,45,48,49,52,56,59],{"slug":12,"category":5,"name":13,"updated_at":28},"2026-08-24T02:46:37+00:00",{"slug":30,"category":5,"name":31,"updated_at":28},"ann-search","ANN-поиск (приближённый поиск ближайших соседей)",{"slug":33,"category":5,"name":34,"updated_at":28},"backpressure","Обратное давление (backpressure)",{"slug":36,"category":5,"name":37,"updated_at":28},"batch-processing","Пакетная обработка (Batch Processing)",{"slug":39,"category":5,"name":40,"updated_at":41},"bm25","BM25","2026-08-24T02:46:38+00:00",{"slug":43,"category":5,"name":44,"updated_at":28},"cache","Кэш (Cache)",{"slug":46,"category":5,"name":47,"updated_at":28},"cap-theorem","Теорема CAP (CAP theorem)",{"slug":15,"category":5,"name":16,"updated_at":28},{"slug":50,"category":5,"name":51,"updated_at":28},"chroma","Chroma",{"slug":53,"category":5,"name":54,"updated_at":55},"chunk-overlap","Перекрытие фрагментов","2026-08-24T03:30:02+00:00",{"slug":57,"category":5,"name":58,"updated_at":28},"columnar-storage","Колоночное хранение",{"slug":60,"category":5,"name":61,"updated_at":28},"connection-pooling","Пулинг соединений (Connection Pooling)"]