Перейти к содержанию

Недостаточная изолированность

Изолированность (isolation в аббревиатуре ACID) гарантирует, что результат параллельного выполнения нескольких ACID транзакций будет таким же, как при некоем последовательном выполнении. База Данных дает иллюзию того, что каждая ACID транзакция имеет эксклюзивный доступ к информации.
В случае с повествованиями мы имеем дело с ситуацией, когда каждая локальная транзакция сразу же фиксируется и обновления становятся доступными другим повествованиям, следовательно, либо их могут изменить другие повествования до окончания текущего, либо другие повествования смогут их прочитать.
Нехватка изолированности может вызывать аномалии — ситуации, когда параллельное выполнение транзакций даёт иные результаты, чем последовательное. Для борьбы с аномалиями применяют стратегии проектирования повествований, называемые контрмерами.

Аномалии

  • Потеря обновлений — одно повествование перезаписывает изменения, внесенные другим, не читая их при этом;
  • “Грязное” чтение — транзакция или повествование читают незавершенные обновления другого повествования;
  • Нечеткое чтение — два разных типа повествования читают одни и те же данные,но получают разные результаты, потому что другое повествование внесло изменения.

Контрмеры

Полезно иметь в виду структуру повествования.


Последнее обновление : 22 мая 2023 г.
Дата создания : 26 июля 2022 г.

Комментарии

Комментарии