upravljanje transakcijama - university of...

48
Upravljanje transakcijama

Upload: others

Post on 27-Dec-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Upravljanje transakcijama

Page 2: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Upravljanje transakcijama

• Transakcija, integritet i konkurentnost

• Oporavak

2

Page 3: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Transakcija

• Transakcija je logička jedinica posla pri radu sa podacima.

• Niz, tj. sekvencijalna kompozicija radnji koja ne narušava

uslove integriteta.

• Po izvršenju kompletne transakcije stanje baze treba da je

konzistentno, tj. da su ispunjeni uslovi integriteta.

• Kao jedinica posla, transakcija prevodi jedno konzistentno

stanje baze u drugo takvo stanje baze.

• U međukoracima transakcije konzistentnost podataka može

biti i narušena.

• Bezbedno sredstvo za interakciju korisnika sa bazom.

3

Page 4: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Transakcija

• ACID svojstva:

• atomičnost (engl. atomicity): transakcija se izvrši u celosti ili se

uopšte ne izvrši (ni jedna njena radnja);

• konzistentnost (engl. consistency): transakcija prevodi jedno

konzistentno stanje baze u drugo konzistentno stanje baze;

• izolacija (engl. isolation): efekti izvršenja jedne transakcije su

nepoznati drugim transakcijama sve dok se ona uspešno ne

kompletira;

• trajnost (engl. durability): svi efekti uspešno kompletirane

transakcije su trajni, tj. mogu se poništiti samo drugom

transakcijom.

4

Page 5: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Transakcija, integritet- primer

• Neka je relacija KI proširena atributom VR_IZDANJA koji se

odnosi na vrednost jednog izdanja (u dinarima) jedne knjige

jednog izdavača

• Neka je relacija I proširena atributom VREDNOST koji se

odnosi na vrednost (u dinarima) svih izdanja jednog izdavača

• Primer uslova integriteta:

– vrednost atributa VREDNOST relacije I, za svakog

pojedinačnog izdavača, jednaka je zbiru vrednosti svih

izdanja svih knjiga tog izdavača u relaciji KI, tj.

5

Page 6: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Transakcija, integritet - primer

CREATE ASSERTION PROVERA CHECK

(NOT EXISTS ( SELECT *

FROM I

WHERE VREDNOST <> ( SELECT SUM (VR_IZDANJA)

FROM KI

WHERE I_SIF = I.I_SIF) ) )

• Obezbeđenje važenja uslova integriteta postiže se odgovarajućom

strukturom i sadržajem transakcije.

6

Page 7: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Transakcija, integritet - primer

• Neka je transakcija T1 – promena vrednosti atributa

VR_IZDANJA drugog Prosvetinog izdanja knjige sa šifrom k1 u

relaciji KI, kao i odgovarajuća promena vrednosti atributa

VREDNOST u relaciji I. Npr.

BEGIN TRANSACTION

(A) UPDATE KI

SET VR_IZDANJA = VR_IZDANJA + 4000

WHERE K_SIF = 'k1' AND I_SIF = 'i1' AND IZDANJE = 2;

(B) UPDATE I

SET VREDNOST = VREDNOST + 4000

WHERE I_SIF = 'i1';

END TRANSACTION7

Page 8: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Transakcija, integritet

• U sistemu DB2, važenje uslova integriteta obezbeđuje

aplikacija.

• U radu sa transakcijama SUBP koristi usluge upravljača

transakcija.

• Sistem za upravljanje transakcijama obezbeđuje upis (u bazu)

efekata izvršenja svih radnji od kojih se transakcija sastoji, ili

nijedne.

• Jedan aspekt kontrole konzistentnosti baze.

8

Page 9: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Transakcija, integritet: DB2

• RSUBP DB2 koristi dve radnje upravljača transakcija

– COMMIT - označava uspešan kraj transakcije i trajan upis efekata svih

radnji transakcije u bazu

– ROLLBACK - označava neuspešan kraj transakcije i poništenje svih

efekata koje su proizvele radnje te transakcije

• U sistemu DB2 transakcija je:

– deo aplikacije od početka programa do prve radnje COMMIT ili

ROLLBACK radnje

– deo aplikacije između dve susedne takve radnje u programu,

– deo aplikacije od poslednje takve radnje do kraja programa

– ako se nijedna od radnji COMMIT, ROLLBACK ne uključi u program,

čitav program predstavlja jednu transakciju; na kraju programa se

sistemski generiše jedna komanda COMMIT / ROLLBACK

9

Page 10: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Transakcija, integritet

• Deo programa u aplikativnom SQL-u:

EXEC SQL WHENEVER SQLERROR GO TO PONISTI;

EXEC SQL UPDATE KI

SET VR_IZDANJA = VR_IZDANJA + 4000

WHERE K_SIF = 'k1' AND I_SIF = 'i1' AND IZDANJE = 2;

EXEC SQL UPDATE I

SET VREDNOST = VREDNOST + 4000

WHERE I_SIF = 'i1';

EXEC SQL COMMIT;

GO TO ZAVRSENA;

PONISTI: EXEC SQL ROLLBACK;

ZAVRSENA: RETURN;

10

Page 11: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Konkurentnost

• Veći broj korisnika baze podataka

• Istovremeno izvršavanjei više transakcija

• Svaka transakcija ispunjava uslove integriteta (“dobro

definisana”

• Istovremeno izvršenje može da naruši te uslove

• Serijsko izvršenje ispunjava uslove integriteta baze

• Izvršenje skupa transakcija:

– niz radnji od kojih se te transakcije sastoje

– u tom nizu redosled radnji iz svake transakcije je nepromenjen, ali

– dve uzastopne radnje ne moraju pripadati istoj transakciji

– pojedinačna radnja izvršenja izvršava se u jednom koraku

11

Page 12: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Konkurentnost - primer

• Uz transakciju T1, i transakciju T2 kojom se povećava vrednost

svih izdanja izdavača i1 za 10%. Transakcija T2:

BEGIN TRANSACTION

(A’) UPDATE KI

SET VR_IZDANJA = VR_IZDANJA * 1.1

WHERE KI.I_SIF = 'i1';

(B’) UPDATE I

SET VREDNOST = VREDNOST * 1.1

WHERE I.I_SIF = 'i1';

END TRANSACTION

12

Page 13: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Izvršenja skupa transakcija

• Osnovne komponente transakcije:

– objekti (npr. slogovi) i

– dve radnje: čitanje i upis (tj. ažuriranje)

• Dve radnje u ovom modelu su konfliktne ako se obavljaju nad

istim objektom a jedna od njih je radnja upisa.

• Parovi konfliktnih radnji

– (čitanje, upis)

– (upis, upis)

• Dva izvršenja datog skupa transakcija su ekvivalentna ako

imaju isti redosled izvršavanja svakog para konfliktnih radnji.

• Od posebnog interesa su ona izvršenja skupa transakcija koja

su ekvivalentna serijskom a različita od serijskog.

13

Page 14: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Izvršenja skupa transakcija

• Za skup transakcija T, skup objekata O nad kojima transakcije

obavljaju radnje, i neko izvršenje I skupa transakcija T,

redosled izvršavanja konfliktnih radnji karakteriše se tzv.

relacijom zavisnosti.

• Relacija zavisnosti izvršenja I skupa transakcija T={T1, T2}, u

oznaci Z(I), jeste podskup Dekartovog proizvoda TxOxT, koji

sadrži sve i samo trojke (T’, o, T”) (za T’, T” iz {T1, T2} i o iz O),

sa sledećim svojstvima:

• 1. u i-tom koraku izvršenja I transakcija T’ obavlja čitanje ili

upis nad objektom o, a u kasnijem koraku j (i < j) transakcija T”

obavlja čitanje ili upis nad tim istim objektom;

• 2. jedna od dve uočene radnje je upis;

• 3. između i-tog i j-tog koraka izvršenja I nema radnje upisa nad

objektom o 14

Page 15: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Izvršenja skupa transakcija

• Analogno se definiše relacija zavisnosti izvršenja skupa

transakcija T={T1, T2,. . . , Tn}

• Relacija ekvivalencije na skupu izvršenja skupa transakcija

(formalna definicija): Dva izvršenja I1, I2 skupa transakcija T su

ekvivalentna ako su im jednake relacije zavisnosti, tj. ako je

Z(I1) = Z(I2)

• Izvršenje I skupa transakcija T je linearizovano ako je

ekvivalentno nekom serijskom izvršenju.

15

Page 16: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Izvršenja skupa transakcija - primer

• U transakcijama T1, T2, radnje UPDATE mogu se smatrati

radnjama upisa.

• Za skup tih transakcija{T1, T2} posmatrajmo sledeća tri

izvršenja:

16

Page 17: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Izvršenja skupa transakcija - primer

• Relacije zavisnosti ovih izvršenja su:

• Z(I1) ={(T2, KI, T1), (T2, I , T1)},

• Z(I2) ={(T2, KI, T1), (T1, I , T2)},

• Z(I3) ={(T2, KI, T1), (T2, I , T1)},

• Z(I3) = Z(I1) - izvršenje I1 je linearizovano

• Izvršenje I2 nema ekvivalentno serijsko, pa ono nije

linearizovano.

17

Page 18: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Izvršenja skupa transakcija

• Za serijsko (tj. linearizovano) izvršenje I skupa transakcija T

važi:

• relacija zavisnosti Z(I) je “antisimetrična”, tj.

• za proizvoljna dva objekta o1, o2 važi:

• Ako je (T1, o1, T2) iz Z(I) onda (T2, o2, T1) nije iz Z(I).

• Relacija zavisnosti takvog izvršenja definiše na skupu

transakcija T linearno uređenje < na sledeći način:

• T1 < T2 ako (T1, o, T2) pripada Z(I) za neki objekat o

18

Page 19: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti

• 1. problem: nekonzistentna analiza

• Ako jedna transakcija počne po završetku druge

– redosled radnji: A, B, A’, B’ ili A’, B’, A, B), ili

• Ako im se radnje izvršavaju naizmenično

– redosled radnji: A, A’, B, B’ ili A’, A, B’, B),

• njihovo izvršenje je serijsko ili ekvivalentno serijskom izvršenju

T1;T2 (ili T2;T1)

• Posle tog izvršenja baza će biti u konzistentnom stanju.

• Ako se jedna transakcija kompletno izvrši između prve i druge

radnje druge transakcije

– redosled radnji: A, A’, B’, B ili A’, A, B, B’,

• baza će se posle izvršenja tog skupa transakcija naći u

nekonzistentnom stanju.19

Page 20: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti

• Primer:A, A’, B’, B.

• Neka je vrednost 2. izdanja knjige k1 izdavača i1 jednaka a, a

vrednost svih izdanja izdavača i1 jednaka b

– u relaciji I vrednost atributa VREDNOST je b,

– u relaciji KI – suma vrednosti atributa VR_IZDANJA za izdavača i1 je b

• Da bi izvršenje skupa transakcija{T1, T2} ostavilo bazu u

konzistentnom stanju, iznos b u obe relacije mora da se

promeni za istu vrednost.

• Promene nad relacijama I i KI:

20

Page 21: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti• Stanje baze pre izvršenja transakcija T1, T2:

KI [K_SIF=k1,I_SIF=i1,IZDANJE=2][VR_IZDANJA] = a;

SUM (KI [VR_IZDANJA]) za I_SIF = i1 = b;

I [I_SIF=i1] [VREDNOST] = b;

• Posle izvršenja radnje A:

KI [K_SIF=k1,I_SIF=i1,IZDANJE=2][VR_IZDANJA] = a+4000;

SUM (KI [VR_IZDANJA]) za I_SIF = i1 = b+4000;

• Posle izvršenja radnje A’:

KI [K_SIF=k1,I_SIF=i1,IZDANJE=2][VR_IZDANJA] =

(a + 4000) * 1.1 = a * 1.1 + 4400

SUM (KI [VR_IZDANJA]) za I_SIF = i1 = (b+4000)*1.1 =

b * 1.1 + 4400

• (svim izdanjima izdavača i1 vrednost je uvećana za 10%);21

Page 22: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti

• Posle izvršenja radnje B’:

I [I_SIF=i1] [VREDNOST] = b * 1.1

• Posle izvršenja radnje B:

I [I_SIF=i1] [VREDNOST] = b * 1.1 + 4000

• Vrednost atributa VREDNOST relacije I za izdavača sa šifrom i1

je b*1.1+4000,

• Zbir vrednosti svih izdanja (VR_IZDANJA) tog izdavača u relaciji

KI je b*1.1+4400.

22

Page 23: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti

• 2. problem: izgubljeno ažuriranje

• Transakcije T1, T2: čitanje i upis istog sloga

• Prvo se izvrše radnje čitanja, zatim radnje upisa

• Na primer,

– transakcija T1 čita slog koji se odnosi na izdavača sa šifrom I_SIF = i2,

– transakcija T2 čita isti slog (posebno, za atribut STATUS, obe čitaju

vrednost 20)

– transakcija T1 menja vrednost atributu STATUS tog sloga (sa 20 na 30) i

zatvori datoteku,

– transakcija T2 menja vrednost atributu STATUS (sa 20 na 40) i zatvori

svoju verziju iste datoteke.

• Ostaju zapamćene samo promene transakcije T2

• Transakciji T1 se bez obaveštenja poništava efekat upisa

23

Page 24: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti

• 3. problem: zavisnost od poništenog ažuriranja

– Transakcija T2 upisuje (tj. ažuriranje) slog r

– Transakcija T1 čita slog r , završi sa radom

– Transakcija T2 poništi sve efekte koje je do tog trenutka proizvela na

bazu, tj. poništi ažuriranje sloga r

• Transakcija T1 pročitala je ažuriranu vrednost sloga r koja nije

ni trebalo da bude upisana u bazu.

• Slično,

• Transakcija T2 upisuje (tj. ažuriranje) slog r

• Transakcija T1 ažurira slog r, završi sa radom

• Transakcija T2 poništi sve efekte koje je do tog trenutka proizvela na

bazu, tj. poništi ažuriranje sloga r

• Gubi bi se, bez obaveštenja, ažuriranje transakcije T1

24

Page 25: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti: zavisnost

od poništenog ažuriranja

25

Page 26: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti

• Prva dva problema konkurentnosti vezana su za redosled

konkurentnog izvršavanja radnji dve ili više transakcija.

• Treći problem je, osim za konkurentnost, vezan i za oporavak

baze podataka pri poništavanju transakcije u konkurentnom

izvršenju.

• Do poništavanja transakcije može doći, na primer, zbog greške

u transakciji ili zbog pada sistema.

26

Page 27: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti – rešenje:

zaključavanje

• Granularnost, tj. veličina objekata zaključavanja - cele relacije,

pojedinačne n-torke relacije, delovi n-torki, grupe atributa,

skupovi n-torki koje zadovoljavaju zadati uslov, itd.

• Zaključavanje objekta (postavljanje katanca na objekat) je

postupak koji obezbeđuje transakciji pristup objektu, i kojim

transakcija istovremeno sprečava druge transakcije da

pristupe tom objektu

• Svaka transakcija na kraju svog izvršavanja otključava sve

objekte koje je sama zaključala (a koje nije već otključala).

27

Page 28: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Problemi konkurentnosti – rešenje:

zaključavanje

• Jednostavni model – pretpostavke

– postoji samo jedna vrsta katanca, i

– pri izvršenju skupa transakcija nijedna transakcija ne može zaključati

već zaključani objekat

• Realni sistemi – deljivi / ekskluzivni katanci

– više transakcija može da postavi deljivi katanac na jedan objekat, ali

najviše jedna može da postavi ekskluzivni katanac.

28

Page 29: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Dvofaznost transakcije

• Transakcija je dvofazna ako se sastoji od dve serijske faze: faze

zaključavanja objekata i faze otključavanja objekata.

• U fazi zaključavanja nema nijedne radnje otključavanja

objekta

• U fazi otključavanja više nema radnji zaključavanja

• Faza otključavanja objekata počinje prvom radnjom

otključavanja.

29

Page 30: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Dvofaznost transakcije

• Teorema: Dovoljan uslov za linearizovanost izvršenja I skupa

transakcija {T1, T2} je da su one dvofazne.

• Dokaz

• Indukcijom se može dokazati važenje prethodnog tvrđenja i za

svaki konačan skup transakcija{T1, T2, . . . , Tn}

30

Page 31: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Dvofaznost transakcije

• Dvofaznost skupa transakcija nije potreban uslov za

linearizovanost proizvoljnog izvršenja (primer)

• Dvofaznost transakcija može proizvesti I neželjeni efekat

poznat kao uzajamno blokiranje transakcija (engl. deadlock)

• Primer: Za dve dvofazne transakcije

T1: zaključati KI T2: zaključati I

upisati KI upisati I

zaključati I zaključati KI

upisati I upisati KI

otključati KI otključati I

otključati I otključati KI

31

Page 32: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Dvofaznost transakcije

• jedno njihovo delimično izvršenje je:

T1: zaključati KI

T1: upisati KI

T2: zaključati I

T2: upisati I

32

Page 33: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija – nivoi izolovanosti

• Najviši nivo izolovanosti aplikacije (i njenih transakcija) u

sistemu DB2 je nivo ponovljivog čitanja – RR (engl.

repeatable read).

• Zaključavanje svih vrsta kojima se transakcija obraća (npr. cele

tabele), a ne samo onih vrsta koje zadovoljavaju uslov upita.

• Tako se rezultat izvršenja jednog upita (čitanja) transakcije T

ne može promeniti od strane druge transakcije pre nego što se

transakcija T završi.

• Ovaj nivo izolovanosti obezbeđuje i da transakcija nema uvid

u nepotvrđene promene drugih transakcija.

33

Page 34: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija – nivoi izolovanosti

• Sledeći nivo izolovanosti jeste nivo stabilnosti čitanja – RS

(engl. Read stability).

• Obezbeđuje zaključavanje samo onih vrsta koje zadovoljavaju

uslov upita, tj. ne dopušta promenu (od strane drugih

transakcija) vrste koju je pročitala transakcija T, sve do

završtka transakcije T.

• Vrsta koju je pročitala transakcija T ostaće nepromenjena od

strane drugih transakcija sve do završtka transakcije T,

• Rezultati ponovljenih izvršenja istog upita od strane

transakcije T mogu da se razlikuju (može da dođe do

dodavanja, od strane drugih transakcija, vrsta koje će

zadovoljiti taj upit, tj. do tzv. fantomskih redova).34

Page 35: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija – nivoi izolovanosti

• Nivo stabilnosti kursora – CS (engl. cursor stability)

obezbeđuje zaključavanje samo one vrste koju transakcija T

trenutno čita

• Sve vrste koje je transakcija T prethodno pročitala (ali ne i

menjala) – otključane su i mogu ih druge transakcije menjati i

pre okončanja transakcije T

• Transakcija T i dalje nema uvid u promene drugih transakcija

pre okončanja tih transakcija.

35

Page 36: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija – nivoi izolovanosti

• Najslabiji nivo izolovanosti transakcije je nivo nepotvrđenog

čitanja – UR (engl. uncommitted read).

• Ovaj nivo omogućuje transakciji T da ”vidi” (pročita)

nepotvrđene promene drugih transakcija, kao i drugim

transakcijama da pristupe podacima koje transakcija T upravo

čita.

36

Page 37: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija – nivoi izolovanosti

• Objekat koji transakcija sistemski zaključava zavisi od nivoa

izolovanosti transakcije i operacije i može biti različite

granularnosti – vrsta tabele, tabela, prostor tabela

• Jedini objekat koji korisnik može eksplicitno da zaključa –

deljivim (S) ili ekskluzivnim (X) katancem jeste tabela (LOCK

TABLE iskaz)

• Održavanje jednog ključa nad celom tabelom je efikasnije od

zaključavanja pojedinačnih vrsta, ali smanjuje konkurentnost

obrade

• Zaključavanje cele tabele adekvatno u slučaju da transakcija

obrađuje veliki broj slogova te tabele.

37

Page 38: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija

• Dva najvažnija načina upotrebe katanaca su deljivi katanac –

S-katanac (engl. shared), koji se postavlja pri čitanju objekta, i

ekskluzivni katanac – X-katanac (engl. exclusive), koji se

postavlja pri upisu u objekat.

• Ovi se katanci mogu postaviti i na pojedinačnu vrstu i na celu

tabelu.

• Takav je i tzv. katanac ažuriranja – U-katanac (engl. update),

koji omogućuje menjanje objekta (tabele ili vrste) uz

dopuštenje drugim transakcijama da čitaju podatke, pri čemu

svako menjanje proizvodi X katanac na promenjenoj vrsti.

• Neki katanci nad istim objektom su kompatibilni a neki nisu.

38

Page 39: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija

39

Page 40: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija

• I druge vrste katanaca u sistemu DB2

• Izražavaju nameru transakcije da pročita / promeni vrednost

objekta

• IS, engl. intent share

• IX, engl. intent exclusive

• SIX, engl. shared with intent exclusive

• itd.

40

Page 41: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija

• Katanci se drže do kraja transakcije, tj. do njene potvrde ili

poništenja

• Osim u slučaju nivoa izolovanosti koji ne obezbeđuju u

potpunosti ACID svojstva transakcija – CS i UR

• Pri ovakvom pristupu dvofaznost transakcija je očita, ali je

izvršenje transakcija nad istim objektima gotovo serijsko

(smanjena konkurentnost).

• Pribegava se “usitnjavanju” transakcija

• Povećava izglede za uzajamno blokiranje

41

Page 42: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Specifičnosti realnih modela

transakcija

• Transakcija dobija katance od sistema, automatski (bez

eksplicitnog zahteva):

– kad transakcija otvori kursor za čitanje, automatski dobija IS katanac

nad odgovarajućom tabelom;

– kada uspešno obavi čitanje vrste, automatski dobija S-katanac na toj

vrsti;

– kada otvori kursor za ažuriranje, dobija IX ili U katanac nad tabelom;

– kada uspešno obavi ažuriranje vrste, dobija X-katanac na vrsti, itd.

• Pojedinačne vrste mogu biti zaključane samo S, U ili X

katancima, dok se ”katanci namere” mogu postaviti samo na

tabele ili prostore tabela.

42

Page 43: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Rešenje problema konkurentnosti • Rešenje problema nekonzistentne analize:

43

Page 44: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Rešenje problema konkurentnosti • Rešenje problema izgubljenog ažuriranja:

44

Page 45: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Rešenje problema konkurentnosti • Rešenje problema zavisnosti od poništenog ažuriranja:

45

Page 46: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Uzajamno blokiranje - primer

• Transakcije T1, T2, ..., T12

• Objekti A, B, C, D, E, F, G, H

46

Page 47: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Uzajamno blokiranje - primer

47

Page 48: Upravljanje transakcijama - University of Belgradepoincare.matf.bg.ac.rs/~gordana/UpravljanjeTransakcijama.pdfTransakcija • Transakcija je logička jedinica posla pri radu sa podacima

Graf čekanja - primer• T1, T7 i T6 uspešno završile rad, T5 poništena. Iz grafa preostalih

transakcija sledi da su u trenutku t36 uzajamno blokirane.

48