Prowadzi: Tomasz Jędrzejewski
Streszczenie
Transakcja to pewna niepodzielna operacja w systemach przetwarzania danych oraz systemach bazodanowych. Transakcje stosujemy wszędzie tam, gdzie chcemy, aby grupa operacji została wykonana w sposób atomowy, tj. albo wszystkie, albo żadna. Zestaw cech, jakimi powinny cechować się transakcje, to tzw. reguły ACID:
- Atomowość (atomicity) - transakcja musi wykonać się albo w całości, albo w ogóle.
- Spójność (consistency) - po zakończeniu transakcji system będzie spójny, tj. nie zostaną naruszone żadne zasady integralności danych.
- Izolacja (isolation) - dwie transakcje wykonywane współbieżnie na tym samym zbiorze nie widzą siebie nawzajem i dokonywanych przez siebie zmian.
- Trwałość (durability) - system potrafi uruchomić się i uruchomić spójne dane nawet, jeśli w systemie występują nieukończone transakcje, np. z powodu awarii zasilania.
Wykład będzie poświęcony szczególnemu typowi transakcji, mianowicie transakcjom rozproszonym, gdzie transakcja realizowana jest przez więcej niż jeden wątek/process (a nawet komputer). Przedstawię zasadę działania, wykorzystywane protokoły, a także przykładowy, działający w oparciu o takie transakcje system wraz z kompletnym kodem źródłowym w języku C.
Wymagane informacje
Wykład ma charakter otwarty, niemniej przyda się znajomość niektórych rzeczy:
- Podstawy programowania w języku C,
- Mile widziana umiejętność korzystania z transakcji w jakichś systemach bazodanowych,
- Mile widziana znajomość socketów uniksowych.
Dodatkowe uwagi
Miło by było, gdyby ktoś pojawił się na wykładzie z drugim laptopem (i routerem), aby zademonstrować działanie systemu w środowisku rozproszonym.