Протокол двухфазной блокировки. Теорема Есварана о сериализуемости

Концепция способности к упорядочению была впервые предложена Есвараном в виде протокола двухфазной блокировки.

Протокол двухфазной блокировки состоит в следующем:

1. Перед выполнение каких-либо операций с некоторым объектом, транзакция должна заблокировать этот объект.

2. После снятия блокировки, транзакция не должна накладывать никаких других блокировок.

Транзакции, используемые в этом протоколе, не различаются по типам и считаются монопольными (т.е. X-locks).

Теорема Есварана. Если все транзакции в смеси подчиняются протоколу двухфазной блокировки, то для всех чередующихся графиков существует возможность упорядочения.

Протокол двухфазной блокировки характеризуется двумя фазами:

  • 1 фаза - нарастание блокировок. Во время этой фазы накладываются блокировки, и производится работа с заблокированными объектами.
  • 2 фаза - снятие блокировок. Во время этой фазы блокировки только снимаются. Работа с ранее заблокированными данными может продолжаться.

Работа транзакции по такому протоколу можно представить схемой на рисунке 1:

Рисунок 1 Работа транзакции по протоколу двухфазной блокировки

На рисунке 2 показан пример транзакции, не подчиняющийся протоколу двухфазной блокировки:

Рисунок 2 Транзакция, не подчиняющаяся протоколу двухфазной блокировки

На практике, как правило, вторая фаза сводится к одной операции завершения транзакции (или отката транзакции) с одновременным снятием всех блокировок.

Следствие. Если некоторая транзакция A не подчиняется протоколу двухфазной блокировки (и, следовательно, состоит не менее чем из двух операция блокирования и разблокирования), то всегда можно построить другую транзакцию B, которая при чередующемся выполнении вместе с A приводит к графику, не подлежащему упорядочению и, соответственно, неверному.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: