Что такое надежность в ACID

Python Senior Без компании
Что такое надежность в ACID
Ответы
Надежность (Durability) в ACID гарантирует, что после успешного завершения транзакции (commit) изменения сохраняются в БД даже при сбоях (отключение питания, краш сервера). **Как достигается:** - Журналирование (WAL — Write-Ahead Logging): изменения сначала записываются в лог, затем в основную БД. - Синхронная запись на диск (fsync) перед подтверждением commit. **Пример с PostgreSQL:** ``` BEGIN; UPDATE accounts SET balance = balance - 100 WHERE user_id = 1; UPDATE accounts SET balance = balance + 100 WHERE user_id = 2; COMMIT; -- данные гарантированно сохранены даже после сбоя ``` **Нюансы:** - Может снижать производительность из-за жестких требований к записи. - В NoSQL (например, MongoDB) надежность иногда жертвуется в пользу скорости (writeConcern: 0).