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
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
Algorytm do testowania konfliktu serializacji harmonogramu S wraz z przykładowym harmonogramem.
- lub
- 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 .
- 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.
- 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) ).
- 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 .
- 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
- The Fundamentals of Database Systems, wydanie 5. Korzystanie z grafów pierwszeństwa jest omówione w rozdziale 17, ponieważ odnoszą się one do testów serializacji konfliktów .
- Abraham Silberschatz, Henry Korth i S. Sudarshan. 2005. Koncepcje systemów baz danych (wyd. 5), PP. 628–630. McGraw-Hill, Inc., Nowy Jork, NY, USA.