Как работает механизм Write-Ahead Logging (WAL) в реляционных базах данных? Что произойдет с данными в памяти, если сервер физически отключится от питания в момент фиксации (COMMIT) транзакции?

При WAL журнал изменений должен попасть на устойчивый носитель раньше соответствующих страниц данных. После отключения питания содержимое RAM теряется, но зафиксированные изменения восстанавливаются по журналу.

Короткий ответ

Что ответить на собеседовании

При WAL журнал изменений должен попасть на устойчивый носитель раньше соответствующих страниц данных. После отключения питания содержимое RAM теряется, но зафиксированные изменения восстанавливаются по журналу.

Подробный разбор

Ответ с пояснениями

При WAL журнал изменений должен попасть на устойчивый носитель раньше соответствующих страниц данных. После отключения питания содержимое RAM теряется, но зафиксированные изменения восстанавливаются по журналу.

При корректных настройках синхронной долговечности успешный commit подтверждается после необходимой записи WAL; страницы данных могут быть записаны позднее. Если питание пропало до устойчивой фиксации, транзакция может не сохраниться. Если сервер успел commit, но ответ не дошёл, клиент не знает результат без проверки. Асинхронные настройки и ненадёжное поведение дискового кеша могут ослабить гарантии; повтор операции должен учитывать неопределённый исход.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее