BD-2st-1.2-w11.tresc-1.1-Slajd23
Faza Rollback
Przedstawimy obecnie, nieco dokładniej, działanie procedury Rollback w odniesieniu do przykładu ze slajdu 21. Następujące rekordy logu zostały zapisane do pliku logu w momencie akceptacji transakcji T2 (od początku pliku logu): .(S, 1), .(W,1,a,50,20), .(S, 2), .(W,2,c,100,50), .(C, 2). Procedura Rollback odczytuje rekordy pliku logu w odwrotnej kolejności. Omówimy kolejno operacje wykonywane w fazie Rollback:
5. (C, 2)wstaw T2 do listy transakcji zaakceptowanych
4. (W,2,c,100,50) T2 na liście transakcji zaakceptowanych – nie rób nic
3. (S, 2) T2 na liście transakcji zaakceptowanych – nie rób nic
2. (W,1,a,50,20) T1 – aktywna, wykonaj UNDO operacji aktualizacji – dana a przyjmuje wartość 50 (before image)
1.(S, 1)Transakcja T1 pasywna. Zakończ fazę ROLLBACK
W fazie Rollback została wykonana operacja UNDO dla transakcji T1, która była aktywna w momencie wystąpienia awarii. Przejdziemy do przedstawienia fazy Roll Forward.