10.3. Сериализация транзакций
Понятно, что для того, чтобы
добиться изолированности
транзакций, в СУБД должны
использоваться какие-либо методы
регулирования совместного
выполнения транзакций.
План (способ) выполнения набора
транзакций называется сериальным,
если результат совместного
выполнения транзакций
эквивалентен результату
некоторого последовательного
выполнения этих же транзакций.
Сериализация транзакций - это
механизм их выполнения по
некоторому сериальному плану.
Обеспечение такого механизма
является основной функцией
компонента СУБД, ответственного за
управление транзакциями. Система, в
которой поддерживается
сериализация транзакций
обеспечивает реальную
изолированность пользователей.
Основная реализационная проблема
состоит в выборе метода
сериализации набора транзакций,
который не слишком ограничивал бы
их параллельность. Приходящим на ум
тривиальным решением является
действительно последовательное
выполнение транзакций. Но
существуют ситуации, в которых
можно выполнять операторы разных
транзакций в любом порядке с
сохранением сериальности.
Примерами могут служить только
читающие транзакции, а также
транзакции, не конфликтующие по
объектам базы данных.
Между транзакциями могут
существовать следующие виды
конфликтов:
- W-W - транзакция 2 пытается
изменять объект, измененный не
закончившейся транзакцией 1;
- R-W - транзакция 2 пытается
изменять объект, прочитанный
не закончившейся транзакцией 1;
- W-R - транзакция 2 пытается
читать объект, измененный не
закончившейся транзакцией 1.
Практические методы сериализации
транзакций основывается на учете
этих конфликтов.
Предыдущая
глава || Оглавление
|| Следующая глава
|