Transakcje Rozproszone

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:

  1. Atomowość (atomicity) - transakcja musi wykonać się albo w całości, albo w ogóle.
  2. Spójność (consistency) - po zakończeniu transakcji system będzie spójny, tj. nie zostaną naruszone żadne zasady integralności danych.
  3. Izolacja (isolation) - dwie transakcje wykonywane współbieżnie na tym samym zbiorze nie widzą siebie nawzajem i dokonywanych przez siebie zmian.
  4. 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:

  1. Podstawy programowania w języku C,
  2. Mile widziana umiejętność korzystania z transakcji w jakichś systemach bazodanowych,
  3. 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.

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License