Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek.

Podobne prezentacje


Prezentacja na temat: "Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek."— Zapis prezentacji:

1 Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek

2 Plan wykładu  Wstęp  Model ACID, założenia teoretyczne transakcji  Implementacja obsługi transakcji  wykonywanych szeregowo  wykonywanych równolegle  Zaawansowane zagadnienia związane z transakcjami

3 Wstęp Transakcja – fragment programu, który z punktu widzenia użytkownika (logiki systemu):  jest operacją niepodzielną  zachowuje spójność danych Transakcja albo jest wykonana w całości, albo w ogóle. Przykład: Przelew pieniędzy z jednego konta bankowego na drugie.

4 Model ACID  Atomicity (niepodzielność) – transakcja jest wykonana w całości, albo w ogóle nie jest wykonana.  Consistency (spójność) – transakcja nie może wykonywać operacji niezgodnych z logiką systemu (musi zachować spójność danych).  Isolation (izolacja) – System zapewnia, że transakcje nie są świadome swego równoległego wykonywania (mają wrażenie, że są wykonywane szeregowo).  Durability (trwałość) – dokonanie transakcji ma trwały efekt (nawet w przypadku awarii sprzętu lub systemu).

5 Przykład: ACID i przelewy bankowe ;) T i : read(A); A = A - 50; write(A);read(B); B = B + 50; write(B); Spójność: A+B – stałe. Zapewnienie spójności jest zadaniem programisty tworzącego transakcję. Niepodzielność – jeśli transakcja nie zostanie wykonana niepodzielnie, to albo „zgubimy” część pieniędzy, albo je „utworzymy”. Trwałość – jeśli transakcja nie będzie trwała w skutkach (na przykład po awarii systemu), to użytkownik może dostać informację o jej dokonaniu, natomiast faktycznie nie będzie ona dokonana. Oczywiście nie jest to sytuacja pożądana. Izolacja – Po zmianie zawartości konta A, ale przed zmianą zawartości B, system jest chwilowo w stanie niespójnym. Ani użytkownik, ani inne transakcje, nie powinny w tym czasie mieć dostępu do A i B.

6 Stany transakcji  Aktywna – stan początkowy, transakcja podczas wykonywania jest w stanie aktywnym.  Częściowo dokonana – po wykonaniu wszystkich instrukcji, przed zakończeniem.  Niepowodzenie – gdy transakcja nie może dalej kontynuować swojego normalnego działania (błąd).  Wycofana – transakcja jest anulowana, baza danych znajduje się w takim stanie, w jakim była przed uruchomieniem transakcji  Dokonana – po zakończeniu transakcji sukcesem.

7 Diagram stanów transakcji Po napotkaniu błędu transakcja jest wycofywana. Następnie może zostać: wykonana ponownie (jeśli źródłem błędu była awaria sprzętu zaniechana (jeśli źródłem błędu był błąd logiczny wewnątrz transakcji)

8 Implementacja  Implementacja niepodzielności i trwałości  Równoległe wykonywanie transakcji  Szeregowalność  Naprawialność

9 Implementacja niepodzielności i trwałości Problem: transakcja składa się z operacji, które nie są wykonywane niepodzielnie. Proste rozwiązanie: wykonywać operacje na kopii, a następnie zamienić oryginalną bazę danych z kopią. Założenia:  Operacja zamiany oryginalnej bazy danych z kopią jest niepodzielna (można to uzyskać poprzez użycie wskaźnika do bazy)  Transakcje nie są wykonywane równolegle. Metoda ta jest prymitywna i nieefektywna.

10 Równoległe wykonywanie transakcji Za:  Lepsze wykorzystanie zasobów.  Mniejszy czas odpowiedzi. Przeciw:  Naturalnym sposobem wykonania transakcji jest wykonywanie szeregowe.  Trudności z utrzymaniem spójności BD przy równoległym wykonywaniu transakcji.

11 Przykład poprawnego planu równoległego TiTiTiTi TjTjTjTj read(A) A = A – 50 write(A)read(B) B = B + 50 write(B)read(A) tmp = A * 0,22 A = A - tmp write(A)read(B) B = B + tmp write(B) TiTiTiTi TjTjTjTjread(A) A = A – 50 write(A)read(B) B = B + 50 write(B)read(A) tmp = A * 0,22 A = A - tmp write(A)read(B) B = B + tmp write(B) Plan szeregowyRównoważny plan równoległy

12 Przykład błędnego planu równoległego TiTiTiTi TjTjTjTj read(A) A = A – 50 write(A)Read(B) B = B + 50 Write(B)read(A) tmp = A * 0,22 A = A - tmp write(A)Read(B) B = B + tmp Write(B) TiTiTiTi TjTjTjTjread(A) A = A – 50 write(A)Read(B) B = B + 50 Write(B)read(A) tmp = A * 0,22 A = A - tmp write(A)Read(B) B = B + tmp Write(B) Plan szeregowyBłędny plan równoległy

13 Szeregowalność  System musi zapewnić poprawność równoległego wykonywania transakcji (tzn. efekt wykonania równoległego, musi być taki sam jak efekt wykonania szeregowego).  System nie może analizować działania całego kodu transakcji, zamiast tego interesują go tylko instrukcje odczytu (read) oraz zapisu (write).  Omówimy dwie metody sprawdzania poprawności równoległego wykonywania transakcji:  Szeregowalność konfliktowa (conflict serializability)  Szeregowalność widokowa (view serializability)

14 Szeregowalność konfliktowa  Jeśli dwie instrukcje z różnych transakcji odwołują się do tej samej danej i przynajmniej jedna z nich jest operacją zapisu, to mówimy, że instrukcje te są w konflikcie ze sobą.  Jeśli możemy przetransformować dany plan równoległy S’ do planu szeregowego S poprzez zamiany instrukcji nie będących w konflikcie, to plan S’ jest konfliktowo równoważny planowi S.  Każdy plan równoległy konfliktowo równoważny planowi szeregowemu S, ma taki sam efekt końcowy jak S.

15 Przykład TiTiTiTi TjTjTjTj read(A)write(A)read(B)write(B)read(A)write(A)read(B)write(B) TiTiTiTi TjTjTjTjread(A)write(A)read(B)write(B)read(A)write(A)read(B)write(B) Czy lewy plan wykonania jest konfliktowo równoważny prawemu (szeregowemu)?

16 Przykład C.D. TiTiTiTi TjTjTjTj read(A)write(A)read(B)write(B)read(A)write(A)read(B)write(B) TiTiTiTi TjTjTjTjread(A)write(A)read(B)write(B)read(A)write(A)read(B)write(B) Sprawdźmy, czy można przetransformować ten plan do planu szeregwego. Zamieniamy kolejność instrukcji nie konfliktujących ze sobą:

17 Przykład C.D. TiTiTiTi TjTjTjTj read(A)write(A)read(B)write(B)read(A)write(A)read(B)write(B) TiTiTiTi TjTjTjTjread(A)write(A)read(B)write(B)read(A)write(A)read(B)write(B) Udaje nam się przetransformować plan równoległy do planu szeregowego. Plan równoległy jest równoważny konfliktowo planowi szeregowemu, zatem jest poprawny.

18 Szeregowalność widokowa Plan wykonania S jest równoważny widokowo planowi S’, jeśli dla każdej danej Q jest spełnione:  jeśli w planie S transakcja T i odczytuje wartość początkową Q, to w planie S’ T i również musi odczytać wartość początkową Q.  jeśli w planie S transakcja T i odczytuje wartość Q wyprodukowaną przez T j, to w planie S’ T i również musi odczytać wartość wyprodukowaną przez T j.  jeśli w planie S transakcja T i zapisuje wartość końcową Q, to w planie S’ T i również musi zapisać wartość końcową Q.

19 Naprawialność (recoverability) Jeśli jakaś transakcja będzie musiała być wycofana, niektóre plany szeregowalne mogą okazać się błędne. Przykład: T1T1T1T1 T2T2T2T2 read(A)write(A)read(B)read(A) Transakcja T 2 może zostać dokonana zaraz po odczycie A, natomiast transakcja T 1 nie jest jeszcze zakończona i może zostać wycofana. Wtedy transakcja T 2 również powinna zostać wycofana. Nie można tego zrobić, ponieważ została już wcześniej dokonana. Taka sytuacja jest niepożądana.

20 Plany kaskadowe Nawet jeśli plan jest naprawialny, to może wystąpić zjawisko kaskadowego wycofywania: T1T1T1T1 T2T2T2T2 T3T3T3T3 read (A) read (B) write (A) read (A) write (B) read (A) Przedstawiony plan jest naprawialny, ale jeśli transakcja T 1 zostanie wycofana, trzeba będzie również wycofać transakcję T 2 oraz T 3. Takie zjawisko jest niekorzystne.

21 Zaawansowane techniki w transakcjach  Zdalne kopie zapasowe  Monitory przetwarzania transakcji  Systemy wysokiej wydajności  Transakcje interaktywne  Transakcje czasu rzeczywistego (RT)  Workflows

22 Zdalne kopie zapasowe Za:  Większa dostępność i bezpieczeństwo danych (większa odporność na powodzie, pożary…). Przeciw:  Mniejsza wydajność (konieczność synchronizacji)

23 Zdalne kopie zapasowe C.D.  Dwu-fazowe dokonywanie transakcji  operacje są synchronizowane na węźle podstawowym i zapasowym  Przetwarzanie typu primary-secondary  Operacje są wykonywane tylko na węźle podstawowym  Do węzła zapasowego są przesyłane kopie danych oraz dzienniki operacji. W przypadku awarii węzła podstawowego, transakcje są wykonywane na węźle zapasowym

24 Kwestie związane ze zdalnymi kopiami zapasowymi  Wykrywanie awarii  odpowiednie protokoły, wiele łączy  Przejęcie kontroli przez węzeł zapasowy  węzeł zapasowy staje się podstawowym  Opóźnienia powodowane przez awarie  Węzeł zapasowy musi odtworzyć stan BD na podstawie dziennika  Opóźnianie dokonywania transakcji  aby zapewnić trwałość transakcji, trzeba poczekać z dokonaniem, aż dziennik dotrze do węzła zapasowego

25 Monitory przetwarzania transakcji  Motywacja: potrzeba wielodostępu do systemu bazy danych.  Przykład: rozproszony system rezerwacji lotów.

26 Architektury monitorów Process-per-clientSingle-process Many-server, single-router Many-server, many-router

27 Systemy wysokiej wydajności  Bazy danych w pamięci operacyjnej  dostęp do pamięci operacyjnej jest szybszy niż dostęp do dysku.  dzienniki są zapisywane do NVRAM.  optymalizacja struktur danych pod względem rozmiaru, nie szybkości.  Grupowe dokonywanie transakcji  system czeka na odpowiednią ilość transakcji przed dokonaniem.

28 Transakcje interaktywne  Długi czas trwania  czas reakcji człowieka jest relatywnie długi dla komputera.  Konieczność udostępnienia danych niedokonanej transakcji  użytkownikowi lub innym transakcjom.  Podzadania  transakcja może składać się z podzadań, które mogą być wycofywane (sama transakcja nie musi być przez to wycofana).  Naprawialność  niedopuszczalne jest wycofanie długiej, interaktywnej transakcji z powodu awarii sprzętu.  Wydajność  od dużej przepustowości ważniejszy jest czas odpowiedzi.

29 Transakcje czasu rzeczywistego  Poprawność wykonania transakcji nie zależy tylko od utrzymania spójności w bazie danych, ale także od jej czasowego ukończenia.  Istnieją dwa rodzaje ograniczeń czasowych wykonania transakcji:  Hard  Soft Często implementowane jako bazy danych w pamięci operacyjnej.

30 Workflows  Workflow – działanie składające się z wielu zadań wykonywanych przez różnego rodzaju jednostki (komputery, ludzie…).  Rozszerzenie transakcji na całe schematy działania.  schematy są bardziej rozbudowane, ale muszą spełniać podobne do transakcji warunki.  większa automatyzacja (ale potrzebny jest język do definiowania workflows).

31 Przykład Klient Urzędnik bankowy Przekaz pieniężny weryfikacja Wyższy urzędnik wniosek akceptacja odrzucenie

32 Pytania  Rozwiń akronim ACID i opisz poszczególne cechy  W jakich stanach może znajdować się transakcja i jakie są możliwe przejścia między stanami (diagram stanów)  Podaj przykład planu wykonania transakcji, który jest szeregowalny (serializable), ale nie jest naprawialny (recoverable)  Wymień dwa sposoby (modele) działania systemów ze zdalnymi kopiami zapasowymi

33 Koniec Koniec Dziękujemy za uwagę

34 Odp. Pytanie 1  Atomicity (niepodzielność) – transakcja jest wykonana w całości, albo w ogóle nie jest wykonana.  Consistency (spójność) – transakcja nie może wykonywać operacji niezgodnych z logiką systemu (musi zachować spójność danych).  Isolation (izolacja) – System zapewnia, że transakcje nie są świadome swego równoległego wykonywania (mają wrażenie, że są wykonywane szeregowo).  Durability (trwałość) – dokonanie transakcji ma trwały efekt (nawet w przypadku awarii sprzętu lub systemu).

35 Odp. Pytanie 2:  Aktywna – stan początkowy, transakcja podczas wykonywania jest w stanie aktywnym.  Częściowo dokonana – po wykonaniu wszystkich instrukcji, przed zakończeniem.  Niepowodzenie – gdy transakcja nie może dalej kontynuować swojego normalnego działania (błąd).  Wycofana – transakcja jest anulowana, baza danych znajduje się w takim stanie, w jakim była przed uruchomieniem transakcji  Dokonana – po zakończeniu transakcji sukcesem.  (Diagram jest w prezentacji)

36 Odp. Pytanie 3: plan serializable not-recoverable T1T1T1T1 T2T2T2T2 read(A)write(A)read(B)read(A) Plan jest szeregowalny i transakcja T 2 może zostać zaakceptowana przed T 1. W tej sytuacji jeśli T 1 będzie musiała być wycofana, wystąpi błąd – zatwierdzona transakcja T 2 będzie musiała być wycofana.

37 Odp. Pytanie 4:  Dwu-fazowe dokonywanie transakcji  operacje są synchronizowane na węźle podstawowym i zapasowym  Przetwarzanie typu primary-secondary  Operacje są wykonywane tylko na węźle podstawowym  Do węzła zapasowego są przesyłane kopie danych oraz dzienniki operacji. W przypadku awarii węzła podstawowego, transakcje są wykonywane na węźle zapasowym


Pobierz ppt "Transakcje Przedmiot: Bazy Danych Prowadzący: mgr inż. Leszek Siwik Autorzy: Grzegorz Szymczyk Damian Wieczorek."

Podobne prezentacje


Reklamy Google