Sunteți pe pagina 1din 23

COMENZI DE CONTROL AL

CONCURENTEI IN SISTEME DE
BAZE DE DATE DISTRIBUITE

Reele de Calculatoare i Internet


tefnescu Cristina
IISC
1. INTRODUCERE
Baza de date: O colecie partajat de date, ntre
care exist relaii logice, proiectat pentru a
satisface necesitile informaionale ale unei
organizaii.
SGBD: Un sistem de programe care permite
utilizatorului definirea, crearea i ntreinerea
bazei de date si accesul controlat la aceasta.
SQL (Structured Query Language) este n
prezent, unul din cele mai puternice limbaje
structurate pentru interogarea bazelor de date
relaionale; este un limbaj neprocedural i
declarativ, deoarece utilizatorul descrie ce date
vrea s obin, fr a fi nevoie s stabileasc
modalitile de a ajunge la datele respective.
2. BAZE DE DATE DISTRIBUITE
Avantaje:
o Independena datelor fa de suportul fizic de memorare;
o Transparen a distribuiei (n reea);
o Transparen privind replicarea i fragmentarea datelor;
o Volum de stocare a datelor crescut;
o Siguran de funcionare (reliability) i disponibilitate
(availability) crescut .
Dezavantaje:
o Complexitate mai ridicat (fa de sistemele centralizate)
privind proiectarea, administrarea, ntreinerea;
o Securitatea necesit mecanisme speciale de protecie;
o Dificultatea de meninere a integritii datelor
2. GESTIUNEA TRANZACIILOR
n general, o tranzacie const dintr-o secven de operaii de citire i scriere a bazei de
date, la care se adaug o serie de operaii de calcul.
3. CONTROLUL CONCURENEI
Procesarea tranzaciilor se refer doar la dou
aspecte:
Recuperarea bazei de date dup un incident
(database recovery) - se bazeaz pe inducerea unui
anumit nivel de redundan prin memorarea istoriei
tranzaciilor ntr-un aa-numit "jurnal" (log).
Controlul interferenelor care pot avea loc ntre
tranzaciile care se execut n mod concurent
(concurrency control) - este vorba despre
"controlul" (i nu neaprat "evitarea") interferenelor
deoarece, dei ntotdeauna nedorite, aceste
interferene pot fi permise - n anumite forme bine
precizate - pentru a crete performanele sistemului.
3. CONTROLUL CONCURENEI
EXEMPLU

INCORECT CORECT
t T1 T2 A t T1 T2 A

T1 READ 10 T1 READ 10
A A
T2 READ 10 T2 A=A-1 10
A
T3 WRIT 9
T3 A=A-1 10
EA
T4 A=A-1 10 T4 READ 9
A
T5 WRITE 9
T5 A=A-1 9
A
T6 WRITE 9 T6 WRIT 8
A EA
3.1. BLOCARE
Blocarea unui articol de ctre o tranzacie semnific
faptul c acea tranzacie obine din partea sistemului
(SGBD) anumite drepturi speciale de acces care
mpiedic alte tranzacii s efectueze anumite operaii
asupra acelui articol.
Blocare partajat (share lock sau S lock) -
Permite citirea obiectului dar interzice modificarea
acestuia -"blocare pentru citire" (read lock). Mai
multe tranzacii pot bloca simultan pentru citire un
anumit obiect.
Blocare exclusiv (exclusive lock sau X lock) -
Interzice accesul altor tranzacii la obiectul blocat, fie
pentru citire, fie pentru modificare. Blocarea
exclusiv este mai "tare" dect blocarea partajat,
fiind folosit doar pentru actualizri -"blocare pentru
scriere" (write lock).
3.1. BLOCARE
Pentru a citi un articol o tranzacie trebuie s obin
anterior un Read Lock asupra lui. Mai multe tranzacii
pot s blocheze acelai articol pentru citire nsa nicio
tranzacie nu l poate scrie. O tranzacie poate s
obin un Write Lock pe articolul respectiv abia dup
deblocarea acestuia de catre toate tranzaciile care l-au
blocat pentru citire.
Articolele pot fi deblocate unul cte unul de ctre
tranzacia care le-a blocat sau pot fi toate deblocate n
cazul unui COMMIT sau unui ROLLBACK, n funcie
de modelul de blocare folosit.
O tranzacie realizeaz blocarea unui tabel atunci cnd
tabelul este modificat cu una dintre urmtoarele
instructiuni DML: insert, delete, update, select si lock
table.
Blocrile paratjate asigur un grad mai ridicat de
concuren a datelor dect blocarile exclusive.
3.2 DEADLOCK
3.2 DEADLOCK
n cazul prezentat niciuna dintre tranzacii nu
poate continua, deoarece fiecare ateapt ca
cealalt s elibereze linia Z=>deadlock sau
"interblocare".
Prevenirea deadlock-ului implic stabilirea
unui protocol de acces la date care s fac
imposibil apariia situaiilor de deadlock
Detectarea deadlock-ului - mecanism de time-
out(dac durata execuiei unei tranzacii
depete o valoare prestabilit, sistemul deduce
c a aprut o interblocare) sau construirea i
meninerea dinamic a unui "graf de ateptare.
3.2 DEADLOCK
n practic, cel mai adesea se utilizeaz o mixtur de tehnici: se
impuneun protocol de acces care s reduc posibilitatea interblocrii
(fr s o previn total, dar i fr s inhibeze semnificativ
concurena), se implementeaz un mecanism care s detecteze
interblocrile cele mai uzuale, lsndu-le pe celelalte pe seama unui
mecanism de time-out.

Rezolvarea efectiv a unei interblocri revine la stabilirea unei


"victime" dintre tranzaciile implicate n deadlock i anularea ei
(ROLLBACK). Dup ce interblocarea a fost nlturat, tranzacia
poate fi lansat din nou n execuie.
3.3 SERIALIZARE T1 T2 T3

Dac se presupune c
fiecare tranzacie n parte
READ A
din grup este corect,
atunci orice planificare READ B
serial a tranzaciilor READ C
(una dup alta, indiferent READ D
de ordine) este corect. WRITE A
O planificare n care paii
fiecrei tranzacii sunt WRITE C
succesivi, fr s fie
READ A
intercalai pai ai altor
tranzacii se numete WRITE A
planificare serial.
3.4 BLOCAREA IERARHIC
Pentru o obine o blocare la nivel de articol (linie de tabel), o
tranzacie trebuie s-i manifeste aceast intenie, cernd mai nti
o blocare la nivel de tabel.
Introduce trei noi tipuri de blocare:
IS - intent shared : Tranzacia T intenioneaz s blocheze pentru
citire (S lock) anumite linii ale tabelei R, pentru a garanta
stabilitatea acestora n timpul procesrilor pe care le va efectua.
IX - intent exclusive : La fel ca IS, dar T s-ar putea s vrea s
modifice anumite articole i deci s solicite blocarea exclusiv a
acestora.
S shared : Este obinuita blocare partajat. T admite citiri
concurente ale tabelei R, dar nu i scrieri. T nu va face nici o scriere
la nivelul liniilor tabelei.
SIX - shared intent exclusive : Combin S i IX. n plus fa de S,
T s-ar putea s vrea s modifice anumite linii din R i, n
consecin, s solicite blocarea exclusiv a acestora.
X exclusive : T nu admite citiri concurente n tabela R. T ar
putea s actualizeze anumite linii ale tabelei R.
3.4 BLOCAREA IERARHIC
Protocolul bazat pe intenii de blocare (intent
locking protocol), impune dou reguli care mbin
blocrile la nivel de tabel i de articol ntr-o
combinaie care adesea s-a dovedit mai eficient
n aplicatii:
nainte de a obine o blocare partajat (S) la nivel
de linie, o tranzacie trebuie s obin o blocare
de tip IS (sau mai tare) la nivelul ntregii tabele.
nainte de a obine o blocare de tip exclusiv (X) la
nivel de linie, o tranzacie trebuie s obtin o
blocare de tip IX sau mai tare la nivelul ntregii
tabele.
4. ALGORITMI DE CONTROL AL
CONCURENEI N BAZELE DE DATE
CENTRALIZATE
Algoritmi de control al concurenei prin
mrci de timp care ncearc s ordoneze
execua tranzaciilor conform unui set de reguli;
ordonarea tranzaciilor este asigurt prin marci
de timp asociate att tranzaciilor, ct i datelor
pe care le acceseaz.
Algoritmi de control al concurenei prin
blocare care se bazeaz pe accesul mutual
exclusiv al tranzaciilor la datele partajate;
excluderea mutuala este asigurta prin primitive
de tip LOCK i UNLOCK.
4.1. ALGORITMI DE CONTROL AL
CONCURENEI PRIN MARCARE
Metodele de marcare a timpului pentru controlul
concurenei sunt destul de diferite de metodele de blocare.
Nu este implicat nici o blocare, deci nu pot apare situaii
de impas (interblocare).
Marca de timp este un identificator unic creat de SGBD,
care indic timpul relativ de ncepere a unei noi tranzacii.
Mrcile de timp pot fi generate folosind ceasul sistemului
sau prin declanarea unui contor logic.
Marcarea timpului este un protocol de control al
concurenei, n scopul ordonrii globale a tranzaciilor
astfel nct, tranzaciile mai vechi (cu mrci de timp mai
mici) s aib prioritate, n eventualitatea unui conflict.
4.2. ALGORITMI DE CONTROL AL
CONCURENTEI PRIN BLOCARE 2PL
Toate operaiile de blocare trebuie s precead prima
operaie de deblocare.
faza de cretere (growing phase), n care se pot face
noi blocri, dar nu se fac deblocri;
faza de descretere (shrinking phase), n care se fac
toate deblocrile, dar nu se mai pot face blocri noi;
Dac fiecare tranzacie a unei planificri respect
protocolul de blocare n dou faze, atunci planificarea
este serializabil.
4.2. ALGORITMI DE CONTROL AL
CONCURENTEI PRIN BLOCARE 2PL
Pentru o tranzacie care conine secvena:
UNLOCK A

LOCK B

Putem avea o planificare care conine:

T1 T2
UNLOCK A

LOCK A
LOCK B
UNLOCK A
UNLOCK B
LOCK B
4.2. ALGORITMI DE CONTROL AL
CONCURENTEI PRIN BLOCARE 2PL
Protocolul de blocare in 2 faze implic nsa uneori operaii de roll-back n
cascad:
T1 | T2
LOCK A
LOCK B
READ A
WRITE A
UNLOCK A
-----------------------------------------------------------------------
LOCK A
READ A
WRITE A
UNLOCK A
-----------------------------------------------------------------------
READ B
WRITE B
------------------------------------------------------------------------
ROLLBACK
4.2. ALGORITMI DE CONTROL AL
CONCURENTEI PRIN BLOCARE 2PL
n momentul Rollback pentru T1 este necesar
Rollback i pentru T2 deoarece T2 a citit date
scrise de T1, date care prin operaia de Rollback
se pierd. O astfel de planificare se numeste
planificare cu rollback n cascad (eng.: cascading
aborts)
Exist pentru a evita i astfel de cazuri varianta
protocolului de blocare strict n 2 faze care
implic eliberarea toturor articolelor blocate la
sfritul tranzaciei. n acest caz tranzacia T2
din exemplul anterior pornete abia dup
terminarea complet a tranzaciei T1.
4.2. ALGORITMI DE CONTROL AL
CONCURENTEI PRIN BLOCARE 2PL
STRICT
Implic eliberarea toturor articolelor blocate la sfaritul
tranzaciei. n acest caz tranzacia T2 din exemplul
anterior pornete abia dupa terminarea complet a
tranzaciei T1.
Se restrnge concurena, dar nimeni nu este lsat s vad
modificrile. Nu se deblocheaz nimic pn la sfrit, cnd
se deblocheaz totul dintr-o micare (de exemplu
folosindEnd Transaction, care elibereaz blochrile).
5. CONCLUZII
Protocolul 2PL implic serializabilitatea. n schimb
acest protocol nu poate garanta recuperabilitatea,
deoarece tranzaciile ar putea fi deblocate pe atribute
ale bazei de date modificate, nainte de a se face
commit sau abord, ceea ce permite altor tranzacii s
foloseasc valori instabile pe care s fac apoi
commit.
Protocolul care asigur atat serializabilitatea ct i
recuperabilitatea este protoculul 2 PL strict, care
menine blocate tranzaciile pn cnd acestea sunt
finalizate cu succes. Acest protocol poate fi folosit n
medii dinamice, unde modelele de acces la date nu
sunt cunoscute de dinainte.
BIBLIOGRAFIE
Mircea Srbu, O privire asupra "dedesubturilor"
bazelor de date: mecanismele tranzacionale ,publicat
n: PC Report 60 - septembrie 1997;
http://blogu.lu/kassak/gestiunea-tranzactiilor/

Andreea Navroschi-Szsz, curs: Blocri, mrci de


timp i utilizarea lor in Oracle
Dollinger R., Baze de date i gestiunea tranzaciilor, Editura

Albastr, Cluj-Napoca, 1999;


http://www.cs.cmu.edu/~mihaib/articles/tranzactii/tr

anzactii-html.html
la 21/12/2012
Dr. Kriengkrai Porkaew, DBMS: Concurrency
Control

S-ar putea să vă placă și