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

Slides:



Advertisements
Podobne prezentacje
Bazy danych II Transakcje Piotr Górczyński 25/08/2001.
Advertisements

ANALIZA SIECIOWA PRZEDSIĘWZIĘĆ konstrukcja harmonogramu
Język C/C++ Funkcje.
Przetwarzanie transakcyjne
Podstawowe pojęcia programowania współbieżnego
Zrównoleglanie programu sekwencyjnego
Wycofywanie potwierdzonych transakcji
Systemy zarządzania bazami danych 9. Transakcje. Oryginał: Hector Garcia-Molina9. Transakcje2 Współbieżność, wielodostęp T 1 T 2 …T n BD (więzy integralności)
Analiza wariancji Analiza wariancji (ANOVA) stanowi rozszerzenie testu t-Studenta w przypadku porównywanie większej liczby grup. Podział na grupy (czyli.
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Wykład 11 Prowadzący: dr Paweł Drozda
Wykład 10 Prowadzący: dr Paweł Drozda
Systemy operacyjne.
Wykład 3 Wojciech Pieprzyca
Wykład 5 Wojciech Pieprzyca
Zarządzanie transakcjami
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
Modele baz danych - spojrzenie na poziom fizyczny
Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną
Architektura systemów wykorzystujących bazy danych (systemów bazodanowych) Wykład S. Kozielski.
Inżynieria Oprogramowania
ZESTAW KOMPUTEROWY.
Jak zabezpieczyć Windowsa?
Podstawy programowania II
Wypożyczalnia NARZĘDZI
Systemy operacyjne.
Przystawka Zarządzanie dyskami
Bazy danych rezydujące w pamięci operacyjnej komputera (in-memory)
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Topologie sieci lokalnych.
Wykonywanie kopii bezpieczeństwa danych
XML – eXtensible Markup Language
Maszyna wirtualna ang. virtual machine, VM.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Defragmentacja dysku Jednym z kluczowych czynników wydajności operacji wejścia/wyjścia jest poziom fragmentacji plików. Fragmentacja oznacza zapisywanie.
Podstawowe informacje o maturze dla gimnazjalistów.
Operacje edycyjne w bazie danych - kwerendy funkcjonalne Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
dr Łukasz Murowaniecki T-109
Etapy uruchamiania systemu Pliki konfiguracyjne
Opracowanie ćwiczeń dotyczących zapewniania niezawodności baz danych na przykładzie Oracle Opiekun : dr inż. Agnieszka Landowska Dyplomant : Tomasz Krzyżanowski.
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
Systemy operacyjne (wiosna 2014)
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
Podstawy programowania
Temat 7: Instrukcje warunkowe
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
System plików.
System Zarządzania Bazą Danych
Algorytmy- Wprowadzenie do programowania
1 Zarządzanie transakcjami Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000.
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
Uprawnienia w Windows Server
PHP Instrukcja warunkowa if Damian Urbańczyk. Warunek? Instrukcję warunkową wykorzystujemy wtedy, gdy chcemy sprawdzić pewien fakt, który może być prawdziwy.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Wstęp do interpretacji algorytmów
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Temat: Jak działa antywirus? _________________________________________________________________________________________________________________ [ Przedmiot:
Bartosz Pawlak Wiktor Paliwoda Bezpieczeństwo Systemów Operacyjnych IMAP vs POP.
Wstęp do programowania Wykład 7
Interfejs użytkownika „No matter how cool your interface is, less of it would be better”
Rozproszony system plików Coda Krzysztof Lichota.
Przetwarzanie transakcyjne. Wprowadzenie (1) Baza danych – jest abstrakcyjnym odzwierciedleniem wybranego fragmentu rzeczywistości (ang. miniworld) mini.
Wątki, programowanie współbieżne
Instrukcja warunkowa if
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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

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

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.

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).

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.

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.

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)

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

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.

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.

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

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

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)

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.

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)?

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ą:

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.

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.

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.

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.

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

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

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

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

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

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

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.

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.

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.

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).

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

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

Koniec Koniec Dziękujemy za uwagę

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).

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)

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.

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