wykład 7 cd transakcje, współbieżność, blokady, transakcje rozproczone, protkół 2PC

background image

Spójność bazy danych

Spójność bazy danych

• stan bazy danych jest zgodny ze stanem

reprezentowanego przez nią fragmentu rzeczywistości,

• wszystkie ograniczenia integralnościowe w bazie danych są

spełnione.

Poziomy spójności w bazie danych:

Poziomy spójności w bazie danych:

• spójność polecenia – zbiór danych odczytanych przez

pojedyncze polecenie pochodzi z tego samego momentu w

czasie (momentu rozpoczęcia wykonania polecenia),

• spójność transakcji – zbiór danych, odczytywanych przez

wszystkie zapytania w pojedynczej transakcji, pochodzi z

tego samego momentu w czasie (momentu rozpoczęcia

transakcji).

Zagrożenia spójności

Zagrożenia spójności

:

• awarie, działania użytkowników,

• współbieżny dostęp do danych.

Spójność transakcji

Spójność transakcji

background image

• Sytuacja, w której kilka transakcji

wykonuje równolegle operacje na

tych samych danych.

Anomalie współbieżnego dostępu:

Anomalie współbieżnego dostępu:

– brudny odczyt (ang. dirty read)
– utracona modyfikacja (ang. lost

update),

– niepowtarzalny odczyt (ang. non-

repeatable read),

– fantomy (ang. phantoms).

Współbieżność transakcji

Współbieżność transakcji

background image

• odczyt niezatwierdzonych danych

(ang. read uncommitted)

• odczyt zatwierdzonych danych

(ang. read committed)

• powtarzalny odczyt (ang.

repeatable read),

• uszeregowalny (ang. serializable).

Poziomy izolacji transakcji

Poziomy izolacji transakcji

background image

Poziomy izolacji transakcji

Poziomy izolacji transakcji

Poziom

Poziom

izolacji/

izolacji/

Anomalia

Anomalia

Dirty

read

Non-

repeatable

read

Phantoms

Read

Read

uncommitte

uncommitte

d

d

możliwa

możliwa

możliwa

Read

Read

committed

committed

brak

brak

możliwa

możliwa

możliwa

Repeatable

Repeatable

read

read

brak

brak

brak

brak

możliwa

Serializable

Serializable

brak

brak

brak

brak

brak

brak

background image

Określenie poziomu izolacji transakcji:
– dla transakcji:

Określenie poziomu izolacji

Określenie poziomu izolacji

SET TRANSACTION ISOLATION LEVEL
{READ UNCOMMITTED | READ COMMITTED
| REPEATABLE READ | SERIALIZABLE};

dla sesji (SZBD Oracle):

ALTER SESSION SET ISOLATION_LEVEL =
{READ COMMITTED | SERIALIZABLE};

Określenie trybu dostępu transakcji

SET TRANSACTION {READ WRITE | READ ONLY};

background image

Algorytmy:

• optymistyczne – wykorzystanie znaczników

czasowych,

• pesymistyczne – wykorzystanie blokad,

najczęściej stosowany algorytm: blokowanie

dwufazowe (2PL)

Blokada – przydzielenie zasobu do zadania

Rodzaje blokad:

• wyłączne – zasób może być przydzielony tylko

do jednego zadania,

• współdzielone – zasób może zostać

przydzielony jednocześnie wielu zadaniom.

Zarządzanie współbieżnością

Zarządzanie współbieżnością

background image

Zadanie, któremu przydzielany jest zasób to

transakcja

Blokowany zasób:

– atrybut
– rekord
– strona dyskowa
– relacja
– baza danych

Zarządzanie współbieżnością

Zarządzanie współbieżnością

mniejsze ziarno
blokowania

większe ziarno
blokowania

wysoki
poziom
współbieżnośc
i

niski poziom
współbieżnośc
i

background image

Blokady w systemie ORACLE

Blokady w systemie ORACLE

• Ziarno blokowania: rekord i relacja
• Rodzaje blokad:

– rekord – blokada wyłączna,
– relacja – blokada wyłączna lub współdzielona.

• Blokowanie jest realizowane automatycznie bez

udziału użytkownika.

• Operacje odczytu danych nie wymagają

założenia blokad

background image

Odroczone ograniczenia

Odroczone ograniczenia

integralnościowe

integralnościowe

• Sprawdzane w momencie zatwierdzenia transakcji
• Definiowanie:

[ CONSTRAINT nazwa_ograniczenia ] ograniczenie
DEFERRABLE
INITIALLY
{ IMMEDIATE | DEFERRED }

• Określenie momentu sprawdzenia w bieżącej transakcji (tylko dla

ograniczeń zdefiniowanych jako odroczone):

SET CONSTRAINTS { <lista_ograniczeń> | ALL }
{ DEFERRED | IMMEDIATE };

background image

Odroczone ograniczenia

Odroczone ograniczenia

integralnościowe

integralnościowe

Przykład:

CREATE TABLE osoby(
id NUMBER(4) PRIMARY KEY
DEFERRABLE INITIALLY DEFERRED
,
nazwisko VARCHAR2(100) NOT NULL);
INSERT INTO osoby VALUES(1, 'Nowacki');
INSERT INTO osoby VALUES(1, 'Kowalski');
SELECT * FROM osoby;
COMMIT;

background image

P1.C1.KRAKOW.PL

W1.C1.WARSZAWA.

PL

P2.WROCLAW.PL

update konta@P1.C1.

update konta@P1.C1.

KRAKOW

KRAKOW

.PL .....;

.PL .....;

update

update

konta@W

konta@W

1

1

.C

.C

1

1

.WAR

.WAR

SZAWA

SZAWA

.PL .....;

.PL .....;

update

update

accounts@

accounts@

P2.WROCLAW.PL

P2.WROCLAW.PL

.....;

.....;

commit;

commit;

Transakcja, której polecenia INSERT, UPDATE, DELETE, SELECT

odwołują się do tabel znajdujących się co najmniej w dwóch
węzłach rozproszonej bazy danych

Transakcja rozproszona

Transakcja rozproszona

background image

transakcja, której polecenia DML odwołują się

do tabel znajdujących się co najmniej w dwóch

węzłach rozproszonej bazy danych

Transakcja rozproszona

Transakcja rozproszona

reprezentowana jest przez zbiór transakcji

lokalnych, które są tworzone w każdej z baz

danych, do których odwołuje się transakcja

rozproszona

background image

Koordynator globalny KG

(global

coordinator) – węzeł, z którego została

zainicjowana transakcja rozproszona

Zarządza całą transakcją tj. doprowadza ją w

całości do zatwierdzenia lub wycofania

Węzły uczestniczące w transakcji

Węzły uczestniczące w transakcji

rozproszonej

rozproszonej

Koordynator lokalny KL

(local coordinator) –

węzeł, który otrzymuje żądanie, przetwarza je i

wysyła kolejne żądania do innych podległych mu

węzłów

Nie koordynuje całej transakcji globalnej, a jedynie

te żądania, które zostały przez niego wysłane

background image

Węzeł zatwierdzania WZ

(commit point site) –

węzeł, który jako pierwszy wykonuje

zatwierdzenie swojej transakcji lokalnej w ramach

całej transakcji rozproszonej

Węzły uczestniczące w transakcji

Węzły uczestniczące w transakcji

rozproszonej

rozproszonej

Przechowuje informacje o stanie transakcji rozproszonej,

które wykorzystuje się w czasie manualnego kończenia

transakcji po awarii systemu rozproszonego

Wybierany jest przez KG spośród wszystkich węzłów

biorących udział w transakcji rozproszonej – decyduje

najwyższa wartość parametru konfiguracyjnego instancji

bazy danych

COMMIT_POINT_STRENGTH

Uczestnik U

(mode) – węzeł do którego

kierowane jest żądanie transakcji rozproszonej

(sam węzeł nie wysyła żadnych żądań)

background image

Protokół zatwierdzania dwufazowego

Protokół zatwierdzania dwufazowego

2PC

2PC

Protokół

Protokół

2PC

2PC

składa się z dwóch głównych faz

składa się z dwóch głównych faz

• przygotowania
• decyzji

Protokół ten może być implementowany jako

Protokół ten może być implementowany jako

:

-

scentralizowany 2PC

- zdecentralizowany 2PC
- liniowy 2PC

background image

Protokół scentralizowany 2PC

Protokół scentralizowany 2PC

Koncepcja pracy protokołu 2PC jest następująca:

Koordynator globalny, pyta uczestników czy są gotowi do
zatwierdzenia swoich transakcji lokalnych.

Jeśli przynajmniej jeden uczestnik odpowiada
komunikatem ABORT (nie jest gotowy), lub nie odpowie w
zadanym czasie, wówczas koordynator globalny wysyła do
wszystkich uczestników komunikat wycofania transakcji.

Jeśli natomiast wszyscy uczestnicy zgłoszą gotowość do
zatwierdzenia swoich transakcji lokalnych, wówczas
koordynator globalny wysyła do nich komunikat żądający
zatwierdzenia transakcji.

background image

Protokół scentralizowany 2PC

Protokół scentralizowany 2PC

Topologia komunikacyjna

background image

Faza przygotowania

Faza przygotowania

Koordynator globalny

Koordynator globalny

– zapisuje w lokalnym logu (na dysku)

informacji o rozpoczęciu zatwierdzania

– wysyła do uczestników komunikat PREPARE

(przygotowanie do zatwierdzania)

– przechodzi do stanu oczekiwania na

komunikaty od uczestników

background image

Faza przygotowania

Faza przygotowania

Uczestnik:

Uczestnik:

– odbiera komunikatu PREPARE od KG

a) przygotowanie do zatwierdzenia

a) przygotowanie do zatwierdzenia

zapisanie do logu stanu transakcji i rekordu o gotowości
do zatwierdzania

wysłanie do KG komunikatu READY_COMMIT

b) przygotowanie do wycofania

b) przygotowanie do wycofania

zapisuje do logu stanu transakcji i rekordu o
wycofywaniu

wysyła do KG komunikatu ABORT

przechodzi do stanu oczekiwania na kolejny komunikat
od KG

background image

Faza decyzji

Faza decyzji

Koordynator globalny

Koordynator globalny

a) jeżeli wszyscy uczestnicy odpowiedzieli

a) jeżeli wszyscy uczestnicy odpowiedzieli

READY_COMMIT

READY_COMMIT

• zapis do logu informacji o zatwierdzeniu
• wysłanie komunikatu GLOBAL_COMMIT do

uczestników

b) jeżeli przynajmniej jeden U odpowiedział ABORT

b) jeżeli przynajmniej jeden U odpowiedział ABORT

• zapis do logu informacji o wycofaniu
• wysłanie GLOBAL_ABORT do uczestników

oczekiwanie na potwierdzenia od uczestników

background image

Faza decyzji

Faza decyzji

Uczestnik

• jeśli odebrany GLOBAL_COMMIT

zapis do logu informacji o zatwierdzeniu

zatwierdzenie transakcji lokalnej

zwolnienie blokad i zasobów systemowych

wysłanie potwierdzenia do KG

• jeśli odebrany GLOBAL_ABORT

zapis do logu informacji o wycofaniu

wycofanie transakcji lokalnej

zwolnienie blokad i zasobów systemowych

wysłanie potwierdzenia do KG

background image

Faza decyzji

Faza decyzji

Koordynator globalny

– odbiór wszystkich potwierdzeń od

uczestników

– zapis do logu informacji o

zakończeniu transakcji

background image

Zdecentralizowany 2PC

Topologia komunikacyjna

Topologia komunikacyjna

background image

Zdecentralizowany 2PC

Cechy

Cechy

• większy ruch sieciowy (większa liczba

przesyłanych komunikatów)

• każdy węzeł zna decyzje pozostałych węzłów i

na tej podstawie sam

zatwierdza/wycofuje

faza decyzji nie jest konieczna

background image

Zdecentralizowany 2PC

Cechy

Cechy

• większy ruch sieciowy (większa liczba

przesyłanych komunikatów)

• każdy węzeł zna decyzje pozostałych węzłów i

na tej podstawie sam

zatwierdza/wycofuje

faza decyzji nie jest konieczna

background image

Liniowy 2PC

Koncepcja

Koncepcja

– węzły są uporządkowane liniowo
– każdy węzeł otrzymuje numer od 1 (KG) do n

(U)

– węzeł o numerze i komunikuje się tylko z

węzłami

sąsiednimi, tj. o numerach i-1, i+1

background image

Liniowy 2PC

Koncepcja

Koncepcja

– węzły są uporządkowane liniowo
– każdy węzeł otrzymuje numer od 1 (KG) do n

(U)

– węzeł o numerze i komunikuje się tylko z

węzłami

sąsiednimi, tj. o numerach i-1, i+1

background image

Liniowy 2PC

Liniowy 2PC

Faza przygotowania

Faza przygotowania

• komunikaty wysyłane od węzła 1 do n
• podejmuje decyzję, wysyła swoją decyzję z

komunikatem do węzła o numerze i+1

• węzeł o numerze i+1 podejmuje swoją decyzję i

załącza ją w komunikacie do węzła i+2, itd.

• ostatni węzeł w łańcuchu podejmuje decyzję o

zatwierdzeniu/wycofaniu na podstawie zawartości
komunikatu od węzła n-1

komunikat ten zawiera decyzje wszystkich

komunikat ten zawiera decyzje wszystkich

wcześniejszych węzłów

wcześniejszych węzłów

background image

Liniowy 2PC

Liniowy 2PC

Faza decyzji

Faza decyzji

• komunikaty wysyłane od węzła n do 1
• węzeł i podejmuje decyzję o

zatwierdzeniu/wycofaniu
i załącza ją w komunikacie do węzła i-1

• komunikat trafiający do KG zawiera decyzje

wszystkich węzłów

background image

Graf wywołań transakcji

BANK1

koordynator globalny
COMMIT_POINT STRENGTH=15

BANK3

BANK2

koordynator lokalny

COMMIT_POINT_STRENGTH=2

0

update

rachunki@bank2 ....

update rachunki@bank3

węzeł zatwierdzania

COMMIT_POINT_STRENGTH=10

0

delete from

rachunki@bank4

...

update rachunki...

insert
innsurachunki@bank5 ...

BANK5

BANK4

uczestnik

COMMIT POINT

STRENGTH=1

uczestnik

COMMIT POINT

STRENGTH=1

background image

Protokół zatwierdzania

Protokół zatwierdzania

Fazy realizacji

1.przygotowanie (prepare)
2.zatwierdzanie (commit)
3.zakończenie (forget)

background image

2PC - faza przygotowania (KG)

1. KG wybiera węzeł zatwierdzania
2. KG wysyła do uczestników żądanie

przygotowania do zatwierdzania (uwaga:
komunikat ten nie jest wysyłany do WZ)

3. Uczestnik przygotowuje się i wysyła komunikat

PREPARED do KG

4. KG odbiera komunikaty od uczestników

background image

2PC - faza przygotowania (U)

1. Odbiór komunikatu od KG żądającego

przygotowania do zatwierdzania

2. Zapis do plików dziennika powtórzeń
3. Wysłanie komunikatu PREPARE do podległych

uczestnikowi węzłów

4. Odbiór komunikatów od węzłów podległych
5. Wysłanie komunikatu do koordynatora

globalnego

background image

2PC - faza przygotowania (U)

1. W przypadku braku modyfikacji danych ->

wysłanie do koordynatora globalnego komunikatu
READ-ONLY

2. Jeśli inne zdalne węzły podległe danemu węzłowi

uczestnika zgłosiły gotowość i sam uczestnik jest
gotów -> wysłanie komunikatu PREPARED do
koordynatora globalnego

w przeciwnym przypadku

w przeciwnym przypadku

1. wycofanie lokalnej transakcji
2. wysłanie ABORT

background image

Wymiana komunikatów fazy

Wymiana komunikatów fazy

przygotowania

przygotowania

BANK1

koordynator globalny

BANK3

BANK2

koordynator

lokalny

1. Wybór WZ

1. Wybór WZ

2. prepare

2. prepare

węzeł

zatwierdzani

a

BANK5

BANK4

uczestnik

uczestnik

5. prepared

5. prepared

3. prepare

3. prepare

3. prepare

3. prepare

4. prepared

4. prepared

4. prepared

4. prepared

background image

2PC – faza zatwierdzania (zatwierdzenie)

1. KG odbiera potwierdzenia od uczestników

PREPARED

READ-ONLY (brak modyfikacji)

ABORT (niemożliwość przygotowania do
zatwierdzania)

2. Jeśli wszyscy odpowiedzieli PREPARED -> KG wysyła

żądanie zatwierdzenia transakcji do węzła
zatwierdzania

3. WZ zatwierdza transakcję i wysyła komunikat do KG
4. KG wysyła żądanie zatwierdzenia do pozostałych

węzłów

background image

2PC – faza zatwierdzania (uczestnik)

1. Odbiór od koordynatora globalnego

komunikatu żądającego zatwierdzenia
transakcji

2. Zatwierdzenie lokalnej transakcji
3. Zwolnienie blokad
4. Zapis informacji o zatwierdzeniu w pliku

dziennika powtórzeń

background image

Wymiana komunikatów fazy

Wymiana komunikatów fazy

zatwierdzania

zatwierdzania

BANK1

koordynator globalny

BANK3

BANK2

koordynator

lokalny

1. commit

1. commit

3. commit

3. commit

węzeł

zatwierdzani

a

BANK5

BANK4

uczestnik

uczestnik

2.

2.

committed

committed

4. commit

4. commit

4. commit

4. commit

5.

5.

committed

committed

5. commmitted

5. commmitted

6.

6.

commmitted

commmitted

background image

2PC – faza zakończenia

1. Usunięcie z systemu informacji o zakończonej

transakcji rozproszonej

2. Zwolnienie wszystkich niezwolnionych jeszcze

zasobów systemowych


Document Outline


Wyszukiwarka

Podobne podstrony:
Wykład 9 Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I
wykład 3 Przetwarzanie transakcyjne
Psychologia osobowości Psychologia różnic indywidualnych Marszał Wiśniewska wykład 10 Transakcyj
wykłady cd Żołądek, Weterynaria, Rok 3, patomorfologia, wyklady, wyklady z apow
wyklad 3 cd, współczesne kierunki pedagogiczne
Wykład 3 cd, Elektrotechnika-materiały do szkoły, Gospodarka Sowiński
Wyklad3AF cd
Ekonometria - wykład 6, wykład 6 - cd.... ekonometria
Wykład 7 cd, Analityka Medyczna UMB, III, Immunopatologia, Wykłady
Wykład 1 cd, Elektrotechnika-materiały do szkoły, Gospodarka Sowiński
wyklady cd
wykład 1 cd i 2
Czwarty wykład cd 2014 bez tła
Wykład 2 cd
wykłady cd Żołądek, Weterynaria, Rok 3, patomorfologia, wyklady, wyklady z apow
wyklad 3 cd, współczesne kierunki pedagogiczne

więcej podobnych podstron