Транзакция (информатика): различия между версиями

отмена правки 87160360 участника 91.231.218.138 (обс.)
[непроверенная версия][отпатрулированная версия]
(отмена правки 87160360 участника 91.231.218.138 (обс.))
 
== Реализация ==
Полноценная реализация уровней изоляции и свойств ACID представляет собой нетривиальную задачу. Обработка поступающих данных приводит к большому количеству маленьких изменений, включая обновление как самих таблиц, так и индексов. Эти изменения потенциально могут потерпеть неудачу: закончилось место на диске, операция занимает слишком много времени (timeout) и т. д. Система должна в случае неудачи корректно вернуть базу данных в состояние до транзакции.
 
Первые коммерческие СУБД (к примеру, IBM [[DB2]]), пользовались исключительно блокировкой доступа к данным для обеспечения свойств ACID. Но большое количество блокировок приводит к существенному уменьшению производительности. Есть два популярных семейства решений этой проблемы, которые снижают количество блокировок: