Documente Academic
Documente Profesional
Documente Cultură
Controlul Concurentei
Controlul Concurentei
folosirea unui numrtor, incrementat valoarea sa este alocat unei tranzacii. n aceast
variant, tranzaciile sunt enumerate n secvena 1, 2, 3, etc. Dac pentru un interval scurt de
timp nu sunt executate tranzacii, coninutul numrtorului devine zero.
Folosirea valorii curente a semnalului de tact al sistemului de calcul. n acest caz, generarea
a dou tampile de timp n decursul aceluiai interval de tact trebuie evitat.
n fapt, algoritmul trebuie s asigure condiiile n care pentru fiecare obiect de date la care n
planificare au acces mai multe tranzacii, ordinea n care se realizeaz accesul nu ncalc
serializabilitatea planificrii. n vederea atingerii acestui obiectiv, algoritmul TO principal asociaz
cu fiecare obiect X al bazei de date dou valori de tampil de timp:
1. read_TS (X), care este tampila de timp pentru citire a obiectului de date X. Se definete ca
fiind cea mai mare tampil de timp dintre toate valorile associate cu tranzaciile care au
reuit s citeasc X cu succes.
2. write_TS (X)- este tampila de timp pentru nregistrarea obiectului X. Se definete ca fiind
cea mai mare tampil de timp dintre toate valorile de tampil associate cu tranzaciile ce
au nregistrat obiectul X cu succes.
S analizm evenimentele care se produc n decursul evoluiei algoritmului. Oricnd o tranzacie
oarecare T ncearc s iniieze o operaiune de citire pe X, Read X, sau o operaiune de nregistrare
Write X, algoritmul TO principal compar tampila de timp a tranzaciei T cu valorile tampilei de
timp pentru citire sau nregistrare ale obiectului X, pentru a verifica dac nu este cumva nclcat
ordinea tampilelor de timp ale planificrii tranzaciilor. Dac operaiunea iniiat ncalc ordinea,
tranzacia T nu respect ordonarea planificrii seriale echivalente i, ca urmare, T va fi abandonat.
n continuare, tranzacia T este din nou prezentat sistemului de gestiune a bazei de date, ca o
tranzacie nou, cu o tampil de timp de valoare nou.. n ipoteza c tranzacia T a fost abandonat
i apoi reintrodus n sistem, orice alt tranzacie T1 care eventual a folosit o valoare nregistrat de
ctre T trebuie s fie, de asemenea, reintrodus n sistem. Similar, orice tranzacie T2 care a folosit,
eventual, o valoare nregistrat de T1, trebuie reintrodus, .a.m.d. Procesul descries poart numele
de reintroducere n cascad i constitue una dintre dificultile associate cu algoritmul TO
principal, deoarece execuiile produse nu pot fi recuperate.
Respectarea ordonrii tranzaciilor dup valorile tampilelor de timp trebuie verificat de algoritmul
de control al concurenei n urmtoarele dou cazuri:
1. O tranzacie T, a crei tampil de timp are valoarea TS (T), iniiaz o operaie
Write X. Distingem situaiile prezentate mai jos:
a. Dac read_TS (X) > TS (T), sau write_TS(X) > TS(T), atunci T este abandonat,
rentoars, iar operaia iniiat respins. Aceast evoluie are loc deoarece o
tranzacie cu tampila de timp superioar fa de TS (T)- i, prin urmare, amplasat
n urma tranzaciei T n ordonarea tamplielor de timp- a reuit deja s citeasc sau
s nregistreze valoarea obiectului X nainte ca tranzacia T s nregistreze acest
obiect, nclcnd astfel ordinea tampilelor de timp.
2
T2
150
T3
175
A
RT=0
WT=0
Read B
Read A
B
RT=0
WT=0
RT=200
RT=150
Read C
Write B
Write A
C
RT=0
WT=0
RT=175
WT=200
WT=200
Write C
Abort
Write A__________________________________
Dup cum se vede, la nceput presupunem c la nceput fiecare din obiectele de date are att timpul
de citire, ct i timpul de nregistrare de valoare 0. tampilele de timp ale tranzaciilor sunt obinute
atunci cnd acestea notific planificatorul c ncep s lucreze, deci s fie executate. Observm c
tranzacia T1 execut primul acces la date, dei nu are cea mai mic valoare a tampilei de timp. De
3
fapt, tranzacia T2 era prima care ar fi trebuit s notifice planificatorul c ncepe execuia, urmt de
T3, iar T1 ar fi trebuit s fie ultima tranzacie ce ncepe execuia.
n decursul primului pas al planificrii propuse, prima aciune realizeaz citirea obiectului B de
ctre tranzacia T1. Deoarece timpul de nregistrare pentru B este mai mic dect
tampila de timp a tranzaciei T1, operaiunea de citire este fizic realizabil i acestei tranzacii i se
permmite nceperea execuiei. Timpului de citire al obiectului B i se atribue valoarea 200, care este
tampila de timp a tranzaciei T1. n mod asemntor, a doua i a treia aciune de citire sunt legale,
astfel nct timpul de citire al fiecrui obiect de date ia valoarea tampilei de timp a tranzaciei care
efectueaz citirea.
n al patrulea pas al planificrii, T1 nregisteaz B. Deoarece timpul de citire a obiectului de date B
nu este mai mare dect tampila de timp a tranzaciei T1, nregistrarea este fizic realizabil.
Totodat, ntruct timpul de nregistrare a obiectului B nu este mai mare dect tampila de timp a
tranzaciei T1, trebuie s fie realizat efectiv operaia de nregistrare. Odat cu efectuarea acesteia,
timpul de nregistrare a obiectului B ia valoarea 200, adic valoarea tampilei de timp a tranzaciei
T1, care face nregistrarea.
n pasul al cincilea, procesul evolueaz n manier asemntoare, cu operaia de nregistrare a
obiectului A de ctre T1 i cu atribuirea valorii tampilei de timp a tranzaciei T1 ctre timpul de
nregistrare a obiectului A.
n decursul urmtorului pas, al aselea, tranzacia T2 ncearc s nregistreze obiectul de date C.
Remarcm ns c c C a fost citit anterior de ctre T3, tranzacie ce a fost executat teoretic la
momentul 175 (valoarea tamplei sale de timp), pe cnd T2 ar ncerca s nregistreze C la momentul
150, care este valoarea tampilei de timp a acestei tranzacii. Aciunea ncercat de T2 conduce la
un comportament imposibil din punct de vedere fizic, aadar aceast tranzacie trebuie re- ntoars
(rolled back), fiind n final abandonat.
Ultimul pas al planificrii este reprezentat de nregistrarea obiectului de date A de ctre T3.
Deoarece timpul de citire a obiectului A are valoarea 150, mai mic dect tampila de timp a
tranzaciei T3, de valoare 175, nregistrarea este legal. Observm ns c n obiectul A a fost
nregistrat valoarea 200 de ctre tranzacia T1-fapt petrecut teoretic la momentul 200, care este
valoarea tampilei de timp a tranzaciei T1. n consecin, tranzacia T3 nu va fi returnat, dar nici
nu va nregistra informaie n obiectul A.