Wykres pierwszeństwa - Precedence graph

Wykres pierwszeństwo , nazywane również wykres konflikt i serializability wykres , używany jest w kontekście kontroli współbieżności w bazach danych .

Wykres pierwszeństwa harmonogramu S zawiera:

  • Węzeł dla każdej zatwierdzonej transakcji w S
  • Łuk od T i do T j, jeśli akcja T i poprzedza i koliduje z jedną z akcji T j . Oznacza to, że akcje należą do różnych transakcji, co najmniej jedna z nich jest operacją zapisu, a akcje mają dostęp do tego samego obiektu (odczyt lub zapis).

Przykłady wykresów pierwszeństwa

Przykład 1

Image
Przykład 2

Przykład 2

Wykres pierwszeństwa harmonogramu D z 3 transakcjami. Ponieważ istnieje cykl (o długości 2; z dwoma krawędziami) przez zatwierdzone transakcje T1 i T2, ten harmonogram (historia) nie jest możliwy do serializacji w przypadku konfliktu . Zauważ, że zatwierdzenie Transakcji 2 nie ma żadnego znaczenia przy tworzeniu grafu pierwszeństwa.

Testowanie serializacji za pomocą wykresu pierwszeństwa

Image
Przykład testowania możliwości serializacji

Algorytm do testowania konfliktu serializacji harmonogramu S wraz z przykładowym harmonogramem.

lub

  1. Dla każdej transakcji T x uczestniczącej w harmonogramie S utwórz węzeł oznaczony T i na wykresie pierwszeństwa. Zatem wykres pierwszeństwa zawiera T 1 , T 2 , T 3 .
  2. Dla każdego przypadku w S, gdzie T j wykonuje read_item (X) po tym, jak T i wykonuje write_item (X), utwórz krawędź (T i → T j ) w grafie pierwszeństwa. To nie występuje nigdzie w powyższym przykładzie, ponieważ nie ma odczytu po zapisaniu.
  3. Dla każdego przypadku w S, w którym T j wykonuje element write_item (X) po wykonaniu przez T i elementu read_item (X), utwórz krawędź (T i → T j ) w grafie pierwszeństwa. Powoduje to krawędź skierowana z T 1 do T 2 (jak T 1 jest R (A) przed T 2 o W (A) ).
  4. Dla każdego przypadku w S, gdzie T j wykonuje write_item (X) po tym, jak T i wykonuje write_item (X), utwórz krawędź (T i → T j ) w grafie pierwszeństwa. To skutkuje z T skierowanych krawędziach 2 do T 1 , T 2 do T 3 i T 1 do T 3 .
  5. Harmonogram S można serializować wtedy i tylko wtedy, gdy wykres pierwszeństwa nie ma cykli. Ponieważ T 1 i T 2 stanowią cykl, powyższy przykład nie jest możliwy do serializacji (konflikt).

Bibliografia

Zewnętrzne linki