Базы данных. Вводный курс

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


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

Пусть в системе одновременно выполняется некоторое множество транзакций S = {T1, T2, …, Tn}. План (способ) выполнения набора транзакций S

(в котором, вообще говоря, чередуются или реально параллельно выполняются операции разных транзакций) называется сериальным, если результат совместного выполнения транзакций эквивалентен результату некоторого последовательного выполнения этих же транзакций (Ti1, Ti2, …, Tin).

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

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

Между транзакциями T1

и T2

могут существовать следующие виды конфликтов:

  • W/W – транзакция T2

    пытается изменять объект, измененный не закончившейся транзакцией T1

    (наличие такого конфликта может привести к возникновению ситуации потерянных изменений);

  • R/W – транзакция T2

    пытается изменять объект, прочитанный не закончившейся транзакцией T1

    (наличие такого конфликта может привести к возникновению ситуации неповторяющихся чтений);

  • W/R – транзакция T2

    пытается читать объект, измененный не закончившейся транзакцией T1

    (наличие такого конфликта может привести к возникновению ситуации «грязного» чтения).

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



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