INFO
Sylabus
Transakcje w bazach danych
1. Po co transakcje? - Współbieżność
2. Po co transakcje? - Przeciwdziałanie awariom
3. Transakcja: jednostka działalności systemu
4. Przykładowa transakcja
5. Kryterium poprawności transakcji
6. Implementacja szeregowalności poprzez zamki
7. Zakleszczenie
8. Walka z zakleszczeniem
9. Metody bez zakleszczeń oparte na stemplach czasowych
10. Metody optymistyczne
11. Ziarnistość mechanizmu transakcji
12. Zmienna ziarnistość
13. Typy awarii i reakcje na awarie
14. Odtwarzanie po awarii - środki, terminy
15. Odtwarzanie po zerwaniu
16. Podstawowe algorytmy z zamkami
17. Komendy w SQL do przetwarzania transakcji
18. Zagnieżdżone transakcje
19. Przykład zagnieżdżonej transakcji
20. 2PC w systemach rozproszonych
21. Długie transakcje (transakcje projektowe)
22. Podsumowanie
Skorowidz
Wyście:
Wyklad VI. Wprowadzenie do transakcji w bazach danych (KURS SSR)
I II III IV V VI VII VIII IX X XI XII XIII XIV
« poprzedni punkt   następny punkt »

9. Metody bez zakleszczeń oparte na stemplach czasowych

Każda transakcja w momencie startu dostaje unikalny stempel czasowy, na tyle precyzyjny, aby móc po stemplach rozróżniać transakcje.

Żadna zmiana nie jest nanoszona do bazy danych; transakcja działa na swoich własnych kopiach, aż do potwierdzenia.

Każdy obiekt bazy danych przechowuje 2 stemple czasowe: transakcji, która ostatnio brała obiekt do czytania i transakcji, która ostatnio brała obiekt do modyfikacji.

W momencie potwierdzenia sprawdza się stemple transakcji oraz wszystkich pobranych przez nią obiektów. Można dość łatwo wyprowadzić reguły zgodności, np.

- Jeżeli obiekt był aktualizowany i stempel na obiekcie do aktualizacji jest taki sam jak stempel transakcji, to OK, a inaczej zerwij i uruchom od nowa.

- Jeżeli obiekt był tylko czytany i stempel na obiekcie do aktualizacji jest starszy niż stempel transakcji, to OK; inaczej zerwij i uruchom od nowa.

- .... (trochę dalszych reguł).
Metoda jest o tyle przyjemna, że zerwanie transakcji oznacza zlikwidowanie tylko lokalnych kopii obiektów - nie potrzeba nic robić w bazie danych.

10. Metody optymistyczne

Zasada podobna jak w przypadku stempli czasowych, ale transakcje nie działają na swoich własnych kopiach, ale bezpośrednio na bazie danych.

“Optymizm” polega na założeniu, że żadnych konfliktów nie będzie. Ale konflikty są tym niemniej wykrywane i w przypadku ich wykrycia, transakcje są zrywane, a baza danych jest cofana do poprzedniego stanu.

Metody optymistyczne są bardzo nieskuteczne, jeżeli konfliktów jest dużo: praktycznie, system staje i nie może poruszyć się ani o krok, bo co rusz, to konflikt...

Wykrycie konfliktów przy metodach optymistycznych jest oparte o podobną jak wcześniej zasadę stempli czasowych.

Niemniej, metody optymistyczne nie są zbyt optymistyczne:
- mimo wielkich nadziei, są one rzadko stosowane
- jak się okazują, wymagają one również pewnej formy zamków i mogą prowadzić do zakleszczeń.
Były nadzieje, że metody optymistyczne będą szczególnie przydatne w systemach rozproszonych, gdzie zakładanie zamków jest bardzo kłopotliwe. Nie bardzo wiadomo jednak, czy znalazły one efektywne zastosowanie. Ludzie są raczej pesymistami...


« poprzedni punkt   następny punkt »