Zastosowanie kolorowej sieci Petriego do modelowania transakcji

Transkrypt

Zastosowanie kolorowej sieci Petriego do modelowania transakcji
Marek IWANIAK, Włodzimierz KHADZHYNOV
Wydział Elektroniki i Informatyki, Politechnika Koszalińska
E–mail: [email protected], [email protected]
Zastosowanie kolorowej sieci Petriego
do modelowania transakcji rozproszonej
1. Wstęp
Teoria i praktyka rozproszonych baz danych jest bardzo złożonym zagadnieniem. Przez
wiele lat badań nie udało się jednak wykształcić standardu, który wspomógłby projektowanie, implementacje i wdrażanie rozwiązań opartych o rozproszone bazy danych.
W szczególności brak obowiązującego standardu dla środowiska heterogenicznego.
Teoria sieci Petriego znajduje zastosowanie w modelowaniu i analizie procesów współbieżnych. Strukturę i działanie sieci Petriego można przedstawić w postaci algebraicznej i przetwarzać ją z wykorzystaniem metod numerycznych.
Poszukiwanym rozwiązaniem jest możliwość projektowania, modelowania i weryfikowania procesów zachodzących w rozproszonej bazie danych za pomocą sieci Petriego.
Tak opracowana i sprawdzona sieć, mogłaby posłużyć do nadzorowania przepływu
danych w węzłach rozproszonej bazy danych lub do generowania konfiguracji zapewniających realizację zaprojektowanych procesów.
Praca ta jest kontynuacją badań rozpoczętych w pracy [1], w której przedstawiono propozycje stworzenia modelu transakcji rozproszonej za pomocą zwykłej sieci Petriego.
W trakcie budowania drzewa osiągalnych rozwiązań dla zaproponowanej sieci wykryto
szereg niepożądanych stanów sieci oraz konfliktów odpaleń. Dla uniknięcia wykrytych
nieprawidłowości zaproponowano wykonanie modelu za pomocą kolorowej sieci Petriego. Zaproponowane rozwiązanie przedstawione zostało w niniejszej pracy.
2. Sieci Petriego
Teoria matematyczna sieci Petriego została stworzona przez Carla Adama Petriego.
Znajduje ona szerokie zastosowanie w analizie oraz modelowaniu. Podstawową siecią
Petriego jest sieć zwyczajna (ang. ordinary) określana również jako sieć klasy pozycja/tranzycja. Jej graficzną reprezentacją jest graf dwudzielny, składający się z dwóch
typów węzłów łączonych łukami. Węzły te to:
•
•
miejsca (pozycje, ang. places) - reprezentowane przez okręgi
tranzycje (przejścia, ang. transitions) - reprezentowane przez prostokąty lub kreski
Sieć Petri'ego można przedstawić jako trójkę N = (P, T, D) gdzie:
•
•
P jest zbiorem miejsc |P|=m
T jest zbiorem tranzycji |T| = n
48
Marek Iwaniak, Włodzimierz Khadzhynov
D jest macierzą incydencji (ang. incidence matrix) o rozmiarze m x n, macierz ta
opisuje relacje zbiorów miejsc oraz tranzycji
• D- jest macierzą pre-incydencji (ang. pre-incidence matrix)) o rozmiarze m x n, zawiera elementy d-ij = w(i,j)) określające wagę łuku wejściowego tranzycji j, czyli łuku
bezpośrednio łączącego miejsce i z tranzycją j
• D+ jest macierzą post-incydencji
post
(ang. post-incidence
incidence matrix) o rozmiarze m x n,
zawiera elementy d-ij = w(i,j)) określające wagę łuku wyjściowego tranzycji j, czyli łuku bezpośrednio łączącego tranzycje i z miejscem i
• D = [D- - D+ ] jest macierzą incydencji (ang. incidence matrix)) o rozmiarze m x n,
macierz ta tworzona jest poprzez odjęcie macierzy post-incydencji
post incydencji oraz prepre
incydencji, zawiera elementy dij = d-ij - d+ij. Elementy te powstają z odjęcia wag łuł
ków wyjściowych danej tranzycji od wag łuków wejściowych.
wejścio
Znakowaną sieć Periego można przedstawić jako czwórkę PN=(P, T,
T D, M0), gdzie
M0: P→{0,1,2,..}
{0,1,2,..} jest znakowaniem początkowym sieci, oznaczającym rozkład żetonów
(znaczników, markerów, tokenów) w miejscach sieci.
•
Dla danego znakowania w sieci mogą zachodzić zdarzenia dynamiczne. Jeżeli w miejmie
scach wejściowych danej tranzycji zgromadzi się liczba żetonów odpowiadająca wadze
łuków wejściowych tej tranzycji, to tranzycja ta może zostać odpalona (ang. fired). Po
odpaleniu danej tranzycji ze wszystkich jej
jej miejsc wejściowych, zgodnie z wagami
łuków wejściowych żetony zostają usunięte. Do miejsc wyjściowych tranzycji żetony
zostają dodane zgodnie z wagami łuków wyjściowych. Proces ten przedstawia rysunek 1.
Rys. 1. a) tranzycja gotowa do odpalenia b) tranzycja po odpaleniu
Fig. 1. a) transition ready to be fired b) transtion after firing
W sieci może dochodzić do konfliktu odpaleń tranzycji, gdy dla danego znakowania
początkowego przygotowanych jest więcej niż jedna tranzycja lub też, gdy odpalenie
jednej
nej lub więcej tranzycji uniemożliwia odpalenie pozostałych tranzycji [3].
W zależności od znakowania początkowego zbiór osiągalnych rozwiązań danej sieci,
może być dla każdego znakowania inny. Zbiory możliwych znakowań tworzy się i prepr
zentuje za pomocą grafu
grafu skierowanego nazywanego również drzewem osiągalności.
Reprezentuje w skończony sposób kolejne odpalenia tranzycji oraz zmiany znakowania
zwane również wykonaniem sieci. Korzeniem drzewa jest znakowanie początkowe.
Węzłami drzewa są znakowania osiągalne,
osiągalne, a łuki reprezentują odpalenie danej tranzycji.
Liśćmi drzewa są znakowania końcowe lub powtórzone.
Graf osiągalnych rozwiązań można przygotować analizując odpalenia kolejnych tranzytranz
cji. Analiza ta może zostać uproszczona dzięki algebraicznym własnościom sieci. Ko-
Zastosowanie kolorowej sieci Petriego do modelowania transakcji rozproszonej
49
lumny macierzy D określają zmianę znakowania sieci po odpaleniu tranzycji j. Kolejne
znakowania możemy obliczyć wg następującego równania.
Mk = Mk-1 + e[tj]D
(1)
Gdzie k=1,2,3,.. a e[tj] jest wektorem odpalenia zawierającym 1 w pozycji odpowiadającej j-tej tranzycji.
W kolorowanej sieci Petriego (Coloured Petri Net) żetonom krążącym wewnątrz sieci
przypisane zostają kolory jednoznacznie określające ich typ. W zwyczajnej sieci definiując wagi łuków wejściowych i wyjściowych tranzycji, można było określić przy
jakiej ilości żetonów w miejscu wejściowym tranzycji nastąpi jej wzbudzenie oraz ile
żetonów zostanie dodanych do miejsc wyjściowych po odpaleniu. Ponieważ zakres
typów żetonów w sieci kolorowej zostaje rozszerzony, rozszerzeniu o nowe typy podlegają również wagi łuków oraz macierze incydencji.
3. Zatwierdzanie transakcji rozproszonych
Dane przechowywane w bazie danych są w pełni przydatne tylko wtedy gry są pewne
i spójne. Każda zmiana wykonywana na danych w bazie powoduje przejście do zupełnie nowego stanu bazy danych. Kolejne zmiany mogą występować równocześnie lub
generować błędy. O zapewnienie poprawności i spójnego stanu bazy danych dba mechanizm transakcji. Właściwościami gwarantującymi poprawne przetwarzanie transakcji, są reguły ACID (ang. Atomicity, Consistency, Isolation, Durability) czyli Atomowość, Spójność, Izolacja, Trwałość.
Samodzielny DBMS (ang. database managment system) czyli system zarządzania bazą
danych ma zaimplementowanego TM (ang. transaction manager) zwanego menadżerem transakcji, dbającego o prawidłowe zarządzenia stanem bazy danych (zagwarantowanie spełnienia reguł ACID) oraz komunikację z klientami.
W rozproszonej bazie danych pojawia się dodatkowa specjalistyczna komunikacja pomiędzy innymi menadżerami transakcji. Komunikacja ta zachodzi pomiędzy menadżerem
transakcji pełniącym rolę koordynatora, a pozostałymi menadżrami transakcji pełniącymi
rolę uczestników transakcji. Sposób komunikacji między koordynatorem, a uczestnikami
definiuje określony protokół rozproszonego zatwierdzania. Klasycznym przykładem takiego
protokołu jest zatwierdzanie dwufazowe (Two-Phase Commit - 2PC). Protokół ten zgodnie
z nazwą realizuje dwie fazy: fazę głosowania i fazę zatwierdzania. Faza głosowania następuje po przesłaniu przez koordynatora zapytania o możliwość zatwierdzenia danej transakcji
rozproszonej. Komunikaty zwrotne od uczestników do koordynatora zawierają informacje
o gotowości danego uczestnika do zatwierdzenia transakcji. Po zebraniu głosów od wszystkich uczestników następuje faza zatwierdzania lub wycofywania. Jeżeli koordynator otrzymał od wszystkich uczestników potwierdzenie gotowości, wysyła komunikat o globalnym
zatwierdzeniu transakcji. Jeżeli którykolwiek uczestnik zagłosuje przeciw zatwierdzeniu
transakcji lub w ogóle nie prześle komunikatu (np. z powodu awarii), wówczas koordynator
prześle komunikat o globalnym odrzuceniu tej transakcji. Podejmowanie decyzji o zatwierdzeniu tylko przy jednomyślnym głosowaniu jest podstawowym sposobem zapewnienia
atomowości transakcji rozproszonej.
50
Marek Iwaniak, Włodzimierz Khadzhynov
Rys. 2. Algorytm przedstawiający realizacje protokołu dwufazowego zatwierdzania
z jednym uczestnikiem
Fig. 2. Two Phase Commit protocol algorithm with one participant
Na rysunku 2 przedstawiono protokół dwufazowego zatwierdzania w postaci algorytmu.
Przedstawiona reprezentacja została przygotowana na podstawie [2]. Nazwy stanów,
komunikatów oraz zapisów do logów pozostały w oryginalnej angielskojęzycznej formie. Okręgi przedstawiają stany procesu koordynatora oraz uczestnika. Prostokąty
przedstawiają operacje logowania otrzymanych komunikatów i podjętych decyzji do
dziennika systemowego. Strzałki opisują przepływ komunikatów i sterowania.
4. Model protokołu dwufazowego jako kolorowa sieć Petriego
Przedstawiony w punkcie 3 protokół 2PC przedstawiony został jako sieć Petriego na rysunku 3. Przykład został stworzony dla przypadku koordynatora i jednego uczestnika
transakcji rozproszonej. Miejsca związane z koordynatorem znajdują się przy lewej krawędzi rysunku, a miejsca związane z uczestnikiem znajdują się przy prawej krawędzi
rysunku. Miejsca oraz tranzycje zostały wykazane i opisane w tabeli 1. Nazwy miejsc
zostały poszerzone o prefiksy K oraz U określające przynależność miejsca do koordynatora lub uczestnika. Liczby przy łukach oznaczają wagi łuków. Ponieważ rysunek nie oddaje
kolorów, dokładny rozkład wag wszystkich kolorów zdefiniowanych w sieci przedstawiono w tabelach 2 oraz 3. Zdefiniowano trzy typy (kolory) żetonów: INIT (I) – żeton inicju-
Zastosowanie kolorowej sieci Petriego do modelowania transakcji rozproszonej
51
jący proces, COMMIT (C) – żeton reprezentujący komunikat commit lub vote-commit,
ABORT (A) – żeton reprezentujący komunikat abort lub vote-abort.
Rys. 3. Sieć Petriego odwzorowująca algorytm protokółu 2PC
Fig. 3. Petri Net of 2PC protocol algorithm
Tab. 1. Miejsca i tranzycje związane z koordynatorem
Tab. 1. Place and transitions of coordinator
Miejsca
Tranzycje
P0
K_INITIAL
T0
1) wpis do logu (begin_commit), 2) wiadomość do uczestników (prepare)
P1
K_READY
T1
1) wpis do logu (abort), 2) wiad. do uczestników (global-abort)
P2
K_ABORT
T2
1) wpis do logu (commit) 2) wiad. do uczestników (commit)
P3
K_COMMIT
T3
1) wpis do logu (abort), 2) wiad. do koordynatora (vote-abort)
P4
U_INITIAL
T4
1) wpis do logu (ready), 2) wiad. do koordynatora (vote-commit)
P5
U_READY
T5
1) wpis do logu (abort), 2) potwierdzenie do koordynatora
P6
U_ABORT
T6
1) wpis do logu (commit), 2) potwierdzenie do koordynatora
P7
U_COMMIT
Marek Iwaniak, Włodzimierz Khadzhynov
52
Tab. 2. Macierz pre-incydencji
Tab. 2. Pre Incidence Matrix
D-
t0
P0
INIT
P1
WAIT
P2
ABORT
P3
COMMIT
P4
INIT
P5
READY
P6
ABORT
P7
COMMIT
t1
t2
2_I , 1_A
2_I , 1_C
t3
t4
1_I , 1_A
1_I , 1_C
t5
t6
1_A
2_C
1_I
Tab. 3. Macierz post-incydencji
Tab. 3. Post Incidence Matrix
D+
t0
P0
INIT
P1
WAIT
P2
ABORT
P3
COMMIT
P4
INITIAL
P5
READY
P6
ABORT
P7
COMMIT
t1
t2
1_I
t3
t4
t5
1_I , 1_A
1_I , 1_C
t6
1_I
1_C
1_I
1_I
1_C
1_A
1_A
1_C
Tab. 4. Macierz incydencji
Tab. 4. Incidence Matrix
D
t0
P0
INIT
-1_I
P1
READY
1_I
P2
ABORT
P3
COMMIT
P4
INITIAL
P5
READY
P6
ABORT
P7
COMMIT
t1
t2
t3
t4
-2_I , -1_A
-2_I , -1_C
1_I , 1_A
1_I , 1_C
-1_I , -1_A
-1_I , -1_C
t5
t6
-1_A
-2_C
1_I
1_C
1_I
1_I
1_C
1_A
1_A
1_C
Wiersze Tabeli 2,3,4 zawierają miejsca P0,P1,P2,P3 reprezentujące stany koordynatora
oraz P4,P5,P6,P7 reprezentujące stany uczestnika. Kolumny t0 - t6 reprezentują tranzycje
Zastosowanie kolorowej sieci Petriego do modelowania transakcji rozproszonej
53
(przejścia). Puste komórki oznaczają brak łuków łączących dane miejsce z daną tranzycją. Dla czytelności zrezygnowano z wpisywania w te komórki liczby 0. Tabela 2 przedstawia macierz pre-incydencji, która oznaczana jest jako [D-]. Zawiera liczby opisujące
wagi zdefiniowanych kolorów w łukach wejściowych. danej tranzycji. Tabela 3 przedstawia macierz post-incydencji, która oznaczana jest jako [D+]. Zawiera liczby opisujące wagi zdefiniowanych kolorów w łukach wyjściowych. danej tranzycji. Tabela 4
przedstawia połączoną macierz incydencji, wyliczoną poprzez odjęcie macierzy postincydencji i pre-incydencji [D+ - D-]. Opisuje ona dynamikę zmian zachodzących
w danej sieci Petriego. Zawiera informacje o tym ile, żetonów danego typu zostanie
dodanych lub odjętych we wszystkich miejscach po odpaleniu danej tranzycji tj.
Mając przygotowana macierz incydencji, po określeniu znakowania początkowego
można przystąpić do analizy osiągalnych znakowań sieci. Wyniki takiej analizy w przypadku zwykłej sieci przedstawia się za pomocą grafu (drzewa) osiągalnych rozwiązań,
dzięki czemu można przedstawić alternatywne zakowania wynikające np. z jednoczesnego wzbudzenia dwóch tranzycji.
Dzięki zastosowaniu kolorowych żetonów możemy przeanalizować odpalenia kolejnych tranzycji dla interesująch dwóch przypadków bez tworzenia grafu. Wyniki analizy
osiągalnych rozwiązań zostaną przedstawione w formie tabelarycznej.
Tab. 5. Znakowania osiągalne dla znakowania z przypadku 1.
Tab. 5. Reachability sets for case 1 marking
Znakowanie
M0
M1
M2
M3
M4
P0
1_I
0
0
0
0
P1
0
1_I
2_I,1_C
0
0
P2
0
0
0
0
0
Miejsca
P3
P4
0
1_C
0
1_I,1_C
0
0
1_C
0
1_C
0
P5
0
0
1_C
2_C
0
P6
0
0
0
0
0
P7
0
0
0
0
1_C
Wzbudzona
tranzycja
T0
T4
T2
T6
-
Tab. 6. Znakowania osiągalne dla znakowania z przypadku 2
Tab. 6. Reachability sets for case 2 marking
Znakowanie
M0
M1
M2
M3
M4
Miejsca
P0
1_I
0
0
0
0
P1
0
1_I
2_I,1_A
0
0
P2
0
0
0
1_A
1_A
P3
0
0
0
0
0
Wzbudzona
tranzycja
P4
1_A
1_I,1_A
0
0
0
P5
0
0
0
1_A
0
P6
0
0
1_A
1_A
2_A
P7
0
0
0
0
0
T0
T3
T1
T5
-
Przypadek 1 zakłada gotowość uczestnika do zatwierdzenia transakcji rozproszonej. Dla
realizacji tego przypadku w naszej sieci dla znakowania M0 w miejscu P4 umieszczamy
jeden żeton typu COMMIT (1_C). Przypadek ten przedstawiony został w tabeli 5.
Przypadek 2 zakłada odrzucenie transakcji rozproszonej przez uczestnika. Dla realizacji
tego przypadku w naszej sieci dla znakowania M0 w miejscu P4 umieszczamy jeden
żeton typu ABORT (1_A). Przypadek ten przedstawiony został w tabeli 6.
Marek Iwaniak, Włodzimierz Khadzhynov
54
5. Podsumowanie
Problem występowania konfliktów odpaleń oraz niepożądanych znakowań jakie pojawiły się we wcześniejszych badaniach został rozwiązany poprzez zastosowanie kolorowej
sieci Petriego. W toku dalszych badań opracowany zostanie model kolorowej sieci Petriego odwzorowujący przypadek transakcji rozproszonej z więcej niż jednym uczestnikiem. Pozwoli to na zbadanie przypadku,w którym głosy za zatwierdzeniem nie będą
jednomyślne, czyli atomowość transakcji rozproszonej nie zostanie spełniona.
Literatura
1.
2.
3.
Iwaniak M., Khadzhynov W.: Wykorzystanie sieci Petriego do modelowania transakcji
rozproszonych. VIII Krajowa Konferencja „Bazy Danych: Aplikacje i Systemy
(BDAS`12)”
Tamer Özsu M., Valduriez P.: Principles of Distributed Database Systems III ed. Springer 2011
Banaszak Z., Majdzik P., Wójcik R.: Procesy współbieżne: modele efektywności funkcjonowania, Rozdział 2 „Modele sieci Petriego”, str. 93-143, Politechnika Koszalińska,
Koszalin 2011
Streszczenie
W rozdziale przedstawiono odwzorowanie protokołu 2PC (ang. Two-Phase Commit), czyli
protokołu dwufazowego zatwierdzania z wykorzystaniem kolorowej sieci Petriego. Wprowadzone zostały podstawowe pojęcia dotyczące sieci Petriego. Wyjaśniono istotę transakcji
w rozproszonych bazach danych oraz opisano działanie protokołu dwufazowego zatwierdzania. Przedstawiono kolorową sieć Petriego odwzorowującą działanie protokołu 2PC wraz
macierzami incydencji oraz analizą osiągalnych. Wykorzystanie sieci kolorowej pozwoliło
rozwiązać problem postawiony we wcześniejszych badaniach.
Usage of coloured Petri Net
for distributed transaction modeling
Summary
In this work the usage of Coloured Petri Net to model and study Two-Phase Commit protocol (2PC) is presented. Brief overview of Petri Nets is introduced. The nature of distributed
transactions is explained and 2PC protocol actions are described. The Petri Net of 2PC protocol followed by incidence matrixes and reachability analysis is presented. Usage of Coloured Petri Net resolves the problem stated in previous research work.