Obiektowe modelowanie systemów informatycznych



Pobieranie 8,01 Mb.
Strona77/113
Data23.10.2017
Rozmiar8,01 Mb.
1   ...   73   74   75   76   77   78   79   80   ...   113

Przetwarzanie transakcji na różnych poziomach izolacji


Przyjęcie konkretnego poziomu izolacji wiąże się z określonymi problemami – zbyt niski poziom zapewni zwiększenie współczynnika współbieżności, ale może doprowadzić do niekorzystnych cech związanych z zachowaniem spójności bazy danych. Poziom zbyt wysoki może powodować nieuzasadnione opóźnianie transakcji.

Czytanie danych z transakcji nie zatwierdzonych (poziom izolacji 0)

Czytanie danych z transakcji nie zatwierdzonych możliwe jest przy przyjęciu poziomu izolacji 0, tzn., gdy za konfliktowe uważa się tylko parę operacji zapisu, a dwie operacji, z których jedna jest operacja odczytu, nie są operacjami konfliktowymi. W standardzie SQL ten poziom izolacji nazywany jest także READ UNCOMMITED (popularne określany jako „brudne czytanie”). Można, więc czytać dane zmieniane przez transakcję, która nie została zatwierdzona. Reguły współbieżności dla tego poziomu izolacji przedstawiono w tablice 1, gdzie operacje w lewej kolumnie traktowane są jako wcześniejsze od operacji w górnym wierszu, T oznacza, że operacje mogą być wykonywane współbieżnie, czyli nie są konfliktowe, N oznacza brak współbieżności, a więc konfliktowość.

Tablica 1. Reguły współbieżności dla poziomu izolacji 0 – READ UNCOMMITED






Read

Write

Read

T

T

Write

T

N

Przyjęcie tego rodzaju współbieżności operacji może doprowadzić do braku odtwarzalności, kaskady odrzuceń, anomalii powtórnego czytania oraz do pojawiania fantomów. Zaletą jest jednak to, że uzyskujemy wysoki współczynnik współbieżności transakcji.



Zakaz czytania danych z transakcji nie zatwierdzonych (poziom izolacji 1).

Zakaz czytania danych z transakcji nie zatwierdzonych wprowadza poziom izolacji 1. Poziom ten w standardzie SQL określany jest także jako READ COMMITTED. Przy tym poziomie izolacji dopuszczalne jest jednak zapisywanie danych w transakcjach nie zatwierdzonych. Za konfliktowe uważa się wówczas takie pary operacji, gdzie pierwsza jest operacją zapisu, a druga czytania lub obydwie są operacjami zapisu. Dwie operacje, z których pierwsza jest operacją czytania, a druga operacją zapisu nie są, więc konfliktowe. Można, zatem zapisywać dane, które zostały przeczytane przez transakcję jeszcze nie zatwierdzoną.

Tablica 2. Reguły współbieżności dla poziomu izolacji 1 – READ COMMITED





Read

Write

Read

T

T

Write

N

N

Przyjęcie tego rodzaju współbieżności eliminuje anomalie związane z brakiem odtwarzalności i z kaskadą odrzuceń. Nie chroni jednak przed anomalią związaną z powtórnym czytaniem ani przed pojawianiem się fantomów.



Zakaz czytania i zapisywania danych w transakcjach nie zatwierdzonych (poziom izolacji 2).

Zakaz czytania w transakcjach nie zatwierdzonych i zakaz zapisywania w nich związany jest z przyjęciem konfliktowości na poziomie 2, gdy za konfliktowe uważa się takie pary operacji, gdzie, co najmniej jedna jest operacją zapisu. W standardzie SQL określa się go także jako REPEATABLE READ. Za niekonfliktowe uważa się tylko operacje czytania. Jeśli więc transakcja nie zatwierdzona przeczytała jakąś daną, to dana ta może być tylko czytana przez inną transakcję. Jeśli natomiast transakcja nie zatwierdzona zapisała jakąś daną, to nie można jej ani odczytać, ani tym bardziej zapisać dopóty, dopóki transakcja ta nie zostanie zatwierdzona. Reguły współbieżności operacji mają wówczas postać przedstawioną w tablicy 3.

Tablica 3. Reguły współbieżności dla poziomu izolacji 2 – REPEATABLE READ





Read

Write

Read

T

N

Write

N

N

Przyjęcie tego rodzaju współbieżności eliminuje anomalie powtórnego czytania. Nie eliminuje natomiast problemu fantomów.



Historie szeregowalne (poziom izolacji 3)

Rozwiązanie problemu fantomów wymaga poszerzenia rozważanych dotychczas pojęć współbieżności i konfliktowości w kierunku uwzględnienia formuł (predykatów) definiujących zbiory danych, na których działają rozważane transakcje.



Niech dane będą operacje i pochodzące z dwóch różnych i aktywnych transakcji ( i są formułami określającymi zbiory danych, na których działają operacje) oraz niech . Przyjmijmy oznaczenia:


1   ...   73   74   75   76   77   78   79   80   ...   113


©operacji.org 2017
wyślij wiadomość

    Strona główna