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.