Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną

Podobne prezentacje


Prezentacja na temat: "Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną"— Zapis prezentacji:

1 Zarządzanie transakcjami Wykład S. Kozielski

2 Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną całość. Przykład transakcji: rezerwacja miejsc R: begin znajdź wolne miejsce m; rezerwuj znalezione miejsce dla pasażera p end;

3 Przykład transakcji: przeniesienie kwoty K z konta X na konto Y T: begin read X; X:=X-K; write X; read Y; Y:=Y+K; write Y end;

4 Pożądane własności transakcji 1.Atomowość – transakcja musi zostać wykonana w całości, albo wszystkie efekty jej częściowego wykonania muszą zostać wycofane 2.Spójność – transakcja nie może naruszać więzów spójności 3.Izolacja – transakcja musi działać w pełnej izolacji od innych transakcji. 4.Trwałość – wynik zakończonej transakcji nie może zostać utracony.

5 Środowisko realizacji transakcji Serwer SZBD Aplikacja 1 BD Aplikacja 2Aplikacja 3 stacja 1 stacja 2stacja 3

6 Harmonogram transakcji Uszeregowanie (kolejność wykonania) wszystkich operacji elementarnych pewnego zbioru transakcji realizowanych współbieżnie

7 Problemy ze współbieżnym wykonaniem transakcji Współbieżny harmonogram dwóch transakcji rezerwacji miejsc R1 - rezerwacja biletu 1R2 - rezerwacja biletu 2 znajdź wolne miejsce m 0 rezerwuj miejsce m 0 dla pasażera p1 rezerwuj miejsce m 0 dla pasażera p2

8 (H1) Harmonogram szeregowy T1T2 read A A:=A-100 write A read B B:=B+100 write B read B A 0 =1000 A=900B:=B-200 B 0 =2000 B=1900write B C 0 =3000 C=3200read C C:=C+200 0 =6000 =6000 write C

9 (H2) Harmonogram szeregowalny T1T2 read A read B A:=A-100 B:=B-200 write A write B read B read C B:=B+100 C:=C+200 write B write C

10 (H3) Harmonogram nieszeregowalny T1T2 read A A:=A-100 read B write A B:=B-200 read B write B B:=B+100 read C write B C:=C+200 write C

11 Mechanizm blokowania dostępu do danych LOCK UNLOCK

12 Efekty wykonania LOCK X 1) sukces (udało się nałożyć blokadę) – transakcja uzyskuje prawo dostępu do jednostki X, 2) niepowodzenie (nie udało się nałożyć blokady) – brak prawa dostępu: - zawieszenie transakcji żądającej, lub - kontynuacja transakcji żądającej bez prawa dostępu do X.

13 Ziarnistość (granulacja) blokowania : - wiersz (rekord), - cała tablica, - cała baza danych

14 T1T2 lock A read A A:=A-100 lock B write A read B unlock A B:=B-200 lock B Zawieszenie T1 write B unlock B read B lock C B:=B+100 read C write B C:=C+200 unlock B write C unlock C

15 U: begin V: begin lock Y; lock X; read Y;read X; unlock Y;unlock X; lock X;lock Y; read X; read Y; X:=X+Y; Y:=Y+X; write X; write Y; unlock X unlock Y end; end; X 0 =20, Y 0 =30 H1: U;V: X=50, Y=80 H2: V;U: X=70, Y=50

16 UV lock Y read Y unlock Y lock X read X unlock X lock Y read Y Y:=Y+X write Y unlock Y lock X read X X:=X+Y write X unlock X H3: X=50, Y=50

17 Dwufazowy protokół blokowania Transakcja wypełnia protokół dwufazowy, jeśli wszystkie operacje blokowania występują przed pierwszą operacją odblokowania. Twierdzenie Dowolny harmonogram transakcji dwufazowych jest harmonogramem szeregowalnym.

18 UV lock Y read Y lock X unlock Y lock X Zawieszenie transakcji V read X X:=X+Y write X unlock X read X lock Y unlock X read Y Y:=Y+X write Y unlock Y H4 H1

19 Inny model blokowania RLOCK (read-lock) – blokowanie do odczytu (blokada współdzielona - shared), WLOCK (write-lock) – blokowanie do zapisu (blokada wyłączna - exclusive). UNLOCK

20 Wyróżnianie transakcji w programach 1) Domyślne każda instrukcja SQL jest transakcją, 2) Jawne: [BEGIN TRANSACTION]- początek, COMMIT [TRANSACTION] - koniec – zatwierdzenie transakcji, ROLLBACK [TRANSACTION]- koniec – wycofanie transakcji.

21 Prowadzenie dziennika transakcji Serwer SZBD Menedżer Transakcji Aplikacja 1 BD Aplikacja 2Aplikacja 3 stacja 1 stacja 2stacja 3 Log dziennik transakcji

22 T:begin begin transaction; find X; if not found then rollback else begin lock X; get X; X:=X-K; write X; find Y; if not found then rollback else begin lock Y; get Y; Y:=Y+K; write Y; commit end end;

23 Model z bezpośrednim zapisem do bazy danych

24 Stan dziennika po wycofaniu transakcji

25 Stan dziennika po awarii

26 Model z opóźnionym zapisem do bazy danych

27 Punkty kontrolne (CHECKPOINT) Wykonanie przerwania związanego z punktem kontrolnym: – dokończenie aktualnych operacji na bazie danych i/lub logu – przejście do obsługi przerwania Obsługa przerwania (obsługa punktu kontrolnego): – zapis zawartości buforów na dysk (do bazy danych) – wpis do dziennika transakcji (logu) rekordu

28 Punkty kontrolne - przykład Zawartość logu: -----------awaria Transakcje zakończone (bezpieczne): T2 Transakcje wymagające powtórzenia: T1, T4 (REDO T1, T4) Transakcje wymagające wycofania: T3, T5 (UNDO T3, T5)

29 Algorytm odtwarzania spójnego stanu b. d. po awarii 1)Wszystkie transakcje wypełnione przed ostatnim punktem kontrolnym uznawane są za zakończone 2)Wszystkie transakcje wypełnione (COMMIT) pomiędzy ostatnim punktem kontrolnym a awarią są powtarzane (REDO) 3)Wszystkie transakcje wykonywane do momentu awarii (brak COMMIT) są wycofywane (UNDO – ROLLBACK)

30 Wykorzystanie dziennika do ochrony bazy danych - podsumowanie 1) Wycofanie transakcji z poziomu programu (aplikacji), (niedostępność danych,...) 2) Wycofanie transakcji z poziomu SZBD, (zakleszczenie transakcji, zawieszenie transakcji,...) 3) Odtworzenie spójnego stanu b.d. po awarii i upadku systemu 4) Odtworzenie b.d. i przywrócenie jej spójnego stanu po zniszczeniu dysku z bazą danych (dziennik ocalał)

31 BD Log BACKUP

32 BD Log BACKUP RESTORE BD

33 Odtworzenie spójnego stanu b.d. po awarii dysku BD Log BACKUP RESTORE ROLLFORWARD BD

34 Mechanizmy blokad w SQL-u – poziomy izolacji Generalna zasada: - zapis (modyfikacja) – wiersz (rekord) blokowany jest na wyłączność do końca transakcji, - odczyt – wybór rodzaju blokady i zakres utrzymywania zależy od poziomu izolacji. Poziom izolacji może ustalać programista: SET TRANSACTION ISOLATION LEVEL

35 Poziomy izolacji Poziom izolacjiEfekt niepożądany READ UNCOMMITTED brudny odczyt READ COMMITTED niepowtarzalny odczyt REPEATABLE READ fantom SERIALIZABLE

36

37

38


Pobierz ppt "Zarządzanie transakcjami Wykład S. Kozielski. Zarządzanie transakcjami Transakcja – jedna lub więcej operacji na bazie danych stanowiących pewną logiczną"

Podobne prezentacje


Reklamy Google