Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

K.Subieta. SSR, Wykład 6, Folia 1 kwiecień 2009 Standardy w zakresie systemów rozproszonych i baz danych Kazimierz Subieta Polsko-Japońska Wyższa Szkoła.

Podobne prezentacje


Prezentacja na temat: "K.Subieta. SSR, Wykład 6, Folia 1 kwiecień 2009 Standardy w zakresie systemów rozproszonych i baz danych Kazimierz Subieta Polsko-Japońska Wyższa Szkoła."— Zapis prezentacji:

1 K.Subieta. SSR, Wykład 6, Folia 1 kwiecień 2009 Standardy w zakresie systemów rozproszonych i baz danych Kazimierz Subieta Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa Wykład 6: Wprowadzenie do transakcji w bazach danych

2 K.Subieta. SSR, Wykład 6, Folia 2 kwiecień 2009 Po co transakcje? - Współbieżność Spójność bazy danych, spójność procesów działających na bazie danych. Jeżeli wiele procesów działa jednocześnie na bazie danych: Czas Proces B Czyta X X := X+1 Zapisuje X Wartość X A 5 6 Wartość X B 5 6 Proces A Czyta X X :=X+1 Zapisuje X Jeżeli te dwa procesy działałyby niezależnie, wynik byłby 7. Działając równolegle i nie synchronizując swoich akcji jedna aktualizacja została zgubiona. Inny przykład: mamy 4-ch autorów, którzy równolegle aktualizują pewien tekst. Jeżeli nie umówią się, który z nich aktualnie ma prawo wprowadzać poprawki, to część poprawek może zostać zgubiona. Transakcje: umożliwienie zachowania spójności w takiej sytuacji bez potrzeby umawiania się.

3 K.Subieta. SSR, Wykład 6, Folia 3 kwiecień 2009 Po co transakcje? - Przeciwdziałanie awariom Załóżmy, że mamy system bankowy, w którym następują operacje na kontach klientów w sposób następujący: 1. Klient wczytuje kartę magnetyczną i jest rozpoznawany 2. Klient określa sumę wypłaty 3. Konto klienta jest sprawdzane 4. Konto jest zmniejszane o sumę wypłaty 5. Wysyłane jest zlecenie do kasy 6. Kasjerka odlicza sumę wypłaty od stanu kasy 7. Kasjerka wypłaca klientowi pieniądze Normalnie, aby klient dostał swoje pieniądze, tego rodzaju operacji wykonuje się kilkadziesiąt. Prawdopodobieństwo różnych awarii jest spore. Pytanie: co się stanie, jeżeli pomiędzy operacją 4 i 5 wyłączą światło? (Konto zostało zmniejszone, klient nie dostał pieniędzy, zaczyna się awantura, dyrekcja tłumaczy, że nie odpowiada za elektrownię, klient ripostuje, że guzik go to obchodzi,...) Transakcje : umożliwiają uniknięcie tego rodzaju nieprzyjemnych sytuacji związanych z dowolnymi awariami sprzętu, błędów w oprogramowaniu, a nawet tego, że kasjerka poczuła się niedobrze i musiała wyjść.

4 K.Subieta. SSR, Wykład 6, Folia 4 kwiecień 2009 Transakcja: jednostka działalności systemu n Transakcje i procedury są podobne jeżeli chodzi o kod –Niestety, nie w SQL n Wejście sterowania w ten kod powoduje uruchomienie transakcji, które kończy się jedną z dwóch decyzji: commit lub abort. n Z punktu widzenia runtime transakcja jest jednostką przetwarzania działającą na zasadzie albo wszystko, albo nic. –Jeżeli wszystko, to commit –Jeżeli nie udało się osiągnąć wszystkiego, to wycofujemy się również z tych operacji, które już zostały wykonane, czyli transakcja nic nie robi –Jeżeli ma być nic, to abort.

5 K.Subieta. SSR, Wykład 6, Folia 5 kwiecień 2009 Własności transakcji: ACID n Atomowość (atomicity) - w ramach jednej transakcji wykonują się albo wszystkie operacje, albo żadna n Spójność (consistency) - o ile transakcja zastała bazę danych w spójnym stanie, po jej zakończeniu stan jest również spójny. (W międzyczasie stan może być chwilowo niespójny). –Spójność dotyczy zgodności stanu bazy danych z biznesem ! n Izolacja (isolation) - transakcja nie wie nic o innych transakcjach i nie musi uwzględniać ich działania. Czynności wykonane przez daną transakcję są niewidoczne dla innych transakcji aż do jej zakończenia. n Trwałość (durability) - po zakończeniu transakcji jej skutki są na trwale zapamiętane (na dysku) i nie mogą być odwrócone przez zdarzenia losowe (np. wyłączenie prądu) A C I D

6 K.Subieta. SSR, Wykład 6, Folia 6 kwiecień 2009 Przykładowa transakcja Zacznij transakcję (begin transaction); Zidentyfikuj klienta; Jeżeli nie da się zidentyfikować to zerwij (abort); Wczytaj zlecenie wypłaty; Sprawdź konto klienta; Jeżeli konto < zlecenia to komunikat o przekroczeniu konta; zerwij (abort); Wyślij zlecenie do kasy; Jeżeli upłynął czas większy od 5 minut to cofnij zlecenie do kasy; zerwij transakcję (abort); Jeżeli kasjer potwierdził dokonanie wypłaty to potwierdź transakcję (commit) a inaczej cofnij zlecenie do kasy; zerwij (abort); Takie programy mogą być proste lub dowolnie skomplikowane. Transakcja, która zaczęła się w systemie jest identyfikowana jako specjalny byt; jest jej nadawany unikalny numer (identyfikator). abort - kasowanie transakcji i wszelkich skutków które ona poczyniła commit - wprowadzenie skutków transakcji na dysk i skasowanie transakcji

7 K.Subieta. SSR, Wykład 6, Folia 7 kwiecień 2009 n 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. n Ta własność nosi nazwę szeregowalności (serializability) n Plan wykonania transakcji: –Transakcje rozbija się na mniejsze fragmenty zwane operacjami. –Plan ustala jak po kolei mają być wykonywane operacje z poszczególnych transakcji. n Plan jest szeregowalny, jeżeli jego końcowy efekt jest taki sam, jak wykonanie transakcji po kolei. n Dokładniejsza analiza tej definicji powoduje wątpliwości: –Jeżeli mamy x = 10 i transakcja A dodaje do x liczbę 10, a transakcja B mnoży x przez 7, to –(A, B) 140, ale (B, A) 80 –Wynik zależy od kolejności transakcji, która kolejność jest właściwa? –Pojęcie szeregowalności jest bardzo podejrzane, nie będziemy go używać. Szeregowalność jako kryterium poprawności

8 K.Subieta. SSR, Wykład 6, Folia 8 kwiecień 2009 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ć. Spójność jest zachowana, jeżeli cała transakcja ma dwie fazy: rosnącą i skracającą. start potwierdzenie (commit) koniec czas zakładanie zamków (nie ma zwalniania) zwalnianie zamków (nie ma zakładania) Protokół 2PL (two-phase locking) Awarie są możliwe w obydwu fazach, ale faza commit jest szybka (milisekundy).

9 K.Subieta. SSR, Wykład 6, Folia 9 kwiecień 2009 Zakleszczenie Koncepcja zamków prowadzi do nieprzyjemnego efektu zwanego zakleszczeniem. Transakcja A zablokowała zasób X i żąda dostępu do zasobu Y Transakcja B zablokowała zasób Y i żąda dostępu do zasobu X. Ani A, ani B nie mogą dalej kontynuować jakiejkolwiek akcji. (System zawiesił się.) Możliwe są bardziej skomplikowane sytuacje związane z zakleszczeniem: Transakcja A Transakcja B Transakcja C Transakcja A Transakcja B Transakcja C W pętli zakleszczenia są 3 transakcje: Zakleszczyły się dwie transakcje, pozostałe działają normalnie:

10 K.Subieta. SSR, Wykład 6, Folia 10 kwiecień 2009 Walka z zakleszczeniem Bardzo poważny problem, mający skutki zarówno dla wydajności systemu jak i spójności działania (szczególnie w systemach czasu rzeczywistego, np. w bankach). Dwie generalne metody: 1. Wykrywanie zakleszczeń i rozrywanie pętli zakleszczenia. Detekcja zakleszczenia wymaga skonstruowania grafu czekania (wait-for graph) i tranzytywnego domknięcia tego grafu (złożoność gorsza niż n * n). Rozrywanie pętli zakleszczenia polega na wybraniu transakcji ofiary uczestniczącej w zakleszczeniu i następnie, jej zerwaniu i uruchomieniu od nowa. Wybór ofiary podlega różnym kryteriom - np. najmłodsza, najmniej pracochłonna, o niskim priorytecie, itd. 2. Nie dopuszczanie do zakleszczeń. Istnieje wiele tego rodzaju metod, np. a) Wstępne żądanie zasobów (preclaiming): przed uruchomieniem każda transakcja określa potrzebne jej zasoby. Nie może później nic więcej żądać. Wada: zgrubne oszacowanie żądanych zasobów prowadzi do zmniejszenia stopnia współbieżności. b) Czekasz-umieraj (wait-die): jeżeli transakcja próbuje dostać się do zasobu, który jest zablokowany, to natychmiast jest zrywana i powtarzana od nowa. Metoda może być nieskuteczna dla systemów interakcyjnych (użytkownik może się denerwować koniecznością dwukrotnego wprowadzania tych samych danych) oraz prowadzi do spadku efektywności (sporo pracy idzie na marne).

11 K.Subieta. SSR, Wykład 6, Folia 11 kwiecień 2009 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 transakcja, 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.

12 K.Subieta. SSR, Wykład 6, Folia 12 kwiecień 2009 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 w dużych aplikacjach - 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...

13 K.Subieta. SSR, Wykład 6, Folia 13 kwiecień 2009 Ziarnistość mechanizmu transakcji Pytanie: co ma być jednostką na którą zakłada się zamek, albo którą uważa się za atomowy obiekt na którym będzie trzymać się stemple, kopiować, odtwarzać, itd. granularity Baza danych? Relacja (tablica, ekstensja klasy)? Krotka (obiekt)? Element krotki (wartość atrybutu, pod-obiekt)? A może fizyczna strona??? Grube ziarna (baza danych, relacja) mały stopień współbieżności Miałkie ziarna (np. element krotki)duża pracochłonność zakładania zamków, duże zapotrzebowanie na dodatkową pamięć na zamki, przeciążenie sieci Na dodatek, to trzeba zgrać z innymi mechanizmami, np. buforowaniem w RAM. Testy dla systemów relacyjnych pokazują, że optymalną ziarnistość zapewnia fizyczna strona. Zaletą jest również to, że fizyczne strony pozwalają uwzględnić w przetwarzaniu transakcji również pomocnicze struktury, np. indeksy.

14 K.Subieta. SSR, Wykład 6, Folia 14 kwiecień 2009 Zmienna ziarnistość Pomysł (Gray, 1977) polega na tym, aby obiekty do blokowania organizować hierarchicznie i blokować w nich tyle, ile trzeba. Pomysł odpowiedni dla obiektowych baz danych. variable granularity A blokuje do aktualizacji cały obiekt B blokuje do aktualizacji kawałek obiektu A blokuje do aktualizacji kawałek obiektu B blokuje do czytania kawałek obiektu A blokuje do czytania cały obiekt

15 K.Subieta. SSR, Wykład 6, Folia 15 kwiecień 2009 Typy awarii i reakcje na awarie Zerwanie transakcji: z różnych powodów, wewnętrznych (np. czekaj-umieraj) lub zewnętrznych. Transakcja może być powtarzana automatycznie lub (jeżeli to niemożliwe) stracona. Program wywołujący transakcje powinien przewidywać sytuację, że transakcja może być zerwana, wykryć to i ewentualnie powtórzyć. Awaria systemu, ze stratą zawartości pamięci operacyjnej Awaria nośników pamięci, ze stratą zawartości dysku. Absolutna niezawodnośćabsolutna złożoność, nieskończony koszt Czyli, niestety, nawet z transakcjami absolutna niezawodność jest niemożliwa. Ale żyć się da, jeżeli awarie nie będą częściej niż np. raz na rok, więc nie jest źle... W końcu zakłada się także ludzką interwencję, a ludzie na ogół jakoś sobie radzą z kłopotami... Rozsądna niezawodnośćmały wpływ na wydajność. Transakcje rozsądnie podwyższają niezawodność, nie prowadząc do nadmiernych obciążeń czasu wykonania ani dodatkowego zapotrzebowania na pamięć.

16 K.Subieta. SSR, Wykład 6, Folia 16 kwiecień 2009 Odtwarzanie po awarii - środki, terminy Back up (bekap?) Log (dziennik) Checkpoint (czekpoint?) Replication (replikacja) Cykliczne przegrywanie zawartości bazy danych lub jej najważniejszych fragmentów na inny nośnik (najczęściej taśmę magnetyczną). Cykl: co 30 min (banki), na koniec dnia (instytucje), co tydzień (uniwersytety), itp. Recovery (odtwarzanie) Rollback (cofanie) Odtwarzanie (pół-automatyczne lub automatyczne) stanu bazy danych po awarii na podstawie ostatniego backup-u i ew. logu. Rejestracja wszystkich operacji zachodzących na bazie danych wraz ze zmienianymi obiektami, z dokładnością do transakcji, które to robią Cofanie operacji w bazie danych na podstawie logu, np. po zerwaniu transakcji Migawkowe zdjęcie stanu przetwarzania (trwałych i nietrwałych obiektów, stanu sterowania, itd.) stosowane w niektórych systemach celem powrotu do poprzedniego stanu, o ile programista/użytkownik tego sobie zażyczył. Stosowane dla wykonania operacji undo. Zdublowanie informacji na fizycznie i geograficznie oddzielonych nośnikach, celem zwiększenia niezawodności i zmniejszenia kosztów transmisji.

17 K.Subieta. SSR, Wykład 6, Folia 17 kwiecień 2009 Odtwarzanie po zerwaniu Warunek atomowości transakcji wymaga, aby w przypadku zerwania wszelkie wykonane przez nią czynności zostały odwrócone: baza danych ma wrócić do stanu sprzed transakcji. Dwie strategie: 1. Transakcje działają na własnych kopiach, które podmieniają z oryginalnymi obiektami w fazie commit. Wady: zwiększone zapotrzebowanie na pamięć, większa możliwość awarii w fazie commit (bardzo niebezpieczne). 2. Transakcje działają bezpośrednio na bazie danych, ale w specjalnym pliku zwanym dziennikiem (log) zapisują wszelkie operacje aktualizacyjne których dokonały, wraz z obiektami przed i ew. po aktualizacji. W razie zerwania - baza danych jest odtwarzana do poprzedniego stanu poprzez czytanie logu od tyłu. Write ahead log : w dzienniku zapisywane są zmiany przed ich dokonaniem. W razie awarii wiadomo, co było zrobione, czyli możliwe jest poprawne cofnięcie. relation LOG( trans_id, obiekt_id, operacja, stary_obiekt, nowy_obiekt) Czasami (SQL) stosuje się tryb oszczędny, w którym zmiany są zaznaczane w dzienniku, ale nie są naniesione w bazie danych. Prowadzi to do tego, że transakcja nie widzi własnych zmian, co jest sporą uciążliwością przy programowaniu i prowadzi do błędów.

18 K.Subieta. SSR, Wykład 6, Folia 18 kwiecień 2009 Podstawowe algorytmy z zamkami Dynamiczne dwufazowe blokowanie (2PL): transakcje ustanawiają zamki do czytania (S) które następnie mogą podwyższyć do zamków do aktualizacji (X). Jeżeli zamek jest S, to odrzucana jest próba założenia zamka X, jeżeli zamek jest X, to odrzucana jest jakakolwiek próba założenia innego zamka. System prowadzi dziennik i graf czekania, umożliwiając odtworzenie po zerwaniu i przeciwdziałając zakleszczeniu. Czekasz-umieraj (wait-die) dwufazowy (WD): Tak jak dla 2PL, ale transakcja której odmówiono dostępu ginie. Są odmiany tego algorytmu: z dwóch transakcji w konflikcie ginie młodsza, ginie starsza, ginie ta, co się mniej narobiła, ginie ta, która jest mniej ważna, itd. Dynamiczne dwufazowe blokowanie bez podwyższania zamków: tak jak 2PL, ale nie ma podwyższania zamków z S do X. Wstępne żądanie zasobów (opis już był).

19 K.Subieta. SSR, Wykład 6, Folia 19 kwiecień 2009 Komendy w SQL do przetwarzania transakcji Dowolne zdanie select, insert, update, delete, create rozpoczyna transakcję, o ile nie była ona już przez tę transakcję rozpoczęta. Transakcja trwa aż do do wydania komendy COMMIT (potwierdzającej), ABORT lub ROLLBACK (zrywającej, cofającej). Transakcja może objąć dowolną liczbę zdań select, insert, update, delete, create i innych. Komenda SAVEPOINT oznacza zapamiętanie stanu pod określoną nazwą. ABORT TO oznacza odtworzenie stanu. SQL ma także własność określaną jako isolations levels (poziomy izolacji). Idea jest słuszna: dla pewnych sytuacji warunek pełnej izolacji okazuje się zbyt mocny. Np. byłoby prawie niemożliwe zrobienie raportu operacji na koniec dnia, jeżeli system byłby w ciągłym ruchu, ponieważ zawsze jakieś dane byłyby zablokowane. Operacja by utykała na każdym kroku, szef byłby mocno wkurzony, a biedny programista oberwałby cięgi za nie swoje grzechy... Osłabienie izolacji jest więc czasami konieczne, ale powinno to być traktowane wyjątkowo, ze specjalnym statusem, ze specjalnymi środkami bezpieczeństwa. Rozwiązanie SQL jest krytykowane jako dające programiście zbyt wiele brudnych możliwości.

20 K.Subieta. SSR, Wykład 6, Folia 20 kwiecień 2009 Zagnieżdżone transakcje Czy mają sens? C.J.Date argumentuje, że nie mają. Reszta świata (wraz ze mną) uważa, że mają. Powody: ułatwienie programowania, dostarczenie nowego mechanizmu abstrakcji. Programista może kilka transakcji zamknąć w jedną większą bez zmiany tekstu programu. Programista może większą transakcję rozbić na mniejsze bez zmiany koncepcji programu. Dwie filozofie: Zagnieżdżona transakcja jest potwierdzana wyłącznie dla swojej macierzystej transakcji, przez co aktualizacje zrobione przez pod-transakcję stają się widoczne dla innych pod-transakcji. Zamki pod-transakcji są dziedziczone przez jej mamusię. Ostateczne potwierdzenie pod-transakcji i zwolnienie zamków następuje po potwierdzeniu transakcji stojącej najwyżej w hierarchii. Każda pod-transakcja po potwierdzeniu bezpośrednio wprowadza zmiany do bazy danych. Zamki nie są dziedziczone (są zwalniane). Ale każda pod-transakcja posiada bliźniaczą pod-transakcję kompensującą, która określa co robić, jeżeli mamusia nie zostanie potwierdzona. Ta filozofia jest także określana jako saga. 1 2

21 K.Subieta. SSR, Wykład 6, Folia 21 kwiecień 2009 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ą)....

22 K.Subieta. SSR, Wykład 6, Folia 22 kwiecień PC w systemach rozproszonych Program aplikacyjny Mistrz niewolnik 1 2 Dwu-fazowe potwierdzenie: 1. Niewolnicy wysyłają komunikaty gotów do mistrza po przygotowaniu do aktualizacji BD. Dane zmieniające stan lokalnych BD są dołączane do komunikatu. 2. 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. 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. Wada metody: zawieszenia systemu

23 K.Subieta. SSR, Wykład 6, Folia 23 kwiecień 2009 Długie transakcje (transakcje projektowe) Jeżeli transakcje są bardzo długie wówczas klasyczne własności ACID są niewygodne. Załóżmy, że kilku autorów opracowuje ten sam projekt. Czy dopuszczalna jest sytuacja, że koledzy nie mają możliwości obejrzenia jakiegoś fragmentu projektu, ponieważ facet, który go opracowuje wykonał tam kilka zmian, nie dokończył sprawy i poszedł na dłuższy urlop? Długie transakcje wymagają osłabienia warunku izolacji lub jakiegoś innego pojęcia szeregowalności. Pewnym rozwiązaniem są poziomy izolacji w SQL. Pomimo wielu artykułów, w których mówi się jak ten problem jest ważny, nie spotkałem ani jednego, który by jasno przestawił jakieś sensowne i nietrywialne rozwiązanie. Trywialne rozwiązanie jest oczywiste: specjalny tryb czytania obiektu, który omija nałożone na niego zamki. Tzw. kuchenne drzwi (backdoor).

24 K.Subieta. SSR, Wykład 6, Folia 24 kwiecień 2009 Podsumowanie n Transakcje prostym i skutecznym środkiem zapewnienia bezpiecznego współbieżnego dostępu do wspólnej bazy danych. n Transakcje mogą być uważane za środek synchronizacji równoległych procesów. n Jednocześnie, transakcje maja zdolność przeciwdziałania losowym awariom. n Brak środków przetwarzania transakcji w niektórych systemach w dużym stopniu dyskwalifikuje te narzędzia. n Transakcje są szczególnie istotne w systemach rozproszonych baz danych lub w systemach opartych o Internet n Transakcje są na liście usług poziomych OMG CORBA, są też składnikiem standardów SQL 1999/2003/2008 i Workflow Management Coalition. n Transakcje są własnością Web Services, przy czym granulą przetwarzania transakcji jest cały web serwis. –Jest to krytykowane jako osłabienie równoległego dostępu.


Pobierz ppt "K.Subieta. SSR, Wykład 6, Folia 1 kwiecień 2009 Standardy w zakresie systemów rozproszonych i baz danych Kazimierz Subieta Polsko-Japońska Wyższa Szkoła."

Podobne prezentacje


Reklamy Google