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 »

19. Przykład zagnieżdżonej transakcji

Facet zgłasza się do biura podróży i chce jechać na wczasy na wyspy Hula Gula.
Z punktu widzenia biura podróży jest to jedna transakcja składająca się z wielu podtransakcji, wykonywanych w większości równolegle:

  • Załatwienie formalności paszportowo-wizowych
  • Ubezpieczenie
  • Rezerwacja i kupienie biletu na pociąg na lotnisko.
  • Rezerwacja i wykupienie biletu na samolot na Hula Gula
  • Rezerwacja i zadatkowanie hotelu
  • Rezerwacja kosza na plaży
  • Rezerwacja i wykupienie biletu powrotnego na samolot z Hula Gula
  • Rezerwacja i wykupienie biletu powrotnego na pociąg
  • Opłata i umowa biura podróży z klientem

Jeżeli każdą z tych pod-transakcji można byłoby po prostu zerwać, wówczas mielibyśmy zwyczajną zagnieżdżoną transakcję.
Ale w życiu tak nie ma. Załóżmy, że nie udało się zarezerwować kosza na plażę, a facet mówi: “Nie ma kosza, to nie jadę!” W tej sytuacji powstaje saga: dla potwierdzonych pod-transakcji mogą być potrzebne pod-transakcje kompensujące:

  • Zwrócenie biletu na pociąg (ze stratą)
  • Zwrócenie biletu na samolot (ze stratą)
  • Odwołanie rezerwacji hotelu (ze stratą)
  • ....


20. 2PC w systemach rozproszonych (two-phase commit)

W systemach rozproszonych problemem jest faza potwierdzenia. Trwa długo, odbywa się przez zawodne łącza. Awaria w tej fazie może mieć straszne skutki, a jest bardzo prawdopodobna.

(4kB)
Dwu-fazowe potwierdzenie:
  • Niewolnicy wysyłają komunikaty “gotów “ do mistrza po przygotowaniu do aktualizacji BD. Dane zmieniające stan lokalnych BD są dołączane do komunikatu.
  • Po zebraniu kompletu zgłoszeń od niewolników, mistrz dokonuje redystrybucji nadesłanych danych na poszczególne komunikaty potwierdzenia, wysyłane do poszczególnych niewolników. Niewolnicy nanoszą fizyczne zmiany.
  • Jeżeli jakikolwiek niewolnik nie zgłosi gotowości do potwierdzenia, mistrz wysyła komunikaty o zerwaniu transakcji

    Wada metody: zawieszenia systemu


    « poprzedni punkt   następny punkt »