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 »

5. Kryterium poprawności transakcji

Współbieżne wykonanie transakcji jest poprawne wtedy i tylko wtedy jeżeli jego efekt jest dokładnie taki sam jak efekt wykonania tych transakcji pojedynczo po kolei.
Ta własność nosi nazwę szeregowalności (serializability)

Plan wykonania transakcji:
  • Transakcje rozbija się na mniejsze fragmenty zwane operacjami.
  • Plan ustala jak po kolei mają być wykonywane operacje z poszczególnych transakcji.
  • Plan jest szeregowalny, jeżeli jego końcowy efekt jest taki sam, jak wykonanie transakcji po kolei.

    Istnieje matematyczna teoria szeregowalności transakcji, wiele osób na nią się powołuje, ale znacznie mniej wie, o co w niej chodzi. (Ja nie miałem cierpliwości do tej teorii...) Są opinie, że ta teoria (jak większość teorii) jest mało przydatna, ponieważ dla cokolwiek bardziej skomplikowanych planów wykonania transakcji nic się nie da udowodnić (trzeba i tak zaimplementować lub zasymulować). Istnieją też opinie (Mohan) że teoria nie obejmuje ważnych przypadków takich jak usuwanie danych.

    Problemy:

  • znaleźć szeregowalny plan o minimalnym totalnym koszcie
  • znaleźć szeregowalny plan gdzie czas odpowiedzi nie jest dłuższy niż t,
  • ....


    6. Implementacja szeregowalności poprzez zamki

    Zamek (lock):
    jedna z transakcji rezerwuje sobie dostęp do obiektu.
    Inne transakcje nie mają dostępu lub mają dostęp ograniczony.

    X

    Wyłączny zamek (exclusive lock): transakcja zablokowuje jakikolwiek dostęp do obiektu dla innych transakcji.
    S

    Dzielony zamek (shared lock): inne transakcje mogą czytać, ale nie mogą modyfikować

    Udowodniono (szczególnie, że dla każdego jest to oczywiste :-), że szeregowalność jest zachowana, jeżeli cała transakcja ma dwie fazy: rosnącą i skracającą.

    (4kB)

    Awarie są możliwe w obydwu fazach, ale faza commit jest szybka (milisekundy).


    « poprzedni punkt   następny punkt »