Dwufazowy protokół commit

wspólna architekturaedit

w wielu przypadkach protokół 2PC jest dystrybuowany w sieci komputerowej. Jest łatwo dystrybuowany przez implementację wielu dedykowanych komponentów 2PC podobnych do siebie, zwykle nazywanych menedżerami transakcji (TMS; określanymi również jako agenci 2PC lub Monitory przetwarzania transakcji), które wykonują protokół dla każdej transakcji (np. X/Open Xa grupy Open). W bazach danych zaangażowanych w transakcję rozproszoną, uczestnicy, zarówno koordynator, jak i uczestnicy, rejestrują się w celu zamknięcia TMs (Zwykle przebywającego na odpowiednich węzłach sieciowych co uczestnicy) w celu zakończenia tej transakcji za pomocą 2PC. Każda transakcja rozproszona ma doraźny zestaw TMs, TMs, do którego rejestrują się uczestnicy transakcji. Lider, koordynator TM, istnieje dla każdej transakcji koordynować 2PC dla niego, zazwyczaj TM bazy koordynatora. Jednak rola koordynatora może zostać przeniesiona do innego TM ze względu na wydajność lub niezawodność. Zamiast wymieniać między sobą wiadomości 2PC, uczestnicy wymieniają wiadomości z odpowiednimi TMs. Odpowiednie TMs komunikują się między sobą, aby wykonać powyższy schemat protokołu 2PC, „reprezentując” odpowiednich uczestników, w celu zakończenia tej transakcji. Dzięki tej architekturze protokół jest w pełni rozproszony (nie potrzebuje żadnego komponentu centralnego przetwarzania ani struktury danych) i efektywnie skaluje się z liczbą węzłów sieci (wielkością sieci).

ta wspólna architektura jest również skuteczna w dystrybucji innych protokołów zaangażowania atomowego oprócz 2PC, ponieważ wszystkie takie protokoły używają tego samego mechanizmu głosowania i propagacji wyników dla uczestników protokołu.

optymalizacja Protokołówedytuj

przeprowadzono badania nad sposobami uzyskania większości korzyści z dwufazowego protokołu zatwierdzania przy jednoczesnym obniżeniu kosztów dzięki optymalizacji protokołu i oszczędzaniu operacji protokołu przy określonych założeniach zachowania systemu.

domniemane przerwanie i domniemany commit

domniemane przerwanie lub domniemany commit są typowymi tego typu optymalizacjami. Założenie o wyniku transakcji, albo commit, albo abort, może zapisać zarówno wiadomości, jak i operacje logowania przez uczestników podczas wykonywania protokołu 2PC. Na przykład w przypadku domniemanego przerwania, jeśli podczas odzyskiwania systemu po awarii nie zostanie znaleziony żaden zarejestrowany dowód popełnienia jakiejś transakcji przez procedurę odzyskiwania, wówczas zakłada się, że transakcja została przerwana i działa odpowiednio. Oznacza to, że nie ma znaczenia, czy aborty są w ogóle rejestrowane, a takie logowanie można zapisać przy tym założeniu. Zazwyczaj kara za dodatkowe operacje jest wypłacana podczas odzyskiwania po awarii, w zależności od typu optymalizacji. W ten sposób najlepszy wariant optymalizacji, jeśli istnieje, jest wybierany zgodnie ze statystykami niepowodzeń i wyników transakcji.

drzewo dwufazowy protokół zatwierdzaniaedit

protokół drzewa 2PC (zwany także zagnieżdżonym 2PC lub rekurencyjnym 2PC) jest powszechną odmianą protokołu 2PC w sieci komputerowej, która lepiej wykorzystuje podstawową infrastrukturę komunikacyjną. Uczestnicy transakcji rozproszonej są zazwyczaj wywoływani w kolejności, która określa strukturę drzewa, drzewa wywołania, gdzie uczestnicy są węzłami, a krawędzie są wywołaniami (łączami komunikacyjnymi). To samo drzewo jest powszechnie używane do zakończenia transakcji przez protokół 2PC, ale w zasadzie można wykorzystać do tego inne drzewo komunikacji. W drzewie 2PC koordynator jest uważany za korzeń („Góra”) drzewa komunikacyjnego (drzewo odwrócone), podczas gdy uczestnicy są pozostałymi węzłami. Koordynatorem może być węzeł, który zapoczątkował transakcję (wywoływany rekurencyjnie (przechodnio) przez innych uczestników), ale także inny węzeł w tym samym drzewie może pełnić rolę koordynatora. 2PC wiadomości od koordynatora są propagowane „w dół” drzewa, podczas gdy Wiadomości do koordynatora są” zbierane „przez uczestnika od wszystkich uczestników poniżej niego, zanim wyśle odpowiednią wiadomość” w górę „drzewa (z wyjątkiem wiadomości przerwania, która jest propagowana” w górę ” natychmiast po jej otrzymaniu lub jeśli obecny uczestnik inicjuje przerwanie).

protokół Dynamic two-phase commit (Dynamic two-phase commit, d2pc) jest wariantem drzewa 2PC Bez z góry określonego koordynatora. To subsumes kilka optymalizacji, które zostały zaproponowane wcześniej. Wiadomości umowy (głosy tak) zaczynają się rozprzestrzeniać ze wszystkich liści, każdego liścia podczas wykonywania swoich zadań w imieniu transakcji (staje się gotowy). Węzeł pośredni (non leaf) wysyła wiadomość ready, gdy umowa zostanie wysłana do ostatniego (pojedynczego) sąsiedniego węzła, z którego nie został jeszcze odebrany komunikat umowy. Koordynator jest ustalany dynamicznie przez wyścigi komunikatów umowy nad drzewem transakcji, w miejscu ich zderzenia. Zderzają się albo na węźle drzewa transakcji, aby być koordynatorem, albo na krawędzi drzewa. W tym drugim przypadku jeden z dwóch węzłów krawędzi jest wybierany jako koordynator (dowolny węzeł). D2pc jest optymalny czasowo (spośród wszystkich instancji określonego drzewa transakcji i dowolnego konkretnego drzewa implementacji protokołu 2PC; wszystkie instancje mają to samo drzewo; każda instancja ma inny węzeł jako koordynator): Wybierając optymalnego koordynatora d2pc zatwierdza zarówno koordynatora, jak i każdego uczestnika w minimalnym możliwym czasie, umożliwiając jak najszybsze uwolnienie zablokowanych zasobów w każdym uczestniku transakcji (węzeł drzewa).

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.