ACID транзакции, долговечность - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь понять транзакции ACID, и я ничего не понял о долговечности.

Насколько я знаю, долговечность гарантирует, что все завершенные транзакции сохраняются, , даже если происходит какой-либо сбой технологии . Что значит быть спасенным, даже если произойдет какой-то сбой технологии. Например, если мой сервер перестал работать во время транзакции, прежде чем он сохранит данные в базе данных, как долговечность гарантирует, что при повторном запуске сервера он будет правильно сохранять данные?

1 Ответ

0 голосов
/ 06 сентября 2018

На практике транзакции либо фиксируются, либо откатываются полностью, если происходит сбой технологии.

Сбои, связанные с непредвиденными остановками серверов (например, из-за катастрофического разрушения), часто приводят к откату транзакции (данные остаются в состоянии до начала транзакции, а не в каком-то промежуточном состоянии).

Откат транзакции должны быть повторены. Это зависит от прикладной программы, использующей базу данных. Таким образом, ACID накладывает определенное бремя на приложение, чтобы знать, когда транзакции завершены, или нет.

Это очень сложный предмет на практике. Тысячи и тысячи лет программиста были потрачены на то, чтобы сделать обработку транзакций максимально эффективной.

...