Zatwierdzanie transakcji rozproszonych

Transkrypt

Zatwierdzanie transakcji rozproszonych
Zatwierdzanie
¾ Ogólne zasady zatwierdzania transakcji rozproszonych
Zatwierdzanie transakcji
rozproszonych
T – transakcja rozproszona to transakcja, w której wykonywanie
zaangażowanych są węzły S1, S2, …, Sn, n > 1. Przez węzeł
rozumiemy bazę danych i związanego z nią menedżera danych MD.
K – koordynator, tj. MT (menedżer transakcji), który zarządza
wykonywaniem transakcji T.
Zanim K wyśle operację commit do S1, …, Sn, musi się upewnić, że
MD (menedżer danych) w każdym z tych węzłów jest gotów do
zatwierdzenia operacji transakcji T wykonywanych na tym węźle.
Nie może być tak, że T zatwierdzona jest na jednym, a odrzucona na
innym węźle.
W procesie zatwierdzania stosowany jest protokół zatwierdzania
dwufazowego (Z2F), ang. Two-Phase Commit (2PC).
Tadeusz Pankowski
www.put.poznan.pl/~pankowsk
T. Pankowski, Zatwierdzanie
transakcji
T. Pankowski, Zatwierdzanie
transakcji
1
Przetwarzanie transakcji
Protokół 2PC
T
Menadżer Transakcji
MT
Menadżer Transakcji
MT
Menadżer Transakcji
MT
Planista
Planista
Planista
Menadżer Danych
MD
Menadżer Danych
MD
Menadżer Danych
MD
Serwer bazy danych
(SZBD)
Serwer bazy danych
(SZBD)
Serwer bazy danych
(SZBD)
S2
•
•
•
S1 – koordynator transakcji T
2
¾ Protokół 2PC ma dwie fazy:
1.
2.
S3
Menadżer transakcji (koordynator) koordynuje wykonywaniem i
zatwierdzaniem transakcji.
Transakcja jest albo zatwierdzana na każdym węźle, albo odrzucana na
każdym węźle.
Stosowany jest protokół zatwierdzania dwufazowego (Z2F), ang. TwoPhase Commit (2PC).
3
Faza głosowania – koordynator inicjuje głosowanie
dotyczące możliwości zatwierdzenia transakcji przez
poszczególnych uczestników, uczestnicy głosują, a
koordynator zbiera wyniki tego głosowania.
Faza podejmowania decyzji – na podstawie wyniku
głosowania koordynator podejmuje decyzję o
zatwierdzaniu (COMMIT) lub odrzuceniu (wycofaniu)
transakcji (ABORT); decyzję ABORT może podjąć
samodzielnie uczestnik, jeśli głosował na NIE lub utracił
łączność z koordynatorem i innymi uczestnikami.
T. Pankowski, Zatwierdzanie
transakcji
4
Protokół 2PC – faza 1
Protokół 2PC – faza 2
2.
1. Faza głosowania:
Koordynator wysyła żądanie głosowania do wszystkich
uczestników. Głosowanie dotyczy gotowości do
zatwierdzania transakcji T.
Każdy uczestnik głosuje TAK (gotowy do
zatwierdzania) lub NIE (jest przeciw zatwierdzianiu).
Koordynator zbiera głosy od wszystkich uczestników
•
Brak odpowiedzi po upływie założonego czasu TIMEOUT
traktowany jest jako głos NIE.
T. Pankowski, Zatwierdzanie
transakcji
Koordynator podejmuje decyzję na podstawie wyniku
głosowania.
•
•
5
1. W różnych punktach protokołu procesy muszą czekać
na wiadomość: koordynator od uczestników,
uczestnicy od koordynatora.
2. Taka wiadomość może nie nadejść – w ten sposób
procesy mogą czekać bez końca. Powodem mogą być:
awaria węzła – problem trudny,
awaria łącza – można wykorzystać łącze alternatywne.
3. Aby uniknąć niekończących się oczekiwań, stosowany
jest mechanizm TIMEOUT (czas przedawnienia,
upływu).
4. Po upływie czasu określonego przez TIMEOUT
realizowana jest akcja zastępcza TIMEOUT ACTION.
7
Jeśli wszyscy (łącznie z koordynatorem) głosują na TAK, to
koordynator podejmuje decyzję o zatwierdzeniu transakcji. Do
wszystkich uczestników wysyła polecenie COMMIT.
Jeśli co najmniej jeden głos jest na NIE, to koordynator wysyła
polecenie ABORT wszystkim uczestnikom głosującym TAK. Ci, którzy
głosowali NIE sami podejmują decyzję ABORT.
Każdy uczestnik głosujący na TAK czeka na polecenie COMMIT
lub ABORT.
•
•
Postępowanie w sytuacjach awaryjnych:
TIMEOUT
T. Pankowski, Zatwierdzanie
transakcji
Faza decydowania:
Po odbiorze polecenia wykonuje je i kończy pracę.
Jeśli w odpowiednim czasie nie uzyska polecenia, wówczas może
zainicjować konsultacje z pozostałymi uczestnikami: TERMINATION
PROTOKOL.
T. Pankowski, Zatwierdzanie
transakcji
6
Postępowanie w sytuacjach awaryjnych:
protokół konsultacji (TERMINATION PROTOCOL)
1. Przy utracie kontaktu z koordynatorem, gdy nie
wiadomo jakie polecenie wysłał koordynator (COMMIT
czy ABORT), uczestnik może skontaktować się z
dowolnym innym uczestnikiem.
2. Wszyscy uczestnicy otrzymują to samo polecenie, więc
zainteresowany uczestnik może przyjąć, że do niego
zostało wysłane to samo polecenie, które dotarło do
dowolnego innego uczestnika.
3. Aby taka procedura była możliwa, to koordynator musi
do każdego uczestnika, wraz z zapytaniem o sposób
głosowania, wysłać listę wszystkich uczestników
biorących udział w procesie zatwierdzania transakcji.
T. Pankowski, Zatwierdzanie
transakcji
8
TIMEOUT ACTIONS
1: K wysyła żądanie głosowania
U nie doczeka się pytania w czasie
określonym przez TIMEOUT.
2: U oczekuje na żądanie głosowania
3: K oczekuje na odpowiedź
4: U oczekuje na decyzję
U podejmuje akcję ABORT i STOP
K nie doczeka się wszystkich odpowiedzi
(TAK, NIE) w czasie określonym przez
TIMEOUT.
K podejmuje decyzję ABORT i wysyła ją
wszystkim głosującym TAK
U nie doczeka się decyzji (ABORT, COMMIT)
w czasie TIMEOUT, gdy głosował TAK
U konsultuje z innym uczestnikiem
9

Podobne dokumenty