Основы современных баз данных

         

Сериализация транзакций


Понятно, что для того, чтобы добиться изолированности транзакций, в СУБД должны использоваться какие-либо методы регулирования совместного выполнения транзакций.

План (способ) выполнения набора транзакций называется сериальным, если результат совместного выполнения транзакций эквивалентен результату некоторого последовательного выполнения этих же транзакций.

Сериализация транзакций - это механизм их выполнения по некоторому сериальному плану. Обеспечение такого механизма является основной функцией компонента СУБД, ответственного за управление транзакциями. Система, в которой поддерживается сериализация транзакций обеспечивает реальную изолированность пользователей.

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

Между транзакциями могут существовать следующие виды конфликтов:

  • W-W - транзакция 2 пытается изменять объект, измененный не закончившейся транзакцией 1;

  • R-W - транзакция 2 пытается изменять объект, прочитанный не закончившейся транзакцией 1;

  • W-R - транзакция 2 пытается читать объект, измененный не закончившейся транзакцией 1.

    Практические методы сериализации транзакций основывается на учете этих конфликтов.



    Содержание раздела