Продвинутый
Как обеспечивается свойство Durability (Долговечность) в ACID?
Если транзакция сделала COMMIT, данные не должны потеряться даже при внезапном отключении питания сервера.
СУБД (PostgreSQL, Oracle) обеспечивает это с помощью WAL (Write-Ahead Log — Журнал упреждающей записи).
1. При изменении данных СУБД сначала пишет эти изменения в специальный файл лога (WAL) на жестком диске.
2. Только после успешной записи в лог транзакция считается закоммиченной.
3. Сами данные в таблицах (в файлах данных) обновляются позже, в фоновом режиме.
4. Если сервер "упал", при перезапуске СУБД прочитает WAL и накатит все потерянные изменения.