BD-2st-1.2-w10.tresc-1.1-Slajd17
Algorytmy optymistyczne (2)
Z każdą transakcją Ti związane są czasy rozpoczęcia poszczególnych faz transakcji oraz utrzymywane są zbiory danych odczytywanych Ri i modyfikowanych Wi .
W fazie walidacji transakcji Ti , dla każdej transakcji Tj , która została zatwierdzona lub znajduje się w fazie walidacji sprawdzane jest czy spełniony jest jeden z warunków:
1. Warunek pierwszy: transakcja Tj zakończyła swoją fazę zapisu zanim transakcja Ti rozpoczęła swoją fazę odczytu.
2. Warunek drugi: wyrażenie nr 2 ze slajdu daje w wyniku zbiór pusty ((Ri SUMA Wi ) ILOCZYN Wj = ZBIÓR PUSTY) i Ti zakończyła swoją fazę odczytu zanim Tj zakończyła swoją fazę odczytu.
Jeżeli spełniony jest którykolwiek z powyższych warunków, transakcja Ti jest zatwierdzana i przechodzi do fazy zapisu. W przeciwnym przypadku, transakcja Ti jest wycofywana i restartowana ponownie. Łatwo zauważyć, że test walidacji jest stosunkowo prosty i może być efektywnie zaimplementowany. Algorytm optymistyczny został zastosowany jako mechanizm zarządzania współbieżnością, dla specyficznych danych, w systemie DB2.