BD-2st-1.2-w08.tresc-1.1-Slajd30
Realizacje odtwarzalne (1)
Można sformułować następujące pytanie: Czy własność uszeregowalności gwarantuje poprawność dowolnej realizacji transakcji, w szczególności, czy gwarantuje wolność od anomalii współbieżnego wykonywania transakcji? Odpowiedź na to pytanie jest twierdząca, jeżeli rozważamy wyłącznie realizacje będące zaakceptowanymi projekcjami, tj. realizacje zawierające tylko operacje zatwierdzonych transakcji. W rzeczywistości, realizacje zawierają nie tylko operacje zatwierdzonych transakcji. Transakcje są wycofywane przez użytkowników, podlegają awariom, są wycofywane przez system np. na skutek wystąpienia zakleszczenia. Jeżeli rozważamy realizacje, które zawierają operacje wycofywanych transakcji, to odpowiedź na postawione na wstępie pytanie jest negatywna. Ilustruje to przykładowa realizacja przedstawiona na slajdzie. Realizacja ta jest uszeregowalna – po usunięciu operacji transakcji T1, której wykonanie zostało przerwane na skutek wystąpienia awarii w systemie, pozostała realizacja zawiera operacje zatwierdzonej transakcji T1. Niestety, realizacja ta, mimo, że uszeregowalna, nie jest wolna od anomalii brudnego odczytu.
Transakcja T2 odczytuje wartości danych x i y zapisane przez transakcję T1, która następnie, jest wycofywana. Zauważmy, że po restarcie systemu, transakcja T2 nie zostanie poprawnie odtworzona, gdyż powinna ona odczytać stan bazy danych sprzed wykonania transakcji T1.