Що означає довговічність (Durability)?
Довговічність (Durability) - це властивість транзакції, яка гарантує, що після фіксації (commit) результат операції не втратиться, навіть якщо станеться збій: відключення живлення, падіння сервера, перезапуск процесу чи системи.
Що саме гарантується
- дані, які було успішно зафіксовано, обов'язково потраплять на надійне сховище (диск, журнал, WAL/oplog тощо)
- після перезапуску база зможе відновити зафіксований стан
- відкотитися назад дані вже не можуть, тому що транзакцію завершено
Як це досягається технічно
Різні СУБД реалізують Durability через:
- журнали операцій (Write-Ahead Log, oplog)
- fsync / журналювання файлових систем
- реплікацію (у розподілених системах)
- контрольні точки (checkpoints)
Суть одна: перед підтвердженням транзакції система гарантує запис змін у стійке сховище, а не лише в оперативну пам'ять.
Приклад
Якщо транзакція перевела гроші між рахунками й повернула commit OK, то:
- навіть при миттєвому падінні сервера через секунду
- після перезапуску дані будуть у тому стані, який був на момент commit
Коротке визначення
Durability = "після commit дані не зникнуть і не відкотяться, система гарантує їхню збереженість".
Ця властивість закриває останній ризик - втрату чи відкат уже прийнятих змін.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.