Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Понятие протокола. Двухфазный протокол



Использование в транзакциях блокировок само по себе не гарантирует упорядоченного плана транзакций.

Например

T1 T2
begin tran begin tran
writeLock X  
read X  
X=X+100  
write X  
unlock X  
  writeLock X
  read X
  X=X=1.1
  write X
  unlock X
  writeLock Y
  read Y
  Y=Y*1.1
  write Y
  unlock Y
  commit
writeLock Y  
read Y  
Y=Y+100  
write Y  
Commit  

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

Проблема неупорядоченности осталась, из-за того, что первая транзакция сняла блокировку с элемента, а затем установила блокировку на другой элемент. Это сделано вроде бы для повышения производительности, но результат – некорректная работа плана.

Для обеспечения упорядоченности планов используют протоколы, устанавливающие правила на установку и снятие блокировок. Самый известный из таких протоколов – протокол двухфазной блокировки.

Транзакция следует этому протоколу, если в ней все операции блокирования предшествуют первой операции разблокирования.

Таким образом, транзакция делится на две фазы. 1 Фаза нарастания, в которой выполняются все необходимые блокировки, не освобождая ни одного элемента. 2 Фаза сжатия, в которой освобождаются элементы и не устанавливается ни одна блокировка. Однако, нет никакой потребности в том, чтобы все требуемые блокировки устанавливались одновременно.

Если бы транзакции T1 и T2 в предыдущем примере следовали двухфазному протоколу, то Т1 не снимала бы блокировку с элемента X до тех пор, пока заблокировала элемент Y. А Т2 находилась бы в состоянии ожидания, пока T1 не разблокирует X. Таким образом, устраняется неупорядоченность.





Дата публикования: 2015-02-18; Прочитано: 459 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...